[西门子] 在ST语言中如何使用上升沿和下降沿指令

[复制链接]
查看89 | 回复0 | 2024-10-29 16:05:23 | 显示全部楼层 |阅读模式
>

点击蓝字

关注不迷路,学习非标自动化编程

ST语言中的上升沿和下降沿指令

在梯形图中,我们都经常要用到上升沿和下降沿指令,书写起来也比较简单,只是不同PLC之间的差异比较大,如下图的西门子和三菱:

左:西门子PLC上升沿表达方式;

右:三菱PLC上升沿表达方式;

虽然表达形式不同,单其实原理都是一样的,都是根据检测信号由OFF状态突然变为ON状态的一瞬间,给出一个扫描周期的TURE信号,在西门子PLC中直接显示了用于辅助记录的信号;其实在三菱中也是同样的道理,只是不显示。

边沿触发指令的用途:比如我们有一个按钮,虽然我们只是按一下,但是与PLC的执行扫描时间比,按下的那一次接通时间已经远远大于了PLC的执行扫描时间,那么如果要让指令只执行一次就无法满足,特别是在伺服控制或其他高精度要求的控制系统中。所以就引入了边沿触发指令,那么在ST语言中如何表示呢?

·上升沿触发指令

在西门子PLC中:

"R_TRIG_DB_2"(CLK:=_bool_in_,Q=>_bool_out_);

在三菱PLC中:

R_TRIG_1(CLK:=<表达式>,Q:=<变量>);

根据以上上升沿表达方式可以看出,不同PLC之间表现形式还是有差异的,当然我们也可以根据触发原理,引入中间变量利用之前分享的逻辑运算符编写同样功能的ST语言上升沿指令。

·下降沿触发指令

下降沿与上升沿用法刚好相反,是用来检测信号由ON状态变为OFF状态的瞬间,送出一个接通一个扫描周期ON的信号。同样来看一下西门子和三菱PLC中表达形式:

"F_TRIG_DB"(CLK:=_bool_in_,Q=>_bool_out_);西门子

F_TRIG_1(CLK:=<表达式>,Q=<变量>);

下面我们变换一个等同的上升沿触发指令(利用检测上升沿原理):

按上图西门子PLC中的上升沿信号(三菱中不显示辅助BOOL变量)来转换,此处我们需要引入一个辅助变量,定义一个M_1;

M_1 := “REV” AND NOT “Tag_1”;

“Tag_1” := “REV”;

同样,还是拿电机的正反转控制电路为例子,如果我们采用启动按钮按下后松开的时候让电机开始旋转;那么用下降沿指令如何编写呢?欢迎留言讨论。下篇分享编写方法。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则