精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 2 页
最近做一个PC通过编程口与FX PLC通讯的程序,在网上找好久,内部软元件的地址还是找不全。没办法,只好使用串口监视软件分析 GX Developer PLC编程软件发送的代码
由于没有寄存器类型信息,所以地址的计算十分关键,如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)
精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 2 页
三菱FX系列PLC编程口通信协议总览
该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。感谢网友visualboy提供。
通讯格式:
命令 命令码 目标设备
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
精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 3 页
OFF CMD "8" X,Y,M,S,T,C //复位
传输格式: RS232C
波特率: 9600bps
奇偶: even
校验: 累加方式(和校验)
字符: ASCII
16进制代码:
ENQ 05H 请求
ACK 06H PLC正确响应
NAK 15H PLC错误响应
STX 02H 报文开始
ETX 03H 报文结束
帧格式:
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
例子:
STX ,CMD ,ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
SUM=CMD+..
三菱PLC编程口协议 来自淘豆网m.daumloan.com转载请标明出处.