我想做变量记录的24小时周期记录,并且时间可定点选择(例如每天8或9点时记录),初步思路是:实现定时触发,即系统时间达到设定的时间(需要人为给定)时,开始触发一个二进制变量置1,否则置0,然后用非周期的事件触发变量记录,从而达到我的定点触发的目的,请问思路可行吗?设定时间与系统时间的比较,小弟脚本语言基础不行,请问能写给我看看吗
问题补充:
Dim objTag,objset
Dim tttt
tttt = Time '系统时间
Set objTag = HMIRuntime.Tags("DR1") '触发归档的二进制变量
objTag.Read
Set objset = HMIRuntime.Tags("aa1") '设定时间
objset.Read
If tttt = objset.Value Then
If objTag.Value = 1 Then
objTag.Write 0
Else
objTag.Write 1
End If
End If
MsgBox tttt 显示的系统时间样式为:HH:MM:SS,与给定时间aa1格式相同,把程序添加到全局脚本中,触发周期未一秒,程序也能执行到最后,请问我的DR1变量为什么没有任何变化,而西门子技术支持说执行OK的
最佳答案
可行,并且不需要使用脚本。
变量记录中采集类型可以选择为“周期-可选择”,然后于事件中可提供了可以启动和终止该变量的记录的选项,不会脚本可以选择变量。
这里需要两个BOOL型变量,起始变量用于启动归档、停止变量用于终止归档。这两个变量可以在PLC中读取系统时间进行判断生成。
补充:用作比较的两个量类型不一致,需要统一数据类型后再进行比较。将比较语句改为如下即可:
If CStr(tttt) = CStr(objset.Value) Then
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276561.html