在全局脚本里面编写定时刷新脚本,每次刷新都去读取远程OPC一个变量的质量状态。
当通讯质量状态值<192时就表示通讯异常了。
Dim IOSte
Dim objTag
Dim objTagComm
Set objTag = HMIRuntime.Tags("Device1.Status") ''设备外部变量
Set objTagComm = HMIRuntime.Tags("Device1.Comm") ''WinCC内部变量
IOSte = objTag.Read
If objTag.QualityCode < 192 Then
objTagComm.Write 1 ''如果质量代码小于192则置位内部变量Device1.Comm,表示通讯异常报警
Else
objTagComm.Write 0 ''如果质量代码小于192则复位内部变量Device1.Comm,表示无通讯异常报警
End If
不过建议你分时段读取,比如一秒钟只读取10个远程OPC变量,那么8秒钟就一个循环了。
如果一次线读取多个很容易导致其他通讯数据响应过慢。
最后修改:2011/9/24 16:22:01