《三菱PLC编程口的通讯协议.docx》由会员分享,可在线阅读,更多相关《三菱PLC编程口的通讯协议.docx(4页珍藏版)》请在第壹文秘上搜索。
1、三菱PLC编程口的通讯协议三菱PLC编程口的通讯协议比较简单,只有四个命令,即:命令命令码目标设备DEVICEREADCMDOX,Y,M,S,T,C,DDEVICEWRITECMDTX,Y,M,S,T,C,DFORCEONCMD7X,Y,M,S,T,CFORCEOFFCMDX,Y,M,S,T,C五个标示:ENQ05H请求CK06HPLC正确响应NAK15HPLC错误响应STX02H报文开始ETX03H报文结束使用累加方式的和校验,帧格式如下:STXCMDDATADATAETXSUM(upper)SUM(Iower)和校验:SUM=CMD+?+ETXo如SUM=73H,SUM=“73”。1、DE
2、VICEREAD(读出软设备状态值)计算机向PLC发送:始命令首地址位数终和校验STXCMDGROUPADDRESSBYTESETXSUMPLC返回STX1STDATA2NDDATALASTDATAETXSUM2、DEVICEWRITE(向PLC软设备写入值)计算机向PLC发送:始命令首地址位数数据终和校验PLC返回ACK(06H)接受正确NAK(15H)接受错误3、位设备强制置位/复位FORCEON置位始命令地址终和校验STXCMDADDRESSETXSUM02h37haddress03hsumFORCEOFF复位始命令地址终和校验STXCMDADDRESSETXSUM02h38haddre
3、ss03hsumPLC返回CK(06H)接受正确NAK(15H)接受错误以上可以看出,协议非常简单,但是由于没有寄存器类型信息,所以地址的计算十分关键,如DlOO和MlOO分别对应哪个地址呢?下面就是三菱FX系列PLC地址对应表:PublicConstPLC_D_Base_AddRess=4096=1000HPublicConstPLCDSpecialBase_AddRess=3584=EOOHPublicConstPLC_Y_Group_Base_AddRess=160=AOHPublicConstPLC_PY_Group_Base_AddRess=二672=2A0HPublicConstP
4、LC_T_Group_Base_AddRess二192=COHPublicConstPLCOTGroupBaseAddRess二二704=2C0HPublicConstPLC_RT_Group_Base_AddRess-二1216=4C0HPublic时)Const=800HPLC_M_SINGLE_Base_AddRess=:2048(命令为7或8PublicConstPLC_M_Croup_Base_AddRess=256=100HPublicConstPLC_PM_Group_Base_AddRess=768=300HPublicConstPLC_S_Group_Base_AddRess
5、=0=OHPublicConstPLCXGroupBaseAddRess-128二80HPublicConstPLC_C_Group_Base_AddRess二448=ICOHPublicConstPLC_OC_Group_Base_AddRess=960=3C0HPublicConstPLCRCGroupBase_AddRess二1472=5C0HPublicConstPLC_TV_Group_Base_AddRess二2048=800HPublicConstPLC_CV16_Group_Base_AddRess=2560=AOOHPublicConstPLC_CV32_Group_Base
6、_AddRess=3072=COOH当我们用DEVICEREAD命令时,Dloo地址=IoO*2+4096;MlOO地址=100+256;不同的是D类型寄存器存放的是字,M寄存器存放的是位,同样是读两个字节,DlOO返回的就是PLC中DlOO地址的值,M类型寄存器返回的是MloO到M116的值。所以当我们用FORCEON命令时,Mloo寄存器地址=100+2048;这也没有什么复杂的,不是吗?可是三菱公司好像不甘于如此,FORCE0N0ff命令中地址排列与DEVICEREAD/WRITE不同,是低位在前高位在后。如Y20,地址是0510H,代码中4个字节地址表示为:1005。(注意:Y寄存器为八进制,如Y20地址=16+1280=0510H)其实一点技术含量都没有,就是拐了几个弯,偏偏很多时候又不都告诉你,让人浪费不少时间。不废话了,自己做个程序试试吧。