西门子FB程序块中计时的方法

工业控制中,一个项目往往有很多相同的工位组成,这些工位控制方式相同,动作相同,功能也相同,这样的话如果我们应用西门子300plc来写程序就会选择写一个fb程序块然后多次调用,这样就能减少很多重复写的程序。

在fb程序块中,如果我们要用到计时时候,就会发现自带的定时器不好用了,因为我们会在很多程序中调用这个fb程序,然后这个定时器就会被多次调用然后就会出错。这时候我们就要另想办法,这里介绍一种,用读取系统时长的办法来实现计时功能。

首先我们在fb块中新建3个静态数据如下图

西门子FB程序块中计时的方法

然后在程序中写入读取系统时长的程序

西门子FB程序块中计时的方法

其中#CLOCKTIME.SFC1_CDT是当前的系统时长,然后继续调用程序块

西门子FB程序块中计时的方法

如图调用fc1,当信号#TelescopeUp接通时候,#CLOCKTIME.time_stamp_1会生成一个新的时长,就是当前系统时长+一个我们设置的时长,途中所示我们加了1秒。

最后一步我们要再调用时长比较的程序fc12

西门子FB程序块中计时的方法

如上图,当当前系统时长大于等于#CLOCKTIME.time_stamp_1这个时长的时候,#down_close这个信号会动作,到这步就是一个完整的计时过程了。

大家看看一起学习吧~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据