S7-200 Modbus 协议使用详解
各参数意义如下:
a. EN 使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使能
注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行(见例程)。
b. First 读写请求位:每一个新的读写请求必须使用脉冲触发
c. Slave 从站地址:可选择的范围 1 - 247
d. RW 从站地址: 0 =读, 1 =写
注意:
1. 开关量输出和保持寄存器支持读和写功能
2. 开关量输入和模拟量输入只支持读功能
e. Addr 读写从站的选择读写的数据类型
数据地址: 00001 至 0xxxx - 开关量输出
10001 至 1xxxx - 开关量输入
30001 至 3xxxx - 模拟量输入
40001 至 4xxxx - 保持寄存器
f. Count 数据个数通讯的数据个数(位或字的个数)
注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)
g. DataPtr 数据指针: 1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
h. Done 完成位读写功能完成位
i. Error 错误代码:只有在 Done 位为1时,错误代码才有效
0 =无错误
1 =响应校验错误
2 =未用
3 =接收超时(从站无响应)
4 =请求参数错误(slave address, Modbus address, count, RW)
5 = Modbus/自由口未使能
6 = Modbus正在忙于其它请求
7 =响应错误(响应不是请求的操作)
8 =响应CRC校验和错误
-
101 =从站不支持请求的功能
102 =从站不支持数据地址
103 =从站不支持此种数据类型
104 =从站设备故障
105 =从站接受了信息,但是响应被延迟
106 =从站忙,拒绝了该信息
107 =从站拒绝了信息
108 =从站存储器奇偶错误