您的位置 首页 电子

谈谈UP TRIG 和DOWN TRIG

上文提到了上升沿和下降沿的问题,因为感觉非常实用,再详细谈一下沿检测在PLC中用的非常多,PLC是循环扫描的,可以看做是LABVIEW的一个WHILE

上文提到了上升沿和下降沿的问题,由于感觉十分有用,再详细谈一下.

沿检测在PLC顶用的十分多,PLC是循环扫描的,能够看做是LABVIEW的一个WHILE循环,在PLC中是这样界说的.

DF:当检测到输入触发信号的上升沿时,仅将触点闭合一个扫描周期。
DFI:当检测到输入触发信号的下降沿时,仅将触点闭合一个扫描周期。
程序示例

示例阐明
在检测到 X0的上升沿(OFF→ON)时,Y0仅为 ON一个扫描周期。
在检测到 X1的下降沿(ON→OFF)时,Y1仅为 ON一个扫描周期。

描绘
当触发信号状况从 OFF 状况到 ON状况变化时,DF 指令才履行而且输出仅接通一个扫描周期。
当触发信号状况从 ON状况到 OFF 状况变化时,DFI 指令才履行而且输出仅接通一个扫描周期。
若履行条件开始即为闭合,则 PLC接通电源,则不会发生输出。

在LV编程中常常也会遇到相似的问题.

比方计算按钮按下的次数,不选用事情结构而是选用POLLING方法,在C语言中是这样编程的.

boolcount(bool button) /* UpTrig */

{

static int counter=0;

static bool button_Old=FALSE;

if(Button && !Button_Old)counter++; /*OLD=FALSE,NEW=TRUE –>UP TRIG */

button_Old=button /*Update Old Status ,相当于LV的shift Register */

return(Button &&!Button_Old);

}

假如不是沿检测,如if(Button) counter++; 假如按钮一向处于按下状况,将导致COUNTER不断添加,这明显不是咱们期望的成果.

再比方一个状况机结构,能够分红N个状况,在每一个状况中又能够分解成三个子状况,进入预备(初始化),运转,退出(整理),明显进入预备和退出整理有必要是在条件发生变化的时分履行一次,这就需求沿的操作.

LABVIEW自身就供给了沿判别的VI,在逐点剖析库其它中.

它的代码如下图:

它能够依据挑选检测FALSE–>TRUE(UP), TRUE–>FALSE(DOWN) 或许EITHER,(UP AND DOWN)

OpenG也供给了一个相似的VI,

这两个VI都是利用了未初始化的SHIFT REGISTER,封装在子VI中,这是一个十分重要的概念,称做LV2型全局变量或许Function Global,以后会专门评论

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/211631.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部