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的
最佳答案
用作比较的两个量类型不一致,需要统一数据类型后再进行比较。将比较语句改为如下即可:
If CStr(tttt) = CStr(objset.Value) Then
另外建议你多加一些TRACE或Msgbox语句,便于诊断脚本执行情况。
提问者对于答案的评价:
谢谢你 dcount107 已经调试成功
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276650.html