通过modbus和多台设备通信,掉线检测的问题 点击:239 | 回复:9



幻觉不是幻觉

    
  • 精华:0帖
  • 求助:15帖
  • 帖子:33帖 | 93回
  • 年度积分:1337
  • 历史总积分:1337
  • 注册:2019年4月08日
发表于:2020-10-09 11:48:30
楼主
求助帖200分-已结帖

现场一台CP1H和10台变频器进行485的mosbus通信,轮询,用秒脉冲读写一台。

发现一个问题,就是如果一台变频器关电了,就会影响其他几台变频器的通信。

比如现在和10台变频器通讯,如果把其中一台变频器关电了的话就会影响好几台变频器通讯不上,但是如果我把关电的那台变频器屏蔽通讯的话就正常了

也就是说屏蔽通讯的触发就可以,关电变频器就不行

而且有一个很奇怪的现象是只要关掉一台机的电就会有三台通讯不上,但是如果关掉3台机的电的话也还是只有三台机通讯不上。

像这种多台轮询通信的,怎么可以知道哪台机是什么故障,也就是知道变频器的故障,也就是掉线检测的问题。

如果其他有故障了,怎么保证其他的还能够正常运行?

还有就是只要有1台、2台或者是3台掉线,都是3台通信不上,不知道是不是我用1S读写一台有关呢?就算是用的0.5S脉冲也是一样,也是会1-3台掉线,就会有三台通信不上。

image.pngimage.png

1分不嫌少!



顺行天下

  • 精华:0帖
  • 求助:1帖
  • 帖子:16帖 | 263回
  • 年度积分:127
  • 历史总积分:831
  • 注册:2004年4月05日
发表于:2020-10-09 13:09:32
1楼

程序通过固定时间轮询,不要站与站之间前后关联。

AI雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 111回
  • 年度积分:182
  • 历史总积分:275
  • 注册:2016年8月07日
发表于:2020-10-09 13:17:17
2楼

楼上正解。掉线检测的话,收回来的数据包做CRC校验,稍微麻烦点。简单点就是收回来的数据包前几个字节,地址,功能码,数据长度做一下比较

幻觉不是幻觉

  • 精华:0帖
  • 求助:15帖
  • 帖子:33帖 | 93回
  • 年度积分:1337
  • 历史总积分:1337
  • 注册:2019年4月08日
发表于:2020-10-09 13:59:17
3楼

"顺行天下" 的回复,发表在1楼
        对内容: 【程序通过固定时间轮询,不要站与站之间前后关联。】进行回复:

        -----------------------------------------------------------------


这个的话是通过固定时间轮询,没有前后关联的。

watermelon123

  • 精华:0帖
  • 求助:8帖
  • 帖子:38帖 | 211回
  • 年度积分:271
  • 历史总积分:5774
  • 注册:2011年9月09日
发表于:2020-10-09 14:05:10
4楼

这个轮询呢 这个是出现通讯故障了,必须复位下端口,然后再重新发送,此时就需要自己做检测跳过没有通讯上的那个站了,不然还是会卡在那里的。要么自己弄个IO点,来判定那台没开,这样避开这个站。

幻觉不是幻觉

  • 精华:0帖
  • 求助:15帖
  • 帖子:33帖 | 93回
  • 年度积分:1337
  • 历史总积分:1337
  • 注册:2019年4月08日
发表于:2020-10-09 17:12:24
5楼

"watermelon123" 的回复,发表在4楼
        对内容: 【这个轮询呢 这个是出现通讯故障了,必须复位下端口,然后再重新发送,此时就需要自己做检测跳过没有通讯上的那个站了,不然还是会卡在那里的。要么自己弄个IO点,来判定那台没开,这样避开这个站。...】进行回复:

        -----------------------------------------------------------------


很奇怪的是,只要是有一台掉线,就会有3台通信不上,这个是不是跟轮询的时间有关呢?

关育谋

  • [版主]
  • 精华:4帖
  • 求助:21帖
  • 帖子:354帖 | 4851回
  • 年度积分:125
  • 历史总积分:32902
  • 注册:2004年5月28日
发表于:2020-10-09 20:53:59
6楼

读操作轮询操作,写操作优先执行

比如:

1#从站读操作完成后,先判断有没有写操作,如果有写操作优先执行写操作,如果没有写操作,则执行2#从站的读取。

每次读操作完成后,判断相关标志位,如果有超时或者通信错误的话,计数,达到一定计数,则下次轮询读操作不再和这个站进行通信,待手动复位后,方可继续与之进行轮询通信操作。

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:605帖 | 6614回
  • 年度积分:521
  • 历史总积分:173017
  • 注册:2011年4月25日
发表于:2020-10-10 10:44:31
7楼

最好是用时间间隔的方式,如果轮询方式,会造成一个站通信失败,造成后面通信整体瘫痪

往事流连

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 25回
  • 年度积分:55
  • 历史总积分:55
  • 注册:2020年4月26日
发表于:2020-10-11 18:00:50
8楼

看不懂,先顶一个

沂蒙小调

  • 精华:0帖
  • 求助:4帖
  • 帖子:5帖 | 49回
  • 年度积分:191
  • 历史总积分:252
  • 注册:2019年3月08日
发表于:2020-10-11 18:06:16
9楼

这个能完成轮询吗


相关主题

官方公众号

智造工程师