S7-200PLC Modbus协议与16路继电板之间的通讯

2025-04-05 16:53:47
推荐回答(1个)
回答1:

Slave参数是Modbus从站的地址。允许的范围是0到247。地址0是广播地址,只能用于写请求。不存在对地址0的广播请求的应答。并非所有的从站会支持广播地址。S7-200 Modbus从站协议库不支持广播地址。
RW参数指定是否要读取或写入该消息。"读写"参数允许使用下列两个值。
0 -读
1 -写
离散输出(线圈)和保持寄存器支持读取和写入请求。离散输入(触点)和输入寄存器仅支持读取请求。"地址"参数是起始的Modbus地址。允许使用下列取值范围:00001至09999是离散输出(线圈)
10001至19999是离散输入(触点)
30001至39999是输入寄存器
40001至49999是保持寄存器
Addr参数-"地址"的指定取值范围基于Modbus从站支持的地址。
Count-"计数"参数指定在该请求中读取或写入的数据元素的数目。"计数"值是位数(对于位数据类型)和字数(对于字数据类型)。
地址0xxxx ?"计数"是要读取或写入的位数。
地址1xxxx ?"计数"是要读取的位数。
地址3xxxx ?"计数"是要读取的输入寄存器的字数。
地址4xxxx ?"计数"是要读取或写入的保持寄存器的字数。
MBUS_MSG指令将读取或写入最大120个字或1920个位(240字节的数据)。"计数"的实际限值将取决于Modbus从站中的限制。
"DataPtr"参数是指向S7-200 CPU的V存储器中与读取或写入请求相关的数据的间接地址指针。对于读取请求,DataPtr应该指向用于存储从Modbus从站读取的数据的第一个CPU存储器位置。对于写入请求,DataPtr应该指向要发送到Modbus从站的数据的第一个CPU存储器位置。
DataPtr值作为间接地址指针传递到MBUS_MSG。例如,如果要写入Modbus从站的数据从S7-200 CPU中的地址VW200开始,则DataPtr的数值将会是&VB200 (VB200的地址)。指针必须始终是VB类型,即使它们指向字数据。