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

相关推荐

  • WINCC6.2和STEP7 5.4SP3

    安装了 STEP7后装WINCC6.2无法安装AS-0S是什么原因啊  我的系统是 XP SP2 最佳答案 我也遇到同样的问题,什…

    SIMATIC WinCC 2019年6月11日
  • WINCC项目中的文件夹ArchiveManage

    WINCC项目中的文件夹ArchiveManager中有三个文件夹AlarmLogging、TagLoggingFast、TagLoggingSlow,将这三个文件夹中的内容全删除…

    SIMATIC WinCC 2017年8月26日
  • wincc变量前缀

    两个按钮调用画面窗口,用变量前缀,获得不同对象操作,效果能达到,就是需要点击后,关闭,再点击,才能刷新变量,应该不是更新周期的问题,等很久都不变,必须关掉窗口,再点击才行 最佳答案…

    SIMATIC WinCC 2021年7月5日
  • WICC编程语言学习

    对WICC中的C语言跟VBS语言不懂,想找这方面的资料或书看看,请推荐一本。 最佳答案 我们不是程序员,不用很专业的去学习某种语言。但是都要有一个大致的了解。你大可以先学习联系wi…

    SIMATIC WinCC 2017年11月26日
  • wincc中 变量字符串如何和变量字符串连接

    在wincc中建立一个i/o域,要显示13位数字,第一个变量tag-1从plc取来5位(69312),第二个变量tag-2从plc取来4位(3456),第三个变量tag-3从plc…

    SIMATIC WinCC 2019年6月11日
  • 请问大家WINCC变量归档怎么导入SQL数据库?

    用变量归档编辑器连接归档需要一个一个导入,有没有批量导入变量归档片段的方法?谢谢! 最佳答案 把归档片段全部放到项目文件夹下的commonarchiving文件夹内,wincc会自…

    SIMATIC WinCC 2020年11月1日
  • WinCC控件无法移动

    刚刚在修改画面,一切都还正常。突然之间无法用鼠标拖拽控件移动位置,但是修改坐标还是可以的。有哪位遇到过这样的事情吗?这是什么原因,如何解决。 问题补充:检查过了,鼠标键盘没有问题,…

    SIMATIC WinCC 2017年12月7日
  • wincc7.0 sp2

    那个工程师朋友可以提供一下wincc7.0sp2的连接呢,谢谢了 最佳答案 http://yunpan.cn/cZjtfmIArtXis (提取码:c9bc)wincc7…

    SIMATIC WinCC 2017年10月24日
  • 关于WINCC6.0的安装

    我在安装SQL2000+SP3 For WINCC后,再安装WINCC6.0, 为什么还是提示"该计算机上找到 SQL …

    SIMATIC WinCC 2019年6月11日
  • wincc不同版本的转换

    我有一套用wincc7.0做的画面程序,现在要用6。0的版本打开,请问具体怎么去打开。 最佳答案 LZ没戏了,画面重新做吧。Wincc是向下兼容的,低版本的根本就无法打开高版本做的…

    SIMATIC WinCC 2019年6月11日