wincc历史数据库_wincc查询历史报警记录,归档数据

我用报警控件做了个操作记录的组态,有214个操作事件 分别占用一个编号(公214个编号),可以通过编号查询不同位号的操作情况。显示全部操作记录也没有问题。问题出在根据编号查询的时候我只能查询编号在128以下的不同位号的记录,编号128以上的查了没有反映 全部显示空白。这是为什么呢?

问题补充:编号 就是系统块里边那个编号(就是第一列) 我用标准函数AXC_SetFilter("操作记录.pdl","控件1",&Filter,&Error)来设置过滤器。明明把过滤器的编号开始和结束位置设置好了(我看了的确实设置好了的)

Filter.dwMsgNr[0]=GetTagDWord("start");//起始

Filter.dwMsgNr[1]=GetTagDWord("end");//结束

这里dwMsgNr[0]和dwMsgNr[1]设置成了大于128的都没有用。就是不查询,但是我在全部历史记录中能看得到大于128编号的记录.

最佳答案

首先你先使用报警控件的过滤器,看看能不能实现过滤功能。如果可以就说明你的报警控件没有问题。如果不行,新建一个控件作如下测试:

新建一个按钮,把如下代码加入到你的鼠标动作中(C脚本)

BOOL ret;

MSG_FILTER_STRUCT Filter;

CMN_ERROR Error;

//Reset the filter struct

memset( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );

//Set the filter name

strcpy( Filter.szFilterName, "控件1");

// Choose selection elements

Filter.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO;

// Message number from

Filter.dwMsgNr[0] = 130;

// Message number to

Filter.dwMsgNr[1] = 200;

ret = AXC_SetFilter("NewPdl1.PDL","控件1",&Filter,&Error);

控件1为你的报警控件名称。

我做过测试,没有问题!

如果上面的代码没有问题,把报警记录的起始点改为变量测试:

// Message number from

Filter.dwMsgNr[0] = GetTagWord("start");

// Message number to

Filter.dwMsgNr[1] = GetTagWord("end");

我测试的也没有问题。

注意检查你的Tag变量的数据类型。

具体说明参见Wincc系统帮助.

AXC_SetFilter example

回答者: HTLearn - 毕业实践员 第4级 2008-3-4 10:06

提问者对于答案的评价:

我已经用其他方法解决了 你的方法和我的差不多 但我的就是不行 我看了哈 我查询128以上的时候 控件工具条的“选择对话框”中“编号”的 查询条件 居然是 “MSGNR &gt= 1056964671 AND MSGNR &lt= 0”显然益出了,不知道什么原因;

我用另外的方法实现了 如下:

char SQLcmd[130];

sprintf(SQLcmd,"MSGNR &gt= %d AND MSGNR &lt= %d",GetTagDWord("start"),GetTagDWord("end"));

SetPropChar("操作记录.pdl","控件1","MsgFilterSQL",SQLcmd);

这个非常好用 还是要谢谢你 也感谢前边那个提问的兄弟把代码贡献出来了。又学到一招,呵呵!

是从消息归档中读出的数据记录的最大数据限制为128了吧,你把WINCC报警控件属性--统计列表---设置----数量限

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinCC(Windows Control Center)是西门子公司推出的一款HMI(Human Machine Interface)软件,主要用于监控和控制自动化系统。WinCC支持历史归档功能,可以记录和存储运行过程中的数据。通过对这些数据进行分析和处理,可以生成各种报表。 WinCC历史归档功能主要通过配置数据点和历史记录参数来实现。用户可以选择需要记录数据点,如温度、压力、流量等,配置其存储方式和间隔时间。当系统运行时,WinCC会按照设定的时间间隔自动记录这些数据点的值,并存储在指定的历史数据库中。 生成报表的过程大致如下:首先,用户需要选择需要生成报表的数据点和时间范围。然后,通过WinCC提供的报表生成工具,可以选择报表样式和格式。用户可以自定义报表的标题、列名和行数等。最后,点击生成按钮,WinCC会根据选定的数据点和时间范围,从历史数据库中提取数据,并按照设定的样式和格式生成报表。生成的报表可以以PDF、Excel等格式保存和导出,方便用户查看和分析。 通过WinCC历史归档生成报表功能,用户可以方便地获取和分析运行过程中的数据,帮助优化生产过程、改善设备状态和性能。报表的生成可以按照时间范围进行,也可以根据特定事件或触发条件生成。这种功能对于用户了解设备运行状况、进行故障排查和性能评估非常有帮助,并为生产决策提供可靠的数据支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值