1、西门子 WINCC函数关于Wincc的C函数(1)标准函数该系统包含标准函数。 可以按需要修改这些函数。此外,还可以自己创建标准函数。该系统包括一个标准函数集。一、Alarm - 简短描述Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。1void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。使用标准函数操作WinCC报警控件的实例/确认选择的报警记录消息AcknowledgeMessage(GetTagWord(U08i_
2、MsgNr);指定待确认的消息号。在本例中是从变量读取的。2BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。3BOOL AXC_OnBtnArcShor
3、t(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。4BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数外部消息窗口操作
4、,该函数显示先前所选消息的注释。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。5BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。使用标准函数操作WinCC报警控件的实例/ 跳转到W
5、inCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。6BOOL AXC_OnBtnHornAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control
6、1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。7BOOL AXC_OnBtnInfo(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的
7、名称。Control 1是WinCC报警控件的对象名。7BOOL AXC_OnBtnLock(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。8BOOL AXC_OnBtnLockUnlock
8、(char* lpszPictureName, char* pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。之后,不再归档该消息。该函数释放在锁定列表中选择的消息。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。9BOOL AXC_OnBtnLockWin(char* lpszPictureName, cha
9、r* pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。10BOOL AXC_OnBtnLoop(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数触发所选消息的“报警回路”函数。使用标准函数操作WinC
10、C报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。11BOOL AXC_OnBtnMsgFirst(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的开始处。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(
11、gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。12BOOL AXC_OnBtnMsgLast(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的结束处。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的最后一条消息AXC_OnBtnMsgLast(gs_alarm_00,Control1);AXC_OnBtnMsgLast函数参数:“gs_a
12、larm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。13BOOL AXC_OnBtnMsgNext(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的下一条消息。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC
13、报警控件的对象名。14BOOL AXC_OnBtnMsgPrev(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的前一条消息。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。15BOOL AXC_OnBtnMsgWin(char* lpszPic
14、tureName, char* pszMsgWin)函数,外部消息窗口操作,该函数调用过程消息窗口。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。16BOOL AXC_OnBtnPrint(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,打印机打印出符合在报警控件中定
15、义的选择标准的全部消息。WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。17BOOL AXC_OnBtnScroll(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数激活水平和垂直滚动功能。使用标准函数操作WinCC报警控件的实例/ 激活/取消激活滚动功能AXC_OnBtnScr
16、oll(gs_alarm_00,Control1);AXC_OnBtnScroll函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。18BOOL AXC_OnBtnSelect(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置选择”对话框。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs
17、_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。19BOOL AXC_OnBtnSinglAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认当前所选的消息。使用标准函数操作WinCC报警控件的实例/ 确认激活的消息AXC_OnBtnSinglAckn(gs_alarm_00,Control1);AXC_OnBtnSinglAckn函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。20
18、BOOL AXC_OnBtnVisibleAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,确认消息窗口中可见的全部消息(组确认)。使用标准函数操作WinCC报警控件的实例/ 跳转到WinCC报警控件中的第一条消息AXC_OnBtnMsgFirst(gs_alarm_00,Control1);AXC_OnBtnMsgFirst函数参数:“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。Control 1是WinCC报警控件的对象名。关于Wincc的C函数(2)21BOOL AXC_SetFilter(char*
19、lpszPictureName, char* lpszObjectName, LPMSG_FILTER_STRUCT lpMsgFilter, LPCMN_ERROR, lpError)函数,外部消息窗口操作,该函数为WinCC报警控件设置过滤器,以便根据指定的过滤标准筛选出可用的消息。使用标准函数操作WinCC报警控件的实例BOOL ret;MSG_FILTER_STRUCT Filter;CMN_ERROR Error;/重新设置过滤器结构 memset( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );/设置过滤器名称 strcpy( Filter.s
20、zFilterName, Control1);/ 挑选选择元素 Filter.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO;/ 消息号来自 Filter.dwMsgNr0 = 2;/ 消息号来自 Filter.dwMsgNr1 = 2;ret = AXC_SetFilter(gs_alarm_00,Control1,&Filter,&Error);1. 命名该过滤器。2. 选择过滤器的类型。3. 指定过滤器标准。4. 设置过滤器。常规使用注释过滤器类型和过滤器标准必须适合使用;在过滤器结构中描述所有其它的过滤器类型。使用标准函数操作WinCC
21、报警控件的实例BOOL ret;MSG_FILTER_STRUCT Filter;CMN_ERROR Error;/删除整个过滤器结构 memset( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );/设置空的过滤器结构 AXC_SetFilter(gs_alarm_00,Control 1,&Filter,&Error);1. 删除该过滤器结构。2. 用空值填充过滤器结构。结构定义MSG_FILTER_STRUCTtypedef struct CHAR szFilterNameMSG_MAX_TEXTLEN+1;WORD dwFilter;SYSTEMTI
22、ME st2;DWORD dwMsgNr2;DWORD dwMsgClass;DWORD dwMsgTypeMSG_MAX_CLASS;DWORD dwMsgState;WORD wAGNr2;WORD wAGSubNr2;DWORD dwArchivMode;char szTBMSG_MAX_TBMSG_MAX_TB_CONTENT+1DWORD dwTB;Double dPValueMSG_MAX_PVALUE2;DWORD dwPValue2;DWORD dwMsgCounter2;DWORD dwQuickSelect;MSG_FILTER_STRUCT;描述在该结构中定义过滤标准。组
23、成部分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子号
24、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日期/时间从.到.在这种情况下,st0是开始时间(
25、从),st1是结束时间(到)为过滤标准填充这些域: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消息号从.到.在这种情况下,dwMsgNr0是开始号(从),dwMsgNr1是结束号(到)为过滤标准填充这些域:MSG_FILTER_NR,MSG_FILTER_NR_
26、FROM和MSG_FILTER_NR_TOdwMsgClass位代码消息等级为过滤标准填充这个域:MSG_FILTER_CLASSdwMsgType每个消息等级的位代码消息类型为过滤标准填充这个域:MSG_FILTER_CLASSdwMsgState位代码消息状态为过滤标准填充这个域:MSG_FILTER_STATEwAGNrAG号从.到.为过滤标准填充这些域:MSG_FILTER_AG_FROM和MSG_FILTER_AG_TOwAGSubNrAGSubNr从.到为过滤标准填充这些域:MSG_FILTER_AGSUB_FROM和MSG_FILTER_AGSUB_TOdwArchivMode归档/协议识别必须用0填充。szTB文本块文本为过滤标准填充这个域:MSG_FILTER_TEXTdwTB文本块激活(从.到.,位代码)为过滤标准填充这个域:MSG_FILTER_TEXT