回复:我想修正一下一个公认的概念。我有新的解释。

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    158

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2016-11-21 21:45:18

39楼

展开查看
以下是引用芳季在2016-10-13 22:57:24的发言 >楼主

modbus库程序主站通讯程序,msg指令,不可以同时调用多个。试过的同志就会知道,同时调用两个这样的指令,较晚调用的那个就会报警。包括很多库指令都有这样的性质,uss,运动控制,都会。

但是,大家也知道,plc执行,基本没有同时的概念,有扫描,自然不会同时,那么这个同时是什么意思呢?

我不谈modbus。我谈m0.0和m0.1 。

看看以下几种情况,谁会比较的勉强地可以说是同时。两个m同时接通?

第一种情况,扫描到某个周期的时候1111111111111111111111111111111

网络1 m0.0 on

网络2 m0.1 off

下一个周期

网络1 m0.0 off

网络2 m0.1 off

再下一个周期

网络1 m0.0 off

网络2 m0.1 on

第二种情况,2222222222222222222222222222

网络1 m0.0 on

网络2 m0.1 off

下一个周期

网络1 m0.0 off

网络2 m0.1 on

再下一个周期

网络1 m0.0 off

网络2 m0.1 on

第三种情况,33333333333333333333333333333

网络1 m0.0 on

网络2 m0.1 off

下一个周期

网络1 m0.0 on

网络2 m0.1 on

再下一个周期

网络1 m0.0 off

网络2 m0.1 on

就是这样,三种情况。

我干扰一下大家的分析:

第一种,有一个周期两个m都是off的。

第二种,有一个周期,两个m都是on过。

第三种,有两个周期,两个都on过。


同时执行和同时为1是两个概念。

通讯、PTO指令和别的指令不一样,是异步于扫描周期的,也就是说一条指令的执行时间可能会延续若干个扫描周期。这样,就存在同时执行多次的问题了。

比如说你调用XMT发送一串比较长的数据,而程序的扫描周期非常短,如果连续两个扫描周期都调用该XMT指令,会触发重复执行的错误。

modbus的msg块,是另外一种程度上的异步了,包含了发送指令,接收响应,处理结果等步骤,都不是一个扫描周期可以完成的,如果上一次的msg指令没有完成,而下一次的触发信号又来了,那就是重复执行,即使你的程序只在ob1中调用了一次该块

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33306条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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