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

相关推荐

  • winccflexible如何通过按钮按下启动数据记录

    在winccflexible中,如何通过按钮按下进行数据记录?比如变量process,对应数据记录record,process记录属性采集模式设置为“根据命令”,然后在按钮事件“单…

    SIMATIC WinCC 2017年6月11日
  • 两个函数的区别

    我在弄报表,有两个函数不明白GetObject和CreateObject这两个函数怎么区别啊我发现别人写的程序中都有Set ExcelApp=GetObject(,&qu…

    SIMATIC WinCC 2019年6月11日
  • 如何通过wincc的c语言编译来对数据包解包

    现在下位机打包传上来的是word;比如电机运行,故障,电源,启动,停止;这些bool都打包到一个word里面传上来;现在画面要连这些bool,如何编译c语言,转化到16个内部二进制…

    SIMATIC WinCC 2019年6月11日
  • 博图wincc里面怎么找不到F(t)趋势图控件

    博图wincc里面怎么找不到F(t)趋势图控件,我需要做温度和时间的趋势图,用趋势图控件,又没有那些工具 例如筛选显示哪几条趋势图,还有按照时间查之前的记录。 钻石用户推…

    SIMATIC WinCC 2021年7月5日
  • WINCC读取变量名

    我想用函数从输入输出域里面读出变量名,然后做趋势,请问怎么做?用什么函数来读? 问题补充:我想做点击输入输出域,然后弹出窗口显示趋势的这个功能。有许多的输入输出域,通过方法或者函数…

    SIMATIC WinCC 2020年11月1日
  • Web Navigator 网络连接问题

    刚看了许多朋友的关于Web Navigator 的问题。我也遇见了类似的问题。 1.安装好Web Navigator后,客户机访问;&nbs…

    SIMATIC WinCC 2019年6月11日
  • 【求助】Wincc的表格控件怎么设置时间间隔

    Wincc online TableControl 控件怎么查询时间间隔数据现在数据归档是500毫秒存储一次数据用TableContro查的数据间隔是…

    SIMATIC WinCC 2017年6月3日
  • WINCC编译出错问题

    PCS7 CEMAT 服务器结构wincc编译的时候,快到最后,出现系统错误,是s7uvmapx.exe错误,然后项目就死在那了每次重新启动或者reset&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc VBS 动作触发器没办法触发

    在VBS编辑器的动作脚本中写了个触发器,没办法触发!1、新建内部变量“CNUM”,有符号的16位数2、画面中放两个按钮,一个按钮按下就往“CNUM”中写1,另外一个按钮按下就往“C…

    SIMATIC WinCC 2019年6月11日
  • Wincc 7.4无法新建项目

    Wincc7.4新建项目时提示Wincc项目管理器-服务器不可用(无法连接到服务器) 问题补充:安装时出现过Windows Based Script …

    SIMATIC WinCC 2021年7月5日