我使用的CPU226,6块智能仪表进行通讯,接线正确(按照modbus master test.mwp进行程序设计,可以正常通讯)。现在的问题是下一个块是通过上一个块的完成标志位来激活的,那就存在一个问题,加入我这个块的通讯没有完成,然后就无法激活下一步,整个的通讯就瘫痪了,然后做了修正,用计数器去控制,记一次数执行一个块,仍然存在一个问题,就是我无法确定我这一步的通讯是否完成了。通讯该怎样做才合理呢?怎样加一个延时程序当某一步通讯异常时进行延时处理,然后跳到下一个?现在有点迷糊了,求大哥们指点指点,小弟拜谢了!!
最佳答案
这个S200的modbus库,初始化程序的时候,那个延时时间就是让你设定通讯失败的容忍时间,按正常通讯的话,一般智能仪表大概也就30ms就可以完成了,那么你设置成50ms,假设其中一块表通讯不上,系统会自动重复3次,即3×50ms=150ms,150ms时间到达后,那个DONE位同样也会置为1的;
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc206578.html