登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:请教:PLC做主站通过MODBUS RTU轮询编程方法!

点击:11591 回复:15

请教:PLC做主站通过MODBUS RTU通讯网络,采集从站数据,一般采用怎样的编程结构和方法?请高手和专家赐教,谢谢!
补充:不管是功能块还是自己编通讯程序,主要问题是每次发送通讯指令的时间间隔如何处理?
最后修改:2013/2/18 17:13:50
13-02-18 08:55
看你什么PLC了。有的只需要填写主站轮询命令,有的需要自己在程序里放功能块,功能块填的命令参数也差不多就是那些。什么从站地址,命令代码,寄存器首地址,寄存器数,接收缓冲区地址。
好吧,我也补充吧,根据前2种情况:
如果是填写命令的,有的需要填写通讯间隔,尝试次数等。
如果是功能块,一般在定时器后面运行。
至于时间间隔定多少,要看你的情况了。比如,你的数据要求不太快,数据量不多,从站很少,那1s发一次命令足够了。如果你的从站很多,那几秒发一次,每个从站1s就是了。
至于重试次数,简单的不用了。
如果你有特别要求,那只好这样来计算了:主站的命令一条一般8字节,然后等待从站响应,允许从站最迟响应在n位(帧)后(这个modbus有规定),假设连续吧,然后从站发回数据,一般有m(你需要的数据量)x2+5字节。再乘以数据格式(RTU11=比如n,8,1),除以波特率(9600比如),等到最理想的响应时间。
最后修改:2013/2/19 12:31:24
13-02-18 16:43
用过200的做MODBUS轮询,有库可以添加使用,其他的就不了解了,应该大同小异吧。
13-02-19 07:19
如果是信捷的PLC,可以用 顺序功能块 这个功能搞定
13-02-19 07:36
根据实际情况来综合考虑
13-02-19 16:29
你用西门子的??
200,300??
我有现成的块。不过是收费的。
13-02-20 16:48
PLC做主站通过MODBUS RTU通讯网络
13-11-16 16:04
时间控制很笨,一般用通讯完成位触发下一次通讯
13-11-16 19:15

引用 dixinke 在 2013/2/20 16:48:35 发言【内容省略】

你的200 有MODBUS库?
14-05-13 13:35

引用 BG7MKA 在 2013/11/16 19:15:14 发言【内容省略】

时间控制应该比较稳定,如果用通讯完成位来触发下一次通讯,假设某个子站通讯失败,后面的站就都没法触发了,这个有什么好办法解决吗?
我看过西门子的帮助也是用的通讯完成位触发下次通讯作为例子,我感觉不完善,还是我理解有问题?
14-05-13 15:19

上一页下一页

工控新闻

更多新闻资讯