边沿检测,编写 plc程序的时候大都会用到,但是如果不注意,也会整出问题的。以下几种情况稍不注意,就会让你PLC程序逻辑不“听话”! (一)解读指令 上升沿和下降沿检测,需要输入一个中间的变量,执行的过程是: (1)检测输入RLO的状态(下图M20.1), (2)把RLO与中间这个变量(下图M20.2)做比较,如果出现从RLO=1, M20.2=0的情况,则输出Q=1 (3)输出后,把当前输入RLO的值(下图M20.1)写入到上升沿的中间变量中(下图M20.2) (二)注意事项 (1)千万不能使用FC的Stat变量,因为这个变量的数值是不存储的,该指令的这个中间变量是必须有存储功能的。但是可以在FB的Stat变量里面声明一个Bool量,用于上升沿或者下降沿检测,也可以使用M点或者DB块的Bool量。 (2)边沿检测只有一个周期,也就说话,监控程序是看不到这个信号的,只有靠增加Offdt的定时器或者采用SR触发器把信号抓住。 (3)尽可能采用2-3个边沿检测(这个是说,采用几个不同的边沿检测或起来去触发一个信号),因为以前遇到过,边沿检测会丢失!!!你可能没遇到过边沿检测丢失,但是不代表不会出现;也可以采用同一个信号,延时取反。 (4)翻翻西门子的固件更新说明,就知道可能出现各种意想不到的情况。 |