分享

每天五分钟:双线圈引起的争论-----程序结构化

 设备WX 2022-03-06

      Hello大家好,我是你们的Magic伟,我们又见面了图片 天五分钟,温习一下学过的知识,补充能量,为自己加油、充电

      在大家编写PLC程序的时候,有时候会遇到双线圈这样的问题,最近就有朋友问我:我这边都已经停止调用子程序了,子程序线圈还是接通的状态,怎么把线圈都断掉?那么针对这样的问题今天我就来告诉大家我们应该怎么办。

背景介绍:西门子PLC环境下,停止调用子程序除临时变量外,其余的变量(均为全局变量)均保持不变。

简单的解决方案:

      在调用子程序前(在主程序中)先把线圈写0,这种情况相当于PLC每次循环都把子程序里的线圈全部初始化,再执行子程序逻辑。

      我知道你看了上面的解决方案,一下子就跳起来,我裤子都脱了你就给我看这个???这不双线圈了吗,量少的情况还能接受,量大的话就是自己给自己挖坑。

      双线圈的问题,很像上世纪60-70年代GOTO语句的争议,最后在1974年高德纳对于 goto 语句争论作了全面公正的评述,观点如下:

1、随意的使用goto语句是有害的。

2、有些地方使用 goto 语句,会使程序流程更清楚、效率更高。

3、争论的焦点不应该放在是否取消 goto 语句上,而应该放在用什么样的程序结构上。

“双线圈”的这类问题我给出一种程序结构:

将子程序线圈变量通过接口暴露给主程序,在主程序中进行统一处理(统一程序出口)

调用子程序状态:

图片

不调用子程序状态:

图片

子程序内部逻辑:

图片

      好啦,Magic伟今天就要和你们说拜拜了,希望能够在你们的工作中有帮助,我们下期再见!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多