恭喜,你发布的帖子
发布于 2018-01-31 09:58:56
42楼
二、第2个实例:沿指令在多次调用的子程序里
多次调用会对边沿重复取吗?不会。
LAD程序:
主程序部分:
子程序部分:
STL程序:
主程序部分:
子程序部分:
在线监视VD0、VD4的变化,有没有同步?
程序刚开始时如果你有机会看到VD0比VD4多1个计数,这个机率不到0.1%。因为主程序上的 P(EU) 比子程序中的 P(EU) 早工作一点点时间。
程序持续运行,子程序内的 P 不会漏1个计数或多1个计数。32位长整数可以计100年的。
附上源程序:
1,对于可重用的子程序(或者函数),其变量应该是“形参”,而不应该是“实参”。
2,“在S5-PLC系统内,没有沿判断指令,所以通常会用类似以下的方法来判断上升沿、下降沿。
A M0.0 //脉冲信号
AN M0.1
= M0.2 //上升沿
A M0.0
= M0.1
----------------------------------------
AN M1.0 //脉冲信号
A M1.1
= M1.2 //下降沿
A M1.0
= M1.1
”
沿指令本质上就是如上所述的逻辑,它是必须额外分配一个地址用以存储状态的!
300的编程软件需要手工分配地址,且没有限制沿的个数;而200smart是编程软件“自动”为其分配地址,且限制个数为1024个,比200的256个多了一些资源。正是由于分配存储地址的工作由系统自动地、默认地完成了,编程者就会误认为沿指令不需要存储地址吗?
3,也正是因为200的编程软件“自动”地分配了沿指令的存储地址,沿指令的地址就没法设置成“形参”,在可重用的子程序(或函数)中,没法使用沿指令。——这是200的原罪,你没法为它做无罪辩护!
请填写推广理由:
分享
只看
楼主