如果有小型PLC的梯形图编程经验的话,就应该记得小型PLC中有常开触点、常闭触点、上升沿、下降沿触点。在我们做项目的时候,有的信号是一直导通的,但是程序也许我们只需要运行一遍。这时就需要使用codesys提供的上升沿触发以及下降沿功能块了。使用上升沿或者下降沿功能块,就能将常闭信号转换成上升沿信号或者下降沿信号。
边沿检测指令用来检测BOOL 信号的上升沿(信号由0---->1)和下降沿(信号由1---->0)的变化。在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较,若不同则表明有一个跳变沿。因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较
边沿检测指令R_TRIG上升沿指令以及F_TRIG下降沿指令
上升沿触发功能块-R_TRIG
功能:用于检测上升沿。 语法:当CLK 从“0”变为“1”时,该上升沿检测器开始启动,Q 输出先由“1”然后输出变为“0”,持续一个PLC 运算周期;如果CLK 持续保持为“1”或者“0”,Q 输出一直保持为“0”。
使用方式也很简单:
- 1.声明一个变量,类型是R_TRIG
- 2.实例化这个功能块变量,填入相关参数
大家看一下4.5章节的例子: 变量区声明vR_Trig变量,这个变量是R_TRIG类型的 vR_Trig : R_TRIG;
然后在代码段: vR_Trig(CLK:= vb_StartButton, Q=> );
下降沿触发功能块
功能:用于检测下降沿。 语法:当CLK 从“1”变为“0”时,该下降沿检测器开始启动,Q 输出先由“1”然后输出变为“0”,持续一个PLC 运算周期;如果CLK 持续保持为“1”或者“0”,Q 输出一直保持为“0”。
例子:采集bInput 信号的下降沿,当bInput 由True 变为False 时,功能块F_TRIG.Q 会根据下降沿的触发事件给出相应输出,输出时间维持在一个周期。
ST语言实现下降沿程序也很简单,和上升沿用法一样。
大家继续看一下4.5章节的例子: 变量区声明: vF_Trig : F_TRIG;
然后在程序段: vF_Trig(CLK:= vb_StartButton, Q=> );