wangnaizhi
级别: 论坛先锋
精华主题: 0
发帖数量: 1273 个
工控威望: 1449 点
下载积分: 5484 分
在线时间: 896(小时)
注册时间: 2015-08-31
最后登录: 2024-11-29
查看wangnaizhi的 主题 / 回贴
楼主  发表于: 2018-12-19 10:23
现在有个项目准备用MODBUS协议和机械臂做主从通讯 PLC作主站 机械臂作从站 PLC发命令给机械臂后 等待机械臂完成的过程 是不是让PLC固定一段时间间隔去读机械臂寄存器的数据 直到对应的寄存器给出事先设定好的寄存器值?
还有如果是多从站的轮询机制 是不是搭配变址寄存器 然后固定间隔的去触发MODBUS读指令 去采集各下位机的数据?
有没有做过类似项目的友人  大家一起讨论一下思路呢  
我个人感觉这个的可行性应该是可以的 项目正准备这样做
fjqz00
级别: 论坛先锋
精华主题: 1 篇
发帖数量: 1304 个
工控威望: 1460 点
下载积分: 8001 分
在线时间: 364(小时)
注册时间: 2007-04-16
最后登录: 2024-11-29
查看fjqz00的 主题 / 回贴
1楼  发表于: 2018-12-20 10:18
用MODBUS TCP,然后不停的轮询,比单纯的MODBUS可靠些,再加上外部的安全控制回路互锁。
wangnaizhi
级别: 论坛先锋
精华主题: 0
发帖数量: 1273 个
工控威望: 1449 点
下载积分: 5484 分
在线时间: 896(小时)
注册时间: 2015-08-31
最后登录: 2024-11-29
查看wangnaizhi的 主题 / 回贴
2楼  发表于: 2018-12-20 17:36
引用
引用第1楼fjqz00于2018-12-20 10:18发表的  :
用MODBUS TCP,然后不停的轮询,比单纯的MODBUS可靠些,再加上外部的安全控制回路互锁。

轮询方式是怎么实现的?
seafar
目前C#
级别: 家园常客
精华主题: 0
发帖数量: 619 个
工控威望: 764 点
下载积分: 1909 分
在线时间: 594(小时)
注册时间: 2018-03-23
最后登录: 2023-10-27
查看seafar的 主题 / 回贴
3楼  发表于: 2018-12-20 18:24
可以把机械手定位完成的信号接到PLC,通讯启动机械手动作,机械手定位完成信号反馈回来再去读机械手状态,或者用轮询不写的时候一直读,比如D0=1,1#站读,读取完成SM8029触发D0加一,D0=2,2#站读,一直轮询,当需要发送命令时,把读指令全部断开即可
枕星河之倒影兮与星光同流,望群星之包覆兮随繁星同辉。
B站资源分享链接https://space.bilibili.com/39855180
wangnaizhi
级别: 论坛先锋
精华主题: 0
发帖数量: 1273 个
工控威望: 1449 点
下载积分: 5484 分
在线时间: 896(小时)
注册时间: 2015-08-31
最后登录: 2024-11-29
查看wangnaizhi的 主题 / 回贴
4楼  发表于: 2018-12-20 18:36
引用
引用第3楼seafar于2018-12-20 18:24发表的  :
可以把机械手定位完成的信号接到PLC,通讯启动机械手动作,机械手定位完成信号反馈回来再去读机械手状态,或者用轮询不写的时候一直读,比如D0=1,1#站读,读取完成SM8029触发D0加一,D0=2,2#站读,一直轮询,当需要发送命令时,把读指令全部断开即可

明白了 就是轮询的程序是需要自己写的  我之前因为轮询时 只要特殊的继电器触发了就可以了 类是台达的LINK通讯时候 直接互相映射的