回复:应用探讨——S7-300/400 PLC Modbus通讯应用探讨

四书五经

  • 帖子

    762
  • 精华

    58
  • 被关注

    30

论坛等级:侠圣

注册时间:2005-12-23

普通 普通 如何晋级?

发布于 2011-08-10 16:04:04

23楼

quote:以下是引用依然在2011-07-27 08:08:41的发言:
跑偏的意思是把下一个从站的数据给清了,这个应该还是程序考虑不周全和处理不当导致的,但是一直没找到好的解决办法。
从站轮询,站号是每次通讯完毕后变化的,但是当通讯堵塞时判断站号,把该站号的数据清除,就会产生把别的从站数据清除的可能。

"依然"大侠你好,不知道你是如何清除故障从站数据的,还有就是为什么要清除故障从站的数据? 如果你是通过清除接收DB来清除故障从站数据的话,那么对应不同的从站可以使用不同的接收DB,具体可以参考"A0336:CP341 Modbus RTU多站点轮询"文档。另,清除接收数据用的是什么指令?是SFC21吗?如果是SFC21,需要考虑异步执行的问题。记得有一次用441带若干个温控表,接收用的是同一个DB,当时想把接收的数据传到另一个DB中,开始时用SFC20,结果是传送的数据包含了下一个站的数据,用SFC81也不行,最后不得不用STL编写了一段程序用循环去传送数据,结果是正确的。最后分析觉得应该是SFC20,SFC81都是异步执行的,而STL的循环程序是同步执行的。异步执行跨越多个CPU扫描周期,呵呵,有点象高级语言中的多线程,有利也有弊!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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