WINCC报警记录运行系统

想在WINCC运行系统中单击显示两个阶段的报警数据(比如33~44和101~103),按钮代码如下:
 sprintf(SQLcmd,"MSGNR>=%d  AND  MSGNR<=%d OR MSGNR>=%d  AND  MSGNR<=%d",begin_b,end_b,begin1_b,end1_b);
 SetPropChar(lpszPictureName,"AlarmControl1",APCMsgFilterSQL,SQLcmd);
 为什么只能显示begin_b和end_b之间的报警数据?刚如何解决?

问题补充:
"MsgFilterSQL" 是这样定义的:
   #define APCMsgFilterSQL "MsgFilterSQL"
   我也直接把SetPropChar(lpszPictureName,"AlarmControl2",APCMsgFilterSQL,SQLcmd);改为SetPropChar(lpszPictureName,"AlarmControl2", "MsgFilterSQL",SQLcmd);一样是没用的,不知道“ 兼容性”你是如何做到的,可不可以再说清楚一点,我用的是WINCC 6.0版本的

  
 

最佳答案

采用如下代码,可以实现所要求的报警记录的查询:
 查询字串sSql="where (msgNR>33 and msgNR<44) or (msgNR>101 and msgNR<103)"
 sSql = "ALARMVIEW:Select * FROM ALGVIEWCHT " & sSql
 以下代码是用VBScript写的:
 Dim sPro, sDsn, sSer,sCon
  Dim oRptTitle
  Dim conn, oRs, oCom,  oItem
  Dim m,n,s,nRec,lRet

  '' 0.0 Get parameters from i/o fields in picture
  sDsn=HMIRuntime.Tags("@DatasourceNameRT").Read(1)
  sPro = "Provider=WinCCOLEDBProvider.1;"
  sDsn = "Catalog=" + sDsn + ";"
  sSer = "Data Source=.\WinCC"
  sCon = sPro + sDsn + sSer
  '' 2.1 Make connection
  Set conn = CreateObject("ADODB.Connection")
  conn.ConnectionString = sCon
  conn.CursorLocation = 3''adUseClient
  conn.Open
  '' 2.2 Use command text for query
  Set oRs = CreateObject("ADODB.Recordset")
  Set oCom = CreateObject("ADODB.Command")
  oCom.CommandType = 1 '' adCmdText  = 1
  Set oCom.ActiveConnection = conn
  oCom.CommandText = sSql
  '' 2.3 Fill the recordset
  On Error Resume Next  
                     Set oRs = oCom.Execute
 oRs中包含有查询结果,将其放在一个列表控件如List中即可看到所查询的内容.我的项目中也包括这样的查询,并且我采用上述方法实现了报警记录的任意查询

提问者对于答案的评价:
其实都很好,谢谢你们的建议

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc277740.html

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

相关推荐

  • 求助wincc开关问题

    本人正在开发一套系统,遇到一个问题,如何用一个按钮来实现一个变量的置位和复位 最佳答案 可以做一个C动作int a;a=getbit(“需要操作的变量”,a);a=set…

    SIMATIC WinCC 2017年12月7日
  • 关于Wincc运行时出现错误问题

    WinCC在运行一段时间后会出现错误对话框。不知是什么原因造成的,请大侠们给指点下。非常感谢。这问题出了后画面就不能正常使用了,影响生产。要重新启动才行。 图片说明:  …

    2017年8月26日
  • 已经建好的FB块的背景数据块如何连接WINCC

    是这样的,有一个已经写好了的S7程序,并且已经用了一段时间,程序是用STEP7V5.1版本写的,可以用PCS7V5.2版本打开,现在我想加个WINCC,在建变量的时候有一个FB4的…

    SIMATIC WinCC 2019年6月11日
  • wincc突然就连不上plc了

    wincc7.5sp1和1500plc以太网通讯,之前都是正常的,今天wincc连不上,界面显示都是阴影。用笔记本连接plc的网口在线正常。把wincc换到平时监控plc的网口也不…

    SIMATIC WinCC 2021年7月5日
  • WINCC 项目函数能否相互调用?

    我在WINCC(V6.0)的一个项目函数中调用另一个项目函数,结果报错(003f)和(0066),说所调用的不是函数。WINCC 项目函数能否相互调用?请高手指点!谢谢了…

    SIMATIC WinCC 2019年6月11日
  • WinCC V7如何在IO域显示前导零?

    请问如何设置IO域最低显示位数?如原始值为整数"9",显示值为"09" 最佳答案 IO域的输出格式前面加一个零,比如两位数‘099’,三位数…

    SIMATIC WinCC 2020年11月1日
  • WinCC flexible2008安装后不能启动

    创建数据库时,创建模板失败!MSDE也装啦!高手指教! 问题补充:装过2007好用,卸载之后装的2008。卸载软件也用啦,安装路径没有更改。 最佳答案 WinCC fle…

    SIMATIC WinCC 2019年6月11日
  • WINCC安装错误

    WINCC安装工程中出现ComponentMoveData error: Media name: data Component:&…

    SIMATIC WinCC 2019年6月11日
  • 增加画面

    在运行的WINCC画面中的主菜单上面通常会有一排的按钮,然后点击其中的一个按钮,就会弹出一个由多个按钮组成的画面,然后我们就可以在次点击其中的一个按钮,进入我们要到的画面.不知道这…

    SIMATIC WinCC 2019年6月11日
  • 电脑待机以后,恢复以后,WINCC和PLC就连接不上了,必须wincc重新启动才能连上

    电脑待机以后,恢复以后,WINCC和PLC就连接不上了,必须wincc重新启动才能连上,有没有好的办法,让wincc自动和PLC连接 问题补充:我当然知道可以不让待机。我的意思是如…

    SIMATIC WinCC 2020年11月1日