我是靠谱客的博主 哭泣小蝴蝶,最近开发中收集的这篇文章主要介绍上升沿判断语句_【万泉河】PLC编程,上升沿的那点儿事,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在PLC编程中,上升沿逻辑经常需要用到。它的功能在于,在一个信号由0变1的瞬间,产生一个状态位,用于触发系统功能。

上升沿的功能原本非常简单,也有一些文章介绍过使用方法。但仍然有不少人对此比较困惑。尤其在标准化编程架构下。

标准化编程中,不可以使用全局变量的M和T,这些我都写过多次文章了。而上升沿和下降沿,因为比较简单, 就一直没有专门提及。

这回专门介绍一下。

在S7-300/400中,上升沿是个函数:

c8f3788c202a779285d899e6b9448379.png

切换到STL,指令为:

5fd7ec4c8e78c3f8b988ead73d761dd7.png

所以,本质上它就是一个FP的指令,只不过需要消耗一个全局变量。

在PORTAL中,上升沿下降沿的指令变的更复杂了。4对,8个:

d3b7c65e060dcb2977491b5ad4f4d08a.png

调用时这样:

4abf5ab6efd3020d7db9e290f526d351.png

而其实我并不确切明白这4种到底有什么具体的区别。或者说,不明白西门子为啥要给搞到这么复杂。

不管了,还按老的方式用P_TRIG即可。

S7-200 SMART 中使用就比较简单,一个简单的符号:

546d4f638a0ecdd8f132119a7f5f7755.png

STL语言,它的指令其实叫做EU:

08efa24c56a202787e5763cd69622cd0.png

恰恰是这个EU,或者说P指令,害了很多人。

这个P指令,用起来确实简单,不需要加辅助变量,拿来就能用。但没有输入辅助变量的地方,反而不能区分了,就出了大问题,因为这个指令其实是不能重复被调用的。所以,一个子程序块,如果使用了上升沿指令,那么这个子程序在同一个CPU程序中,就不可以被重复调用。

很多人,写好了一个库函数, 调试的时候功能很好用。但等用到多个设备,函数块被多次调用,就开始出各种匪夷所思的毛病了。 

都是拜这个P指令所赐。

所以,如果这个子程序实现的是设备库函数的功能的话,就不可以使用P指令。一处都不可以。

所以,在SMART 200的标准化编程里面,如果按照我过去同样的语言格式,就应该表达为:好的PLC程序的判断标准,不使用P指令。

过去那些听闻M和T用不得都受不了的人,再听到这个说法,恐怕是要疯掉了。

那么,不让用P指令,如何实现上升沿控制呢?

二十几年来,PLC领域进展翻天覆地。但有的地方其实却是退步了。

我们回到S5来寻找答案。

那个时候,是没有现成指令给你用的,要做上升沿,需要自己编程实现:

e77c06808fb439286181ddfb1a2cb7a2.png

STL语句里面:

48e6423a383bc5b9f5c8d8a022e553ca.png

使用一个辅助变量,简单保存一下输入信号的值,就可以实现了。只需要这个保存语句,在使用的下方即可。

那么,在SMART200中,库函数中需要上升沿指令的时候,只需要回到S5时代的方法,就可以了。辅助变量如何避免使用全局变量的问题,老早就讨论过多次了。

其实,我上面的程序也是在SMART中做的。手头并没有STEP5的软件了。

以同样的道理,在SCL以及其它高级语言中,可以同理参考实现上升沿功能。

通常,使用一个OLD辅助变量

OUT := SIGN AND NOT SIGN_OLD;

SIGN_OLD:=SIGN;

因为下降沿的本质就是信号取反的上升沿,所以本文没有特别关注下降沿,也建议大家不要使用下降沿编程。那样回过去读程序的时候逻辑会混乱,比较烧脑。

最后

以上就是哭泣小蝴蝶为你收集整理的上升沿判断语句_【万泉河】PLC编程,上升沿的那点儿事的全部内容,希望文章能够帮你解决上升沿判断语句_【万泉河】PLC编程,上升沿的那点儿事所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部