S7-200 SMART modbus 功能码设为0x10,发出的却为0x0F,地址码设为0x11 发出为0x10
图片说明:
最佳答案
程序见网络2,从管脚看,是写1号从站16#11 开始的 2 个线圈。并不是写保持寄存器 4000X。
写多线圈的功能码是15(十进制), 转换成16进制就是 16#0F。
功能码部分
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Slave/Slave.htm
指令在组织请求帧时,从站地址是从00 00H 开始的,所以Addr脚16#11,封装在请求帧中就要减1,成为了你看到的 00 10H。这一点,你可以写4000X区,看看,也是从00 00H开始的。
更多关于MODBUS RTU
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
确实,不同的MODBUS地址对应功能码也是的不一样。
功能 5,功能 15 对应从机地址为00001 - 09999
功能6,功能16,对应从机地址应该为40001 - 49999,我把地址改为40000起始发出的数据就对了。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279840.html