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

[复制链接]
查看63171 | 回复0 | 2024-4-25 18:06:21 | 显示全部楼层 |阅读模式
之前我曾发布过一个使用西门子SCL编程语言编写翻转触发器的视频(本文末尾可观看),有网友留言能否对代码进行优化改进,我考虑并测试了新代码,较之前更为简练,写篇文章与大家分享下。



函数块FB102_FlipFlop实现翻转触发器功能,其参数含义如下面的表格和图片所示:
表1——函数块FB102_FlipFlop参数说明
名称
类别
数据类型
说明
trigger
输入
Bool
触发信号
Q
输出
Bool
触发器输
statTriggerUp
静态变量
Bool
触发信号上升沿
statTriggerUpHelpFlag静态变量
Bool
触发信号上升沿辅助变量
statOut
静态变量
Bool
输出信号静态变量



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



大家注意看信号翻转的这一段代码(左右滑动看全部);
//信号翻转IF#statTriggerUp AND NOT #statOut THEN#statOut := TRUE; //输出1ELSIF #statTriggerUp AND #statOut THEN#statOut := FALSE;//输出0END_IF;
感觉还是比较繁琐,因此可以这样优化:
//信号翻转IF#statTriggerUp  THEN    #statOut :=NOT #statOut; //信号翻转END_IF;
整个函数块优化后的代码如下图所示:



这样优化后的代码简洁了很多,感兴趣的小伙伴可以自己测试下。

本帖子中包含更多资源

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

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

本版积分规则