恭喜,你发布的帖子
发布于 2018-01-31 23:09:08
61楼
抛开具体的PLC,边沿检测的原理,我的理解是这样的:
指令(或一个什么设备仪器之类)对一个被测信号采样,
如果采到的值和上次采到的值不一样,认为前后两次采样间有跳变产生。只能认为有跳变产生,跳了几次不确定;
如果两次采样值一样,认为没有检测到跳变。只是指令没有检测到跳变,实际信号有没有跳变,也不能确定或不可知(这就是大部分人认为指令有问题的地方)。
跳边的检测,使用了前一次的采样值,这个值要存起来才能用。
不带数据存贮的沿指令,前次采样值和本次采样值都是外来的,指令只是个加工工具,所以不分第一次使用第二次用,只要输入数据,就有按规则运算后的输出。
有历史数据存贮的沿指令,那个历史数据是内置在指令中,外面不可控,但它必须初始化这个数据。所以它就有第一次使用的要求,即第一次使用仅用来初始化历史数据,而输出是个确定的值,一般如固定的0值。
200smart的沿指令,自带历史数据的存贮,所以,如果只调用一次,即沿指令只扫一次,它的输出就是固的0值,是确定的,可预知的,不会出现其它情况。
这是关于只调用一次的回答。
STEP 7用沿指令,存储变量必须是全局变量和静态变量。
200/200smart沿指令,其存储变量实质就是全局变量。
沿指令,必须被扫描到2次以上才能正确使用。
子程序在OB1的无条件调用,或者周期性的条件调用,在定时中断的无条件调用,我认为其实质就是全扫描了。其可靠性保证,就是变量变化的周期,及信号宽度确保大于扫描间隔(脉冲捕捉功能除外)
以上这几点,请问各位是否有异议?
yanxiao版主的这些例子,我不知道有天下工程师能有几位曾经这么编写过?但我的例子,曾经这么用过的一定不在少数吧。
举这个例子要说明的,沿指令本身没有问题,可以用,关键是怎么用?
我觉得,没有及其特殊的情况下,就在OB1全扫描吧,累不死PLC的,稳定而又可靠,而条件调用往往会遇到首次扫描响应失效的问题(为啥,扫描次数不够),其实OB1也有,但很少有在OB1的上电第一次扫描要求做首次扫描响应的,如YANXIAO版主所言,眨眼间n个扫描就过去了。
沿指令就是一普通PLC指令,没有必要想得那么复杂,简简单单用就是了。
请填写推广理由:
分享
只看
楼主