您现在的位置是:首页 > PLC技术 > PLC技术

STL编程语言的边沿检测

来源:艾特贸易2017-06-05

简介FP Bit (位) 正跳变(上升)沿。 FN Bit (位) 负跳变(下降)沿。 边沿检测是对一个信号状态、信号边沿中的变化进行检测。当信号从“ 0 ”到“ 1 ”变化时,边沿是正跳变(上升)

    FP  Bit(位)

    正跳变(上升)沿。

   FN  Bit(位)

    负跳变(下降)沿。

    边沿检测是对一个信号状态、信号边沿中的变化进行检测。当信号从“0”到“1”变化时,边沿是正跳变(上升)沿,与此相反的称为负跳变(下降)沿。

    在继电器逻辑图中,边沿检测等效为脉冲触点元件。如果这个脉冲触点元件在继电器接通时发出一个脉冲,就相当于上升沿检测;在断开时脉冲触点元件产生一个脉冲,相当于下降沿检测。

    在边沿检测中指定的位称为“边沿存储位”(它不一定是存储位),它必须是在下一个程序扫描周期中仍有效的位,否则不能在程序中再使用。适合作为这种位的有存储位、全局数据块中的数据位和在功能块中的静态局部数据位等。

    边沿存储位存储“旧的”RLO,即CPU上次处理边沿检测时用的。在每次边沿检测中,CPU用边沿存储位的信号状态与当前的RLO进行比较,如果它们具有不同的信号状态,就存在一个边沿。在这种情况下,通过把当前的RLO赋给边沿存储位,CPU更新边沿存储位的信号状态,并且不管是正跳变边沿还是负跳变边沿(取决于跟在边沿检测后面的指令)都将RLO置“1”。如果CPU没有检测到边沿,它把RLO置成“0”。

    在边沿检测后的信号状态“1”意味着“边沿已检测过”。信号状态“1”仅短暂地存在,通常只有一个程序周期的长度。因为CPU在下一个周期不检测边沿(如果边沿检测的“RLO输入”没有改变)。边沿检测后,CPURLO置成“0”。

    可以在边沿检测后直接处理RLO,例如用一个置位操作,或者把它存储到某一位中(“脉冲存储位”)。当来自边沿检测的RLO在程序的另一个位置处理时,使用脉冲存储位,对于已检测的边沿,中间缓冲器是有效的。适合作为脉冲存储位的有:存储位、全局数据块中的数据位以及暂态和静态局部数据位。

    在边沿检测后直接用检测语句可以进一步处理RLO

    CPU通电时记录边沿检测的响应,如果检测到了一个边沿先于边沿检测的RLO必须保持与其边沿存储位的信号状态一致。在某些情况下,边沿存储位在启动时一定是复位状态(取决于所期望的响应和所使用的存储位)。

    下面的例子展示了边沿检测是如何工作的,在已简化的形式里,输入表示先于边沿检测的RLO,存储位(“脉冲存储位”)为跟随在边沿检测后的RLO。当然,边沿检测也可以在二进制逻辑运算之前,或者在二进制逻辑运算之后。