签到有奖
消息提醒
运维工程师专区
官方商城
点击复制链接
关注该帖后,有多人参加探讨会对您通知与提示!
帖子
精华
被关注
论坛等级:游民
注册时间:2014-01-18
普通 如何晋级?
1142
0
2015-04-12 11:18:41
用的CPU是315-2PN/DP,通过cp343-1与在一个网段内的三个设备进行modbus tcp通讯,在这里西门子的CP模块做的是客户端来接受次三个设备的modbus 数据,在编程配置的过程中有几个疑问如下: 问题1.我看了modbus与西门子数据的对应关系是40002对应的寄存器1,寄存器1又对应的是相应DB块中的从0.0开始到1.7的一个16位的字,那么请问在三个网内其他modbus设备发送数据的时候,比如1#设备发送的数据地址是40010,2#设备还能否发送这个地址的数据?亦或是能够发送说明了1#、2#设备分别有自己的一套完整的数据地址重叠也无所谓? 问题2. 程序配置的时候LENGTH这个参数应该为CP一次工作周期所接受的网内一个设备的数据长度设置,我把这些数据存放在DB1中,如果此时DB1开辟的空间比我接受的LENGTH个数据长度小的话是否可行? 问题3. 手册中这样写道 modbus tcp每个数据包最大的只能发送125个寄存器,那么请问这个125个寄存器是对网内三个设备分别限制还是三个设备加起来在网内一共只能有125个以内?谢谢!
提问者:jianchishengli
1、设备发送的地址是一样的,比如都是40010,你在编程时需要对3个设备的数据分配3个不同的DB块就可以了。1#设备的数据放到DB1中,2#设备的数据放到DB2中,3#设备的数据放到DB3中。在编程时调用对应的DB块地址即可。2、如果接受的数据长度比你DB块长度小这样还可以,比你的DB块长度大的话,就会丢掉超出部分的数据,可能会影响你的使用。3、对应一个设备的。
剩余80%未阅读, 请登录阅读
请填写推广理由:
AI 小西智伴登场,7×24 小时权威支援,让技术支持告别等待!
助你技有所长,论有所获
首次发帖探讨工控技术话题 立获新人礼包,100中奖哦! (包含周边、书籍、兑奖西币)
共有54618条技术帖
恭喜,你发布的帖子
快扫描右侧二维码晒一晒吧!
再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!
分享
只看 楼主
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!