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日
下一篇 2019年6月11日

相关推荐

  • 高分 关于将Wincc 过程值归档导出到EXCEL表中

    单位用的版本是Wincc 5.1、系统是2000。项目已经编写完成,我只是在原来的基础上增加查看和修改过程值归档的功能。 问题: 1.最终目的是将过程…

    SIMATIC WinCC 2019年6月11日
  • 登陆问题

    我在服务器的用户管理里上做了几个用户,并设置了权限,可是我在重新打开WINCC,根本不弹出登陆框,跟没有一样。请问还要在别的地方设置吗? 最佳答案 1. 先在画面中需要密…

    SIMATIC WinCC 2019年6月11日
  • wincc 窗口切换的问题

    想做一个数据采集的picture,在一个单独的窗口中显示并运行,不受主画面切换的影响。 请教: 1,如何让这个picture window最小化?&n…

    SIMATIC WinCC 2019年6月11日
  • WINCC下载问题

    我用WINCC作的组态下载到触摸屏时,先做OS更新,然后在下载画面,OS更新完之后,为什么有的能下载,有的不能,现在有四快触摸屏,只有一块是用WINCC作的,而且下载画面时很难,不…

    SIMATIC WinCC 2019年6月11日
  • 复制后wincc项目无法与300PLC通讯

    环境:win7+wincc7.3  315-2DP CP343-1过程:计划组态4台计算机,分别为单用户站与315-2DP通讯。wincc项目通过项目…

    2017年6月6日
  • 触摸屏系统时间

    我在触摸屏上做了报警记录,报警记录里显示的时间和实际时间不符合,我就想设置一下触摸屏的时间,但是不知道怎么设置,清高手指点一下,谢谢! 最佳答案 请参考:触摸屏时间和plc时间同步…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.0 modbus tcp ip 连接施耐德M340PLC

    现用WINCC7.0连接施耐德的M340PLC,有两个问题需向大侠们请教1是在变量管理中CPU的连接类型,WINCC7.0中就提供了以下几个:CPU 984(CPU&nb…

    SIMATIC WinCC 2019年6月11日
  • WINCC的控件框

    请问wincc中有控件能实现一个框里能放多个按钮和一些文本这种功能的吗 最佳答案 可能通过C脚本实现 提问者对于答案的评价:非常感谢!

    SIMATIC WinCC 2021年7月5日
  • TIA Portal V13 WINCC运行

    应该怎么设置能在开机自动启动RT。 问题补充:主要是怎么生成.mcx文件。谢谢大家。 最佳答案 参考:如何避免使用 WinCC (TIA Portal…

    SIMATIC WinCC 2017年6月9日
  • wincc在线趋势的百分比显示

    在WINCC在线趋势中,要求以电流百分比显示。还要可查一周前曲线 ,怎么搞啊 问题补充:电流实际显示应该从PLC读出来是数字量,是不是标定一下就可以了呢?即0-16384…

    SIMATIC WinCC 2019年6月11日