定时触发

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午12:34
下一篇 2019年6月11日 下午12:34

相关推荐