西门子S7-200SMAT Modbus RTU
用485设置一个温控器的值,我用串口调试软件可以设置如图2101,用S7-200SMAT Modbus RTU指令温控器没有反应如图2102,图2103功能号一直是16我怎么改成6
问题补充:
这是一个写温控器的设定值,站号01,功能码06.地址00 02.后面的是数据,我用调试软件可以写。PLC VB1002是功能码值是16,我怎么让他和06功能码对应
图片说明:
1、第一张图中的值你是不能动的,那是MODBUS 的库存储区,是由库指令使用的。
2、
06H 功能码写单个寄存器指令,根据中间那张图,
01 06 00 02 00 2F 69 D6
第1个字节 从站地址 1;
第2个字节 功能码 06;
第3、4 个字节,保持寄存器地址 0002,换算成十进制再加上1,最后变成保持寄存器地址则为 40003
第5、6个字节,CRC 校码码
这个对应主站指令,第3张图,则MBUS_MSG 的主要管脚为
Slave: 1
RW: 1 读写请求:0 = 读, 1 = 写
Addr: 40003
Count: 1 数据个数,就是因为你这里写的是 2 ,所在你看到功能码是 16,16是写多个保持寄存器的意思。
DataPtr: 你写的是 &VB500,那就将 16#002F 传送到 VW500 中
CRC 校验码由指令自动产生,不需要你管,只要填好管脚就可以了。
3、
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
可以了还是地址和发送的数据个数弄错了,VB1002和数据个数也有关系。以前一直用CP341,里面有DP块可以各个设置。200SMART485第一次用,谢谢了