如何把报警记录的消息文本输出到静态文本或IO域中?
刘玉蓉
发布于2014-12-11 17:12
478
0
标签:
或者说怎么读取正在发生的报警记录中的消息文本?
佳答案
可以用脚本读取报警记录,然后写入到静态文本或IO域中:假如需要读取报警记录中的报警内容和报警点分别读取到变量tag1和tag2中,参考脚本如下:
Dim cc1
Set cc1=CreateObject("adodb.connection")
Dim snam1,Rtname
Dim ServerName1
Set ServerName1 = HMIRuntime.Tags("@ServerName")
ServerName1.Read
Dim DatasourceNameRT
Set DatasourceNameRT = HMIRuntime.Tags("@DatasourceNameRT")
DatasourceNameRT.Read
Rtname=DatasourceNameRT.Value
snam1=ServerName1.Value
strcon="provider=WinCCOLEDBProvider.1;catalog=" & Rtname & ";data source=" & snam1 & "WinCC"
cc1.ConnectionString=strcon
cc1.CursorLocation=3
cc1.open
Dim sqlstr
Dim rst
Dim t1
Set rst=CreateObject("adodb.recordset")
sqlstr="ALARMVIEW:Select * from algviewcht WHERE DateTime >""2013-12-1 12:00:00"" and DateTime <""2013-12-1 12:10:00"" "
Set t1=CreateObject("adodb.command")
t1.commandtype=1
Set t1.activeconnection=cc1
t1.commandtext=sqlstr
Set rst=t1.execute
rst.movefirst
""""rst.fields("text1").value ‘’对应报警内容
""""rst.fields("text2").value ‘’对应报警点
"" 报警内容写入变量中
dim tag1,tag2
set tag1=hmiruntime.tags("tag1")
set tag2=hmiruntime.tags("tag1")
tag1.read
tag1.write rst.fields("text1").value
tag2.read
rag2.write rst.fields("text2").value
rst.close
Set rst=Nothing
cc1.close
Set cc1=Nothing
Set ServerName1=Nothing
Set printgrid=Nothing
Set t1=Nothing
set tag1=nothing
set tag2=nothing
以上脚本是查询了13年12月1号12点0分到12点10分这十分钟内的报警,然后选取条报警内容读取到变量中