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

西门子SCL编程实例——定时自复位程序

在实际项目中,有时候需要对某个变量进行定时自复位处理。也就是说,当该变量被置位(值变为TRUE)后,经过一定时间,会自动复位(其值变为FALSE)。今天这篇文章,我们就使用SCL语言编程实现这样一个函数块(FB)。

cover.png

创建函数块FB10_AutoReset,在其变量声明区声明如下变量:

参数类型
参数名称
数据类型
说明
输入
resetTimeTime
复位的时间
输入/输出
val
Bool
要复位的变量

特别说明:val类型是输入/输出参数,因为函数块要对其进行读写操作。

另外还有一些静态变量,如下图所示:

declear.PNG

接下来写程序的代码,其中使用到了延时接通定时器。定时器的背景数据块设为多重背景数据块,即使用FB10_AutoReset的背景数据块。

代码如下图所示:

auto.png

该代码首先将变量val的值保存到静态变量statAutoVal中,然后在statAutoVal的值为真的情况下,启动TON定时器开始计时。当到达设定的时间后,将statAutoVal复位。

最后将statAutoVal的值赋给变量Val;

在主程序块OB1中调用函数块FB10_AutoReset,使用M10.0作为测试变量,如下图所示:

ob1.PNG

这个函数块功能我已经实际测试过,感兴趣的小伙伴可以自己测试下,如果有任何问题欢迎讨论。

我的微信视频号分享一些工控小知识,欢迎扫描下面的二维码观看:


founderchip.png

取消

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

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

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

发表评论