北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章528 浏览8060003

西门子SCL编程实例——翻转触发器(代码优化)

之前我曾发布过一个使用西门子SCL编程语言编写翻转触发器的视频(本文末可观看),有网友留言能否对代码进行优化改进,我考虑并测试了新代码,较之前更为简练,写篇文章与大家分享下。

cover.png

函数块FB102_FlipFlop实现翻转触发器功能,其参数含义如下面的表格和图片所示:

表1——函数块FB102_FlipFlop参数说明
名称
类别
数据类型
说明
trigger
输入
Bool
触发信号
Q
输出
Bool
触发器输
statTriggerUp
静态变量
Bool
触发信号上升沿
statTriggerUpHelpFlag静态变量
Bool
触发信号上升沿辅助变量
statOut
静态变量
Bool
输出信号静态变量

图1.PNG

优化之前的代码如下图所示:

图2.PNG

大家注意看信号翻转的这一段代码;

//信号翻转
IF #statTriggerUp AND NOT #statOut THEN    
#statOut := TRUE; //输出1
ELSIF #statTriggerUp AND #statOut THEN    
#statOut := FALSE;//输出0
END_IF;

感觉还是比较繁琐,因此可以这样优化:

//信号翻转IF #statTriggerUp  THEN    
#statOut :=NOT #statOut; //信号翻转
END_IF;

整个函数块优化后的代码如下图所示:

图3.PNG

这样优化后的代码简洁了很多,感兴趣的小伙伴可以自己测试下。之前发布的视频如下:

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论