[西门子] 设备运行时间统计编程案例

[复制链接]
查看79 | 回复0 | 2024-6-26 09:14:10 | 显示全部楼层 |阅读模式
>导读:在实际的工作中,有时候需要统计各设备的运行时间,这个时间的格式为“天-时-分-秒”。统计这个时间主要是为了方便工作人员对设备定期维护保养,那如何统计设备的运行时间呢?我们可以一起来探讨。
方法一:在OB1中编写
1.程序段1先是起保停程序,当电机启动了之后,使用系统时钟脉冲实现秒钟的累加,当秒钟时间到达了60秒后,分钟则加1的同时“秒”清零;当分钟到达了60分钟之后,“小时”加1,同时“分钟”清零。当超过了24小时之后,天数加1,同时“小时”清零。



方法二:在FB1中编写
由于我们可能会有多个设备需要累积运行时间,如果每次都用这种实参来编写的话效率不高。比如我现在需要再编写一个设备的运行时间,则是需要再次复制以上程序,然后粘贴后修改程序的地址,这样的话有可能地址忘记改,就容易出错。所以,我们可以使用带参数的子程序来编写这种相同功能的程序。这样还可以把这个程序封装起来,下次可以直接调用,不需要重复编写程序。
1.新建FB块,并且定义好接口变量。

1.其实程序和之前的差不多,只不过用局部变量代替了全局变量。程序段1先是起保停程序,当电机启动了之后,使用系统时钟脉冲实现秒钟的累加,当秒钟时间到达了60秒后,分钟则加1的同时“秒”清零;当分钟到达了60分钟之后,“小时”加1,同时“分钟”清零。当超过了24小时之后,天数加1,同时“小时”清零。
2.这个FB程序需要在主程序中调用,并且分配实际参数;如果有多个设备的话,直接调用多次即可。注意:要分配不同的全局变量参数



3.那如果有更多的设备需要这种类似的编程的话,您有更好的编程思路吗?可不可以借助UDT的数据类型和结构体的数据类型更快的编写呢?

写在最后:如果文章对您有所帮助,帮忙点个“赞”和“在看”呗!!!


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

本帖子中包含更多资源

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

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

本版积分规则