使用以下库可以实现过多的边沿检测。通常CPU仅支持256个边沿检测。本程序例程也可以用于子程序中。
这个库包含两个例行程序:分别适用于上升沿和下降沿。

上升沿 microwin_flankenauswertung_02.gif)
上升沿子程序调用参数 | 变量类型 | 说明 | EN | BOOL | 必须始终高(1) | Input | BOOL | 信号输入,当发生(0 -> 1)改变时,激 活输出1个循环周期. | Memory | BOOL | 临时存储区 | Output | BOOL | 信号输出 |
表1:上升沿的参数说明 功能:
如果信号输入(input)的状态发生变化0 -> 1(上升沿),那么信号输出(output)将被置位一个循环周期。
存储位保留该状态。为了识别另一个边沿,信号输入(input)必须运行一个零循环。这样存储位将被复位。 microwin_flankenauswertung_03.gif)
图3:上升沿的时序图下降沿 microwin_flankenauswertung_04.gif)
图4:下降沿子程序调用
参数 | 变量类型 | 说明 | EN | BOOL | 必须始终高(1) | Input | BOOL | 信号输入,当发生(0 -> 1)改变时,激活输出1个循环周期 | Memory | BOOL | 临时存储区 | Output | BOOL | 信号输出 |
表2:下降沿的参数说明 功能:
如果信号输入 (input) 的状态发生1 -> 0 (下降沿)变化,那么信号输出 (output) 将被置位一个循环周期.
存储位保留该状态。为了识别另一个边沿,信号输入 (input) 必须被复位为 High 1个循环周期。这样存储位将被复位。 microwin_flankenauswertung_05.gif)
图5:下降沿的时序图上升沿与下降沿(块: Edge_detect) microwin_flankenauswertung_06_e.gif)
图6:子程序调用块Edge_detect
参数 | 变量类型 | 说明 | EN | [BOOL] | 使能: 使能功能,必须一直为TRUE (1) | IN | [BOOL] | 信号输入,在上升沿(0->1)或下降沿(1->0),将被设置为“ OUT”一个循环周期。 | Memory | [BOOL] | 临时存储区 | OUT | [BOOL] | 信号输出 |
表3:Edge_detect的参数 功能:
如果信号输入“IN”出现上升沿(0->1)或下降沿 (1->0)变化,那么信号输出“OUT2”将被置位一个循环周期。存储位保存“IN”信号的当前状态。 microwin_flankenauswertung_07.gif)
图7:Edge_detect 信号图
|