恭喜,你发布的帖子
发布于 2022-05-08 19:36:19
18楼
子弹飞了了一会儿了,可以落地了。
结论,巧妙谈不上,得瑟而已!
首先,把线圈当临时变量使用(而且是重复使用),物理世界是无法是实现的,软件里(或者说虚拟世界)里可以使用,但你也要注意其合理性,因为你是在用软件来实现一个原本在物理世界实现的功能。
其次,回到纯软件中,楼主的两段程序是等效的吗?非也,PLC的基本功没学好!如果说有事件中断要读取线圈的值,还有芳季大侠提到的即时生效的特殊标志位,你的程序还能若你所愿吗?
每一次赋值,临时变量的值都是都是根据当前计算结果变化的,线圈赋值中间标志位也好,输出点也好,计算机内存变量的值都是变化的,只是输出点会在扫描周期的某个节点统一刷新其最后的赋值,这些值的变化依然会给程序的处理带来不确定性。
真正等效的程序,应该是这样的,
A #IN1
A #IN2
A #IN3
A #IN4
= #FLAG1
A #IN5
A #IN6
A #IN7
= #FLAG2
A #IN8
A #IN9
A #IN10
= #FLAG3
A #FLAG1
A #FLAG2
A #FLAG3
= #OUT1
细想想,这与我们使用中间继电器分电路没太大区别哟(别较真计算机程序处理与电路的区别),所以说物理世界的道理是你大爷还是你大爷。先学好基础知识没坏处的。
请填写推广理由:
分享
只看
楼主