三菱Fx系列PLC编程口通讯协议地址算法.doc
文本预览下载声明
三菱Fx系列PLC编程口通讯协议 ??? 一、三菱PLC编程口通讯协议三菱PLC编程口的通讯协议比较简单,只有四个命令,即:
命令 ??????????????? ??命令码 ??????????? 目标设备
DEVICE READ CMD ??????? 0 ????????????? X,Y,M,S,T,C,D
DEVICE WRITE CMD????????1 ?????????????? X,Y,M,S,T,C,D
FORCE ON CMD ????????? 7 ????????????? X,Y,M,S,T,C
FORCE OFF CMD?????????? 8???????????????X,Y,M,S,T,C五个标示:
ENQ ?????????? 05H ??????????? 请求
ACK ?????????? 06H ??????????? PLC正确响应
NAK ????????? 15H ??????????? PLC错误响应
STX ??????????? 02H ??????????? 报文开始
ETX ??????????? 03H ??????????? 报文结束
使用累加方式的和校验,帧格式如下:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
和校验:
SUM= CMD+……+ETX。 如SUM=73H,SUM=“73”。
1、DEVICE READ(读出软设备状态值)
计算机向PLC发送:
始命令 ?首地址 位数 ?终和校验
STX CMD ?? GROUP ADDRESS ???BYTES??? ETX ???SUM
PLC 返回
STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM
?
2、DEVICE WRITE(向PLC 软设备写入值)
计算机向PLC发送:
始命令 ?首地址 ? 位数 ?数据 ?终和校验
PLC 返回
ACK (06H) 接受正确
NAK (15H) 接受错误
3、位设备强制置位/复位
FORCE ON 置位
始命令 ????地址 ????????????????终和校验
STX ??CMD ?????? ADDRESS ?????? ETX ???????????? SUM
02h ??37h ?????? address????????03h ??????????? sum
FORCE OFF 复位
始 ??命令 ???地址 ????????????????终 和校验
STX ?CMD ?? ADDRESS ??? ETX ???????????? SUM
02h ?38h ??address ???? 03h ????????????? sum
PLC 返回
ACK(06H) 接受正确
NAK(15H) 接受错误
?
以上可以看出,协议非常简单,但是由于没有寄存器类型信息,所以地址的计算十分关键,如D100和M100分别对应哪个地址呢?下面就是三菱Fx系列PLC地址对应表:
?
Public Const PLC_D_Base_AddRess = 4096
Public Const PLC_D_Special_Base_AddRess = 3584
Public Const PLC_Y_Group_Base_AddRess = 160
Public Const PLC_PY_Group_Base_AddRess = 672
Public Const PLC_T_Group_Base_AddRess = 192
Public Const PLC_OT_Group_Base_AddRess = 704
Public Const PLC_RT_Group_Base_AddRess = 1216
Public Const PLC_M_SINGLE_Base_AddRess = 2048(命令为7或8时)
Public Const PLC_M_Group_Base_AddRess = 256
Public Const PLC_PM_Group_Base_AddRess = 768
Public Const PLC_S_Group_Base_AddRess = 0
Public Const PLC_X_Group_Base_AddRess = 128
Public Const PLC_C_Group_Base_AddRess = 448
Public Const PLC_OC_Group_Base_AddRess = 960
Public Const PLC_
显示全部