回复:子程序输出一个点,需要在不调用的时候这个回到off。

'Razor

西门子1847工业学习平台

  • 帖子

    3208
  • 精华

    41
  • 被关注

    222

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2025-09-09 10:49:02

3楼

作为在论坛混迹多年的”老鸟“提出这样的问题还是让人有些意外的,提出这个问题有一个隐含的前提条件,即子程序是有条件(这个条件不是Always_ON的SM0.0)调用,就会出现子程序调用时输出状态会在子程序不再调用时保持”冻结“。

解决办法有几种,最推荐的一种就是”在PLC全运行周期保持子程序持续在线被调用“,通俗地说就是,只要PLC一运行,就让子程序随之被保持调用,直到PLC停止运行。

笨方法就是,在主程序中在有条件非持续(PLC运行周期)调用的子程序附近对被”冻结“的状态进行RST复位操作,这种方法有违”创建中央控制点“的编程战术规范,会附带”双线圈“问题,虽然有人认为”双线圈“不是问题,我个人习惯碰到它还是会口头问候编程人的亲戚。

之所以有这样的问题,应该是被控对象搞错了,我们应该控制的是子程序语句集合中逻辑条件的变化要被侦测到从而进行逻辑运算改变状态,而不是”子程序语句集合“是否被调用,虽然它有些逆人性,人性认识还是”用到即调用,用不到就不调用“,这种想法人很爽,机器却很不爽。

标新立异并不总是可取的,要慎重;主流做法往往是稳健的,一些”反弹琵琶“的做法有时不但会割到手,甚至还会断弦打到眼。

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8938条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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