自由口通讯协议详细注解
西门子PLC的编程风格本人太喜欢了,用了国产仿西门子的都感觉缺这缺那的,很不爽,等吧。希望国内PLC工程师多多努力。对于西门子的东西,也有遗憾的地,如PPI协议人家不公开,MODBUS有库,好象要购买。这篇文是组态王SIMATIC S7-200系列PLC之间的通讯协议的本人读书注解与心得,从中也可学到作者的思路,学习PLC先从通信协议入手,为何不妥呢?与初学者切磋与共享这个协议。
锤子
此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制
上位机从PLC中读数据:
上位机发送读指令:
BYTE1: PLC地址(1~255)
BYTE2: 0x00 (读指令代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1~32 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8-11: 保留
BYTE12: 校验字节
PLC应答:
读成功时:
BYTE1: PLC地址(1~255)
BYTE2: 0x00 (读指令代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1~32 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8-n*m+8: 数据
BYTEn*m+9: 校验字节
读失败时:
BYTE1: PLC地址(1~255)
BYTE2: 0x80 (读指令失败代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1~32 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8: 0x01(校验错代码)
BYTE9-11: 保留
BYTE12: 校验字节
上位机向PLC中写入数据:
上位机发送写指令:
BYTE1: PLC地址(1~255)
BYTE2: 0x01 (写指令代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8-11: 写入数据
BYTE12: 校验字节
PLC应答:
写成功时:
BYTE1: PLC地址(1~255)
BYTE2: 0x01 (写指令代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8-11: 保留
BYTE12: 校验字节
写失败时:
BYTE1: PLC地址(1~255)
BYTE2: 0x81 (写指令代码)
BYTE3: 寄存器类型(0-V, 1-Q, 2-I)
BYTE4-5: 起始偏移地址(0-9999)
BYTE6: 数据个数(1 n)
BYTE7: 数据类型(1,2,4 m)
BYTE8: 0x01(校验错代码)
BYTE9-11: 保留
BYTE
s7200自由口通讯协议详细注解 来自淘豆网m.daumloan.com转载请标明出处.