创建了DB2作为接受数据块。请问怎么调用MODBUS 40000里的数据?DB2.DBW0对应的就是40000?
最佳答案
创建了 DB2 作为接受数据块,这个接收数据块与从站的保持寄存器地址没有固定的对应关系;
如果主站请求指令是读功能码,且读的是从站 40001 开始的数据,放在了 DB2以0字节为偏移的地址,此时读来的数据 DB2.DBW0 才与从站的保持寄存器 40001 对应。
组态及编程、需要附加的软件请参考
1、
CP341作主站的Modbus RTU通讯(STEP7)
http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_15.4/Comm_15.4.html
CP341作主站的Modbus RTU通讯(TIA)
http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_15.5/Comm_15.5.html
CP341 Modbus RTU多站点轮询
https://support.industry.siemens.com/cs/document/73191929
2、
S7-300 串口通信
http://www.ad.siemens.com.cn/productportal/Prods/published/300LIST/Comm_list15.html
提问者对于答案的评价:
"如果主站请求指令是读功能码",这个读功能码在哪里设置的?是在DB2里吗?还是FB7里呢?
最佳答案作者回复:
认真看上面链接中的组态实例,实例中 DB1 一共6个字节,各变量的初始值就是,读从站地址为2,功能码为3,起始地址为0,读4个寄存器数据的请求帧。
另外还请看发请求帧 FB8 P_SND_RK 的管脚 DB_NO 连接请求帧的DB块号、DBB_NO 脚发送数据的起始地址(即在发送数据块中的偏移地址)
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc288483.html