回复:重复输出的问题

skater

西门子1847工业学习平台

  • 帖子

    93
  • 精华

    0
  • 被关注

    4

论坛等级:侠客

注册时间:2006-12-19

普通 普通 如何晋级?

发布于 2014-08-22 17:27:40

3楼

其实一般PLC的工作周期是:输入采样-程序执行-输出刷新。
本问题涉及到的是程序执行-输出刷新这两步,PLC一般是将所有的程序都执行完再进行输出刷新的。
所以如果把同时输出给M75.0的程序都编写在OB1中,那么只能是最后一行输出给M75.0的程序有效,前面的都失效了。
因为前面的程序在给M75.0赋值的时候如果给其赋“1”,此时程序没有全部执行完,不会刷新输出,而如果后面的程序却给其赋“0”,若此后没有其它给M75.0赋值的程序了,那么M75.0便为“0”,然后等程序都执行完会刷新输出时M75.0便为“0”。
因此,无论前面的程序使之为“1”还是“0”,后面的程序使之为“0”,最终的输出便为“0”;而同样,不管前面的程序使之为“1”还是“0”,后面的程序使之为“1”,最终的输出便为“1”。
但是如果将这两个同时对M75.0的程序编写在不同的FC中,且后面的FC在OB1中调用时前面增加一个调用条件。当其不满足时,后面的FC便不会调用,也就不会去执行,那么前面的FC如执行完,如果后面没有别的程序就会进入到输出刷新这步了。这时两个同时对M75.0写的程序就不会有冲突。但当后面那个FC的调用条件满足时,情况就和前面说的同在OB1中的情况一样了。
这些是我刚刚用PLC试过的。
苦修内功
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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