回复:MODBUS主站超时设置的问题

芳季

西门子1847工业学习平台

  • 帖子

    15507
  • 精华

    101
  • 被关注

    961

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2016-04-07 11:42:28

7楼

展开查看
以下是引用天天向左在2016-04-07 10:51:50的发言 >

如果3个从站中有1个故障或掉电,整个通讯就变得很慢,计时的就可以不管从站是否正常,通讯速度是一样的,m0.1,m0.2不写程序就不能编译,

1个故障会多慢?拿数据比较一下。当一个站故障的时候相信你整个系统都应该不在状态了。必须处理了。多慢都无所谓啦。

那你是宁可每次通讯都要白等400毫秒,是每次,都不愿意放弃那个故障的站?正常通讯的话是永久的,而故障是偶然的。

我超时设置是50毫秒,据说modbus库程序通讯失败重试是3次(我不知道),那么一个站断电就是仅仅延迟了3个50再加上正常通讯的时间,估计只有200毫秒。而你现在却要每次都等待400毫秒,而且你还不敢把500毫秒调到100毫秒,因为偶然某次通讯稍微慢一点,没事的,就只是慢一点,那么你的程序modbus又报6错误了。你程序只要检测到这个站是故障的,那么你就以后都不需要在询问这个站了,直到人工介入,恢复通讯才开始轮训。整体上你就仅仅耽误过一次这么多。

只要从站出通讯问题,基本不可能自己恢复的,所以你不要想着再轮训再检查一次希望他自己恢复好了。你没有做任何外界介入有什么可能会恢复好呢?是不是。

使用计时器轮换状态,是一个很错的手法。你根本不会知道通讯一次需要多少时间。定得少了吧,老是错误6,都不知道什么回事。定得多的吧,像你这样,白等400毫秒。这400毫秒都可以通讯20次了。

官方已经在程序里面提供了一个最好的Done位让你安排工作,一完成了,马上done。没有更好的了。

你考虑吧。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33258条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。