MSG_FILTER_STRUCT Filter; CMN_ERROR Error;
//重新设置过滤器结构 memset
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) ); //设置过滤器名称 strcpy
( Filter.szFilterName, \// 挑选选择元素 Filter
.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO; // 消息号来自 Filter .dwMsgNr[0] = 2; // 消息号来自 Filter .dwMsgNr[1] = 2;
ret = AXC_SetFilter(\}
1. 命名该过滤器。 2. 选择过滤器的类型。 3. 指定过滤器标准。 4. 设置过滤器。 常规使用注释
过滤器类型和过滤器标准必须适合使用;在过滤器结构中描述所有其它的过滤器类型。 使用标准函数操作WinCC报警控件的实例 {BOOL ret;
MSG_FILTER_STRUCT Filter; CMN_ERROR Error;
//删除整个过滤器结构 memset
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) ); //设置空的过滤器结构 AXC
_SetFilter(\}
1. 删除该过滤器结构。
2. 用空值填充过滤器结构。
结构定义MSG_FILTER_STRUCT typedef struct {
CHAR szFilterName[MSG_MAX_TEXTLEN+1]; WORD dwFilter; SYSTEMTIME st[2];
DWORD dwMsgNr[2]; DWORD dwMsgClass;
DWORD dwMsgType[MSG_MAX_CLASS]; DWORD dwMsgState; WORD wAGNr[2]; WORD wAGSubNr[2]; DWORD dwArchivMode; char szTB[MSG_MAX_TB][
MSG_MAX_TB_CONTENT+1] DWORD dwTB;
Double dPValue[MSG_MAX_PVALUE][2]; DWORD dwPValue[2];
DWORD dwMsgCounter[2]; DWORD dwQuickSelect; }
MSG_FILTER_STRUCT; 描述
在该结构中定义过滤标准。 组成部分 dwFilter
通过下列常数从“m_global.h”文件定义过滤条件: MSG_FILTER_DATE_FROM 从日期 MSG_FILTER_DATE_TO 到日期 MSG_FILTER_TIME_FROM 从时间 MSG_FILTER_TIME_TO 到时间 MSG_FILTER_NR_FROM 从消息号 MSG_FILTER_NR_TO 到消息号 MSG_FILTER_CLASS 消息等级 MSG_FILTER_STATE 消息状态 MSG_FILTER_AG_FROM 从AG号 MSG_FILTER_AG_TO 到AG号
MSG_FILTER_AGSUB_FROM 从AG子号 MSG_FILTER_AGSUB_TO 到AG子号 MSG_FILTER_TEXT 消息文本 MSG_FILTER_PVALUE 过程值
MSG_FILTER_COUNTER_FROM 从内部消息计数器 MSG_FILTER_COUNTER_TO 到内部消息计数器 MSG_FILTER_PROCESSMSG 过程消息 MSG_FILTER_SYSMSG 系统消息 MSG_FILTER_BEDMSG 事件消息 MSG_FILTER_DATE 日期从...到... MSG_FILTER_TIME 日期从...到... MSG_FILTER_NR 消息号从...到... st
日期/时间从...到...
在这种情况下,st[0]是开始时间(从),st[1]是结束时间(到)
为过滤标准填充这些域:MSG_FILTER_DATE,MSG_FILTER_DATE_FROM,MSG_FILTER_DATE_TO, MSG_FILTER_TIME,MSG_FILTER_TIME_FROM和MSG_FILTER_TIME_TO
如果传送SYSTEMTIME参数要求当前时间,使用GetLocalTime函数而非GetSystemTime。通常这两个函数之间的时间差别很大。
dwMsgNr
消息号从...到...
在这种情况下,dwMsgNr[0]是开始号(从),dwMsgNr[1]是结束号(到)
为过滤标准填充这些域:MSG_FILTER_NR,MSG_FILTER_NR_FROM和MSG_FILTER_NR_TO dwMsgClass 位代码消息等级
为过滤标准填充这个域:MSG_FILTER_CLASS dwMsgType
每个消息等级的位代码消息类型
为过滤标准填充这个域:MSG_FILTER_CLASS dwMsgState 位代码消息状态
为过滤标准填充这个域:MSG_FILTER_STATE wAGNr
AG号从...到...
为过滤标准填充这些域:MSG_FILTER_AG_FROM和MSG_FILTER_AG_TO wAGSubNr
AGSubNr从...到
为过滤标准填充这些域:MSG_FILTER_AGSUB_FROM和MSG_FILTER_AGSUB_TO dwArchivMode 归档/协议识别 必须用0填充。 szTB
文本块文本
为过滤标准填充这个域:MSG_FILTER_TEXT dwTB
文本块激活(从...到...,位代码)
为过滤标准填充这个域:MSG_FILTER_TEXT dPValue
过程值从...到...
为过滤标准填充这个域:MSG_FILTER_PVALUE dwPValue
过程值激活(从...到... 位代码)
为过滤标准填充这个域:MSG_FILTER_PVALUE dwMsgCounter
内部消息计数器从...到...
为过滤标准填充这些域:MSG_FILTER_COUNTER_FROM,MSG_FILTER_COUNTER_TO dwQuickSelect
快速选择小时,天,月
为以后扩展而保留该参数,并且必须用0预定义。
为过滤标准填充这个域:MSG_FILTER_QUICKSELECT LOWORD类型:
MSG_FILTER_QUICK_MONTH 快速选择后n个月 MSG_FILTER_QUICK_DAYS 快速选择后n天
MSG_FILTER_QUICK_HOUR 快速选择后n个小时 HIWORD号:1...n
快速选择函数的结束时间与本地计算机的当前系统时间有关。开始时间是n * (往回计算月,日,小时)。
结构定义CMNERROR
struct CMNERRORSTRUCT { DWORD dwError1, DWORD dwError2, DWORD dwError3, DWORD dwError4, DWORD dwError5;
TCHAR szErrorText[MAX_ERROR_LEN]; }
CMNERROR 描述
扩展的错误结构包含错误代码和与发生的错误相关的错误文本。每个应用程序可以使用该错误结构评价或发出错误消息。 组成部分
dwError1 .. dwError5
可按API函数的要求使用这些条目。
API描述包含出错时条目的各自数值。否则,错误代码在dwError1中。 szErrorText
错误代码的文本描述缓冲区
从资源建立该内容,因此依赖于语言。
BOOL GMsgFunction(char* pszMsgData)函数 该函数提供消息数据。
表示单个消息的全局函数。为每个消息调用全局函数,为每个消息设置“触发动作”参数。 最好在项目函数中解释消息数据,从GMsgFunction调用项目函数。 参数
pszMsgData
指向在其中存储消息数据的缓冲区的指针。 返回值 TRUE
已执行函数,无错。 FALSE 出错。 注意
请注意,WinCC安装会重写已修改的标准函数,所以被改变的函数丢失。
Graphics - 简短描述
Graphics组包含用于编程图形系统的函数。
1.char* GetLinkedVariable(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)函数,提供与指定的对象属性链接的变量的名称。 读出直接连接的变量名的实例。 {char* pszVarName = NULL;
char szVarName[_MAX_PATH+1]; //获得变量名 pszVarName
= GetLinkedVariable(\//复制字符串
if (pszVarName != NULL)
{ strncpy(szVarName,pszVarName,_MAX_PATH); }
//自定义代码
//在那里用户可以使用返回值做某事 ...}
GetLinkedVariable函数参数:
“gs_stand_graph_00”是在其中组态该对象的画面的名称。 “Static Text 6”是该对象的名称。 “Visible”是链接到变量的属性。
1). 将函数GetLinkedVariable的返回值缓冲存储在pszVarName中。 2). 如果返回有效数值,将该返回值存储在szVarName中。最多存储_MAX_PATH个字符。 3). 执行处理返回值的自定义代码。
2.char* GetLocalPicture(char* lpszPictureName)函数,返回指向画面名的指针。 在这种情况下,画面名就是该文件名,不带扩展名“.PDL”。 读出本地画面的实例。
{char* pszPicName = NULL;
char szPicName[_MAX_PATH+1]; //获得本地画面 pszPicName
= GetLocalPicture(lpszPictureName); //复制字符串
if (pszPicName != NULL)
{ strncpy(szPicName,pszPicName,_MAX_PATH); }//自定义代码
//在那里用户可以使用返回值做某事 ... }
1). 将函数GetLocalPicture的返回值缓冲存储在pszPicName中。
2). 如果返回有效数值,将该返回值存储在szPicName中。最多存储_MAX_PATH个字符。 3). 执行处理返回值的自定义代码。
3.char* GetParentPicture(char* lpszPictureName)函数,返回指向画面名称的指针。 在这种情况下,画面名就是该文件名,不带扩展名“.PDL”。 读出画面名称路径的实例 {char* pszPicName = NULL;