==== 小编分享(五)=====
小编又来分享啦~~不知前几次的分享大家是否有收获,欢迎大家就前几次的功能块提问哦~~
这次想要分享的是如何在SCL中获取信号位的上升沿或者下降沿。边沿检测在实际工程中是十分常见的,比如记录工件个数,脉冲个数,行程开关或接近开关等等。如果使用的是梯形图,STL编程语言,有现成的边沿指令可以检测信号状态。但是,如果使用的是SCL语言,就没有提供类似于STL中的FP,FN沿检测指令,所以如果有逻辑需要,就必须客户自己编写程序来实现沿指令的判断。由此,小编联想到大家不知是否也遇到过这样的问题,那么下面小编就来说说如何编写一个功能块应对这样的问题。
首先先分析下什么是上升沿和下降沿。信号从0变1的那一瞬间叫做上升沿,而信号从1变0的那一瞬间叫做下降沿。那么想要判断是否发生了上升沿(Positive_Edge)或者下降沿(Negative_Edge),就要检测信号的当前状态(Current_Status)和前一状态(Last_Status)。不知大家是否还记得以前数字电路的真值表,此处就可以用到哦,我们来看看上升沿和下降沿的“真身”吧~

那么根据以上真值表就可以得出:

有了以上逻辑表达式,下面就可以轻松SCL编程啦,见下图FC1:

至此你是不是也心中窃喜,以后再有边沿检测“来袭”,轻松一招搞定!赶紧收入囊中吧~~
上述功能块在万能的西门子下载中心里已有介绍,链接见下:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=f0542