文档库 最新最全的文档下载
当前位置:文档库 › 三菱PLC通讯协议

三菱PLC通讯协议

三菱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_RC_Group_Base_AddRess = 1472

Public Const PLC_TV_Group_Base_AddRess = 2048

Public Const PLC_CV16_Group_Base_AddRess = 2560

Public Const PLC_CV32_Group_Base_AddRess = 3072

当我们用DEVICE READ命令时,D100地址=100*2+4096;M100地址=100+256;不同的是D类型寄存器存放的是字,M寄存器存放的是位,同样是读两个字节,D100返回的就是PLC中D100地址的值,M类型寄存器返回的是M100到M116的值。所以当我们用FORCE ON 命令时,M100寄存器地址=100+2048;

这也没有什么复杂的,不是吗?可是三菱公司好像不甘于如此,FORCE ON/Off命令中地址排列与DEVICE READ/WRITE不同,是低位在前高位在后。如Y20,地址是0510H,代码中4个字节地址表示为:1005。(注意:Y寄存器为八进制,如Y20地址=16+1280=0510H)

相关文档