请教WINCC运行事件记录问题

我用报警记录实现的,现在遇到一个问题,如何只显示从某个时刻开始的记录?其他时间的记录不必显示.

问题补充:
wincc flexible报警视图属性-"显示"中有一个显示区的控制变量输入,我输入了一个时间变量,不知为何不能实现从该时间开始显示记录.

最佳答案

找WinCC的DemoV6来看看,里面有相应的例子。
 例子里面是用户在画面上的I/O域中输入希望的起止日期、时间,然后点击按钮,则报警控件按照输入的时间范围进行显示。按钮的脚本如下:
 // WINCC:TAGNAME_SECTION_START
 // syntax: #define TagNameInAction "DMTagName"
 #define APCMsgFilterSQL "MsgFilterSQL"
 #define APCday_begin "day_begin"
 #define APCmonth_begin "month_begin"
 #define APCyear_begin "year_begin"
 #define APChour_begin "hour_begin"
 #define APCminute_begin "minute_begin"
 #define APCday_end "day_end"
 #define APCmonth_end "month_end"
 #define APCyear_end "year_end"
 #define APChour_end "hour_end"
 #define APCminute_end "minute_end"
 // next TagID : 12
 // WINCC:TAGNAME_SECTION_END

 // WINCC:PICNAME_SECTION_START
 // syntax: #define PicNameInAction "PictureName"
 // next PicID : 1
 // WINCC:PICNAME_SECTION_END

 WORD day_b,month_b,year_b,hour_b,minute_b;
 WORD day_e,month_e,year_e,hour_e,minute_e;
 char  SQLcmd[120];

 day_b=GetTagWord(APCday_begin);
 month_b=GetTagWord(APCmonth_begin); 
 year_b=GetTagWord(APCyear_begin);
 hour_b=GetTagWord(APChour_begin);
 minute_b=GetTagWord(APCminute_begin);

 day_e=GetTagWord(APCday_end);
 month_e=GetTagWord(APCmonth_end); 
 year_e=GetTagWord(APCyear_end);
 hour_e=GetTagWord(APChour_end);
 minute_e=GetTagWord(APCminute_end);

 
 sprintf(SQLcmd,"DATETIME >=  ''%d-%02d-%02d %02d:%02d:00.000000000'' AND DATETIME <=  ''%d-%02d-%02d %02d:%02d:00.000000000''",year_b,month_b,day_b,hour_b,minute_b,year_e,month_e,day_e,hour_e,minute_e); //Rückgabe-Typ :BOOL 
 //printf("SQL: DATETIME >=  ''%d-%02d-%02d %02d:%02d:00.000000000'' AND DATETIME <=  ''%d-%02d-%02d %02d:%02d:00.000000000''",year_b,month_b,day_b,hour_b,minute_b,year_e,month_e,day_e,hour_e,minute_e); //Rückgabe-Typ :BOOL 

 SetTagChar(APCMsgFilterSQL,SQLcmd);

 例子的核心部分是在报警控件的“MsgFilterSQL”属性由一个内部文本变量“MsgFilterSQL”控制,而控制可以通过脚本或其它方式构建一个筛选的字符串给MsgFilterSQL这个变量。

提问者对于答案的评价:
问题已解决,谢谢!

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

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

相关推荐

  • TIA WINCC弹出窗口

    比如一个项目有一百多个阀,每按一个阀对应弹出一个启停窗口,不可能做一百多个弹窗,而应该是用同一个窗口,然后用结构变量,知道大概的方法,但是不知道具体步骤,有这方面的资料的或者DEM…

    SIMATIC WinCC 2021年7月5日
  • 关于webnavigator 发布的问题

    1.软件配置:wincc 和 webnavigator  都是V6.2 版本。PC系统是XP SP3版本。2.情况:原先…

    SIMATIC WinCC 2019年6月11日
  • STEP7兼容性问题

    我装的STEP7 V5.4 SP3中文版,它和WINCC6.2 SP3的兼容性怎么样?我在网站上下的WINCC兼容性手册里没有WINCC6.2&nbs…

    SIMATIC WinCC 2019年6月11日
  • Wincc 7.4 如何通过脚本修改系统时间?

    想在wincc画面上修改电脑系统时间,请问有什么办法吗?谢谢 最佳答案 如何在 WinCC 运行系统中读出,显示或者设置本地计算机或者协调世界时?https:/…

    SIMATIC WinCC 2021年7月5日
  • 如何在客户机中寻找服务器启始画面

    我建立的C/ S结构,如何在客户机中寻找服务器启始画面 最佳答案 WinCC C/S 结构分为多用户系统和分布式系统。1、多用户系统下客户机没有项目,…

    SIMATIC WinCC 2019年6月11日
  • Wincc双荣誉服务器+客户机系统中,客户机需要装哪些授权?

    如题,客户机上只需要装一个运行版的授权就够了吗,客户机访问服务器的历史归档数据的授权是安装在服务器上面的吧。 最佳答案 客户机上只需要装一个运行版的授权就够了服务器需要冗余授权 提…

    SIMATIC WinCC 2018年12月5日
  • 如何使用WINCC的C动作计时和累加功能

    本意是想通过WINCC中的C脚本来实现程序逻辑功能,不使用Step7程序,只使用其中的DB,(1)如何在C动作中编写语句实现某一信号(m0.0)到来延时3秒给另一变量赋值?(2)或…

    SIMATIC WinCC 2017年6月7日
  • VB读取WINCC归档数据

    用VB读取数据库时,只有在该项目激活时才能读取到数据。可是WINCC数据库不是已经生成了么?为啥还需要激活项目?PS. WINCC没打开时,ODBC数据源管理器中系统DS…

    SIMATIC WinCC 2017年6月19日
  • wincc7.0人机界面组态

    我要组态一个人机界面,需要先输入参数并且正确之后,才允许按下按钮。请问这个功能要怎么实现?请您回答的详细一点,谢谢! 最佳答案 1.定义bool类型变量a,用于控制按钮的可操作性。…

    SIMATIC WinCC 2017年6月3日
  • vbs脚本问题

    在I/O域的更改里,设置了一个VBS脚本,有几个问题: 1.写了个.value,然后这个编辑的画面就“未响应”,这种情况连续两次,重新打开后,在脚本的开头: s…

    SIMATIC WinCC 2019年6月11日