• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 690 个
工控威望: 1071 点
下载积分: 1564 分
在线时间: 221(小时)
注册时间: 2021-07-09
最后登录: 2024-12-02
查看sunzengli的 主题 / 回贴
楼主  发表于: 昨天
我现在有6个远程站,相隔几百米,走modbus rtu通讯,2个站共用一个电柜,变频器控制水泵,一个变频器一个站对应一个水泵,一备一用,备用的在不使用时,电源是关闭的。这样在轮询时就会产生问题,主站PLC这边并不知道远程站是哪个泵在启用,由于有变频器没有上电,所以是通讯不上的,导致轮询时间非常长,我现在不知道用什么办法能排除这种影响,只有一根485通讯线和远程电柜交互数据,想不到好的处理办法。
请各位指点一二,谢谢。
皮五
级别: 工控侠客
精华主题: 0
发帖数量: 617 个
工控威望: 2288 点
下载积分: 1838 分
在线时间: 356(小时)
注册时间: 2007-07-14
最后登录: 2024-12-02
查看皮五的 主题 / 回贴
1楼  发表于: 昨天
想办法让主站知道几个从站是开启状态,几个从站是关闭
croxie
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 73 点
下载积分: 159 分
在线时间: 178(小时)
注册时间: 2021-03-12
最后登录: 2024-12-02
查看croxie的 主题 / 回贴
2楼  发表于: 昨天
需要自己写轮询程序,当主、备有一个响应时就跳过这个站点,当两个都没响应时报警。
apei2014
工控的世界,我不懂
级别: 论坛先锋
精华主题: 0
发帖数量: 1196 个
工控威望: 1840 点
下载积分: 77942 分
在线时间: 516(小时)
注册时间: 2016-08-15
最后登录: 2024-12-02
查看apei2014的 主题 / 回贴
3楼  发表于: 昨天
弄两个开关,哪个要通讯,就把对应开关打开
东隅已逝,桑榆非晚。
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 690 个
工控威望: 1071 点
下载积分: 1564 分
在线时间: 221(小时)
注册时间: 2021-07-09
最后登录: 2024-12-02
查看sunzengli的 主题 / 回贴
4楼  发表于: 昨天
引用
引用第1楼皮五于2024-12-02 08:23发表的  :
想办法让主站知道几个从站是开启状态,几个从站是关闭

就只没办法知道啊,什么办法能知道呢?再拉一根线?好几百米,很麻烦。
不小心遇见你
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

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

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

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

3、注意这里有2个问题:
a、否访问成功时,还需判断运行状态,最好有能判断运行状态的,那个bool和这个运行状态也要关联,只有通讯OK且设备运行时才继续访问,否则来回的切换。比如1和2号站都访问成功且没有运行,这时候就报设备未运行。
b、两个都访问不成功时,敲黑板:我说的是访问不成功时(就不存在运行状态的判断了),短时间内轮序次数超过2次即可报异常,比如设备均为运行
项目、视觉、通讯QQ3515716
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 690 个
工控威望: 1071 点
下载积分: 1564 分
在线时间: 221(小时)
注册时间: 2021-07-09
最后登录: 2024-12-02
查看sunzengli的 主题 / 回贴
6楼  发表于: 昨天
引用
引用第3楼apei2014于2024-12-02 08:48发表的  :
弄两个开关,哪个要通讯,就把对应开关打开

对于操作工来说,这很难,一个是距离很远,判断要过去看,另外一个,对于操作工来说,哪个站要断开他并不一定清楚地知道。
工控小王
级别: 正式会员
精华主题: 0
发帖数量: 34 个
工控威望: 71 点
下载积分: 1284 分
在线时间: 13(小时)
注册时间: 2024-10-16
最后登录: 2024-12-02
查看工控小王的 主题 / 回贴
7楼  发表于: 昨天
触摸屏中增加一备一用相对应的功能,程序中在轮询条件里增加备用时直接跳到下一个轮询。
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 690 个
工控威望: 1071 点
下载积分: 1564 分
在线时间: 221(小时)
注册时间: 2021-07-09
最后登录: 2024-12-02
查看sunzengli的 主题 / 回贴
8楼  发表于: 昨天
引用
引用第5楼不小心遇见你于2024-12-02 08:58发表的  :
一看你就是没有经验
尽量考虑全面一些。这些都是我根据你的描述做出的自己理解,若有出入,请忽略

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

.......

没电离线和断线离线是两种代码?你确定吗?
本帖最近评分记录:
  • 下载积分:+1(gaoyingchun)
    gxtmdb82164
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 760 个
    工控威望: 1138 点
    下载积分: 379 分
    在线时间: 598(小时)
    注册时间: 2019-09-22
    最后登录: 2024-12-02
    查看gxtmdb82164的 主题 / 回贴
    9楼  发表于: 昨天
    你这里本质上是控制电源和动力电源没分开的问题,但是你线都已经拉了,这个事情只能迂回解决了~

    标准解决方案中,从站的通信模块或者从站模块的供电属于控制电源,要么直接从主站和通信线一起拉出来,要么在从站和动力电源分开,动力电源是可以下电的,而且下电以后是有反馈的。如果按这个方案,你看你的问题不就解决了~

    但是木已成舟了,现在还有一些迂回的方案可以解决。
    1、最简单,自己写轮询,缩短等待时间,这个应该是有效果的,因为你从站并不多。而且这里有个小技巧就是,确认不在线的总站可以用更低的频率去connect,比如2s、5s甚至10s,这样可以相当大程度上实现通信的自动恢复,而且不影响正常的周期性数据读写。
    2、在每个从站加一个IO模块检测变频器在线情况,然后这个模块要保证不下电的,也就是说这几个IO模块始终在线,读写变频器前先读IO模块,看看哪个在线哪个不在线。


    ps:都2024年了,推荐所有需要拉几百米线的场合全部从485换到以太网(家用以太网标准是150M,请确认使用了工规以太网设备),你这个情况如果是以太网且不说网络容量没有限制,单是供电这个问题POE加上就原地解决了。而且即便是终端设备是RTU,现在以太网转RTU也便宜的要死,很多智能型网关模块都可以替代PLC做数据轮询,你这个场景下直接从网关就能读到设备是否在线,如果在线,数据也都给你准备好了,更简单~
    喊声靓仔
    级别: 正式会员
    精华主题: 0
    发帖数量: 11 个
    工控威望: 64 点
    下载积分: 130 分
    在线时间: 44(小时)
    注册时间: 2021-05-14
    最后登录: 2024-12-02
    查看喊声靓仔的 主题 / 回贴
    10楼  发表于: 昨天
    声明2个变量,从站1超时,从站2超时。判断从站的超时次数把这2个变量置True,然后在你的轮询程序里面加上这2个条件的判断,如果从站1超时为True,流程步就跳过从站1的数据收发就好了
    gsw2022
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 376 个
    工控威望: 1185 点
    下载积分: 17 分
    在线时间: 247(小时)
    注册时间: 2022-01-24
    最后登录: 2024-12-02
    查看gsw2022的 主题 / 回贴
    11楼  发表于: 昨天
    学习了   
    • «
    • 1
    • 2
    • »
    • Pages: 1/2     Go