sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 690 个
工控威望: 1071 点
下载积分: 1564 分
在线时间: 221(小时)
注册时间: 2021-07-09
最后登录: 2024-12-02
查看sunzengli的 主题 / 回贴
楼主  发表于: 昨天
我现在有6个远程站,相隔几百米,走modbus rtu通讯,2个站共用一个电柜,变频器控制水泵,一个变频器一个站对应一个水泵,一备一用,备用的在不使用时,电源是关闭的。这样在轮询时就会产生问题,主站PLC这边并不知道远程站是哪个泵在启用,由于有变频器没有上电,所以是通讯不上的,导致轮询时间非常长,我现在不知道用什么办法能排除这种影响,只有一根485通讯线和远程电柜交互数据,想不到好的处理办法。
请各位指点一二,谢谢。
不小心遇见你
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 2050 个
工控威望: 2967 点
下载积分: 25193 分
在线时间: 1440(小时)
注册时间: 2014-01-05
最后登录: 2024-12-02
查看不小心遇见你的 主题 / 回贴
1楼  发表于: 昨天
一看你就是没有经验
尽量考虑全面一些。这些都是我根据你的描述做出的自己理解,若有出入,请忽略

1、首先轮询时如果通讯失败有错误代码反馈,一般无法联系主机或者主句无响应,只能认为离线,注意这里的离线是两种我们归为一种,没电离线和断线离线。注意这里是根据错误代码判断

2、离线后,做一个标志不再访问该该站,因为你是2个站,一个bool即可,bool设置为ture,然后访问2号站,如果2号站访问成功就访问,访问不成功,就把bool设置为false,接着访问1站。

3、注意这里有2个问题:
a、否访问成功时,还需判断运行状态,最好有能判断运行状态的,那个bool和这个运行状态也要关联,只有通讯OK且设备运行时才继续访问,否则来回的切换。比如1和2号站都访问成功且没有运行,这时候就报设备未运行。
b、两个都访问不成功时,敲黑板:我说的是访问不成功时(就不存在运行状态的判断了),短时间内轮序次数超过2次即可报异常,比如设备均为运行
项目、视觉、通讯QQ3515716