Wincc的程序

WINCC有他自己GET 和SET函数,还有一些他特有的而C语言中没有的函数,请问那有专门介绍这些函数的意义及用法的,或者哪个大哥手头上有的能给我一份,

问题补充:
4楼的大哥你的都是关于消息的,我想要的是关于GET和SET函数的汇总,看了我也明白什么意思,只是用的时候不知道

最佳答案

以前帖了很多!
 标准函数
 该系统包含标准函数。 可以按需要修改这些函数。 此外,还可以自己创建标准函数。
 该系统包括一个标准函数集。
 一、Alarm - 简短描述
 Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
 1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
 使用标准函数操作WinCC报警控件的实例 
 {//确认选择的报警记录消息
 AcknowledgeMessage(GetTagWord("U08i_MsgNr"));
 }
 指定待确认的消息号。在本例中是从变量读取的。

 2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数
 外部消息窗口操作,该函数显示先前所选消息的注释。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 5.BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 6.BOOL AXC_OnBtnHornAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 7.BOOL AXC_OnBtnInfo(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 7.BOOL AXC_OnBtnLock(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 8.BOOL AXC_OnBtnLockUnlock(char* lpszPictureName, char* pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。之后,不再归档该消息。该函数释放在锁定列表中选择的消息。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 9.BOOL AXC_OnBtnLockWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 10.BOOL AXC_OnBtnLoop(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数触发所选消息的“报警回路”函数。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 11.BOOL AXC_OnBtnMsgFirst(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的开始处。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 12.BOOL AXC_OnBtnMsgLast(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的结束处。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的最后一条消息
 AXC_OnBtnMsgLast("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgLast函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 13.BOOL AXC_OnBtnMsgNext(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的下一条消息。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 14.BOOL AXC_OnBtnMsgPrev(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的前一条消息。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 15.BOOL AXC_OnBtnMsgWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数调用过程消息窗口。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 16.BOOL AXC_OnBtnPrint(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,打印机打印出符合在报警控件中定义的选择标准的全部消息。
 WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 17.BOOL AXC_OnBtnScroll(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数激活水平和垂直滚动功能。
 使用标准函数操作WinCC报警控件的实例 
 {// 激活/取消激活滚动功能
 AXC_OnBtnScroll("gs_alarm_00","Control1");
 }
 AXC_OnBtnScroll函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 18.BOOL AXC_OnBtnSelect(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置选择”对话框。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 19.BOOL AXC_OnBtnSinglAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认当前所选的消息。
 使用标准函数操作WinCC报警控件的实例
 {// 确认激活的消息
 AXC_OnBtnSinglAckn("gs_alarm_00","Control1");
 }
 AXC_OnBtnSinglAckn函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 20.BOOL AXC_OnBtnVisibleAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,确认消息窗口中可见的全部消息(组确认)。
 使用标准函数操作WinCC报警控件的实例
 {// 跳转到WinCC报警控件中的第一条消息
 AXC_OnBtnMsgFirst("gs_alarm_00","Control1");
 }
 AXC_OnBtnMsgFirst函数参数:
 “gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。
 Control 1是WinCC报警控件的对象名。 

 21.BOOL AXC_SetFilter(char* 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.szFilterName, "Control1");
 // 挑选选择元素 Filter
 .dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO;
 // 消息号来自 Filter
 .dwMsgNr[0] = 2;
 // 消息号来自 Filter
 .dwMsgNr[1] = 2;
 ret = AXC_SetFilter("gs_alarm_00","Control1",&Filter,&Error);
 }
 1. 命名该过滤器。
 2. 选择过滤器的类型。
 3. 指定过滤器标准。
 4. 设置过滤器。
 常规使用注释
 过滤器类型和过滤器标准必须适合使用;在过滤器结构中描述所有其它的过滤器类型。 
 使用标准函数操作WinCC报警控件的实例
 {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_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("gs_stand_graph_00","Static Text 6","Visible");
 //复制字符串 
 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;
 char szPicName[_MAX_PATH+1];
 //获得母画面 pszPicName 
 = GetParentPicture(lpszPictureName);
 //复制字符串 
 if (pszPicName != NULL) 
 {strncpy(szPicName,pszPicName,_MAX_PATH);
 }//自定义代码
 //在那里用户可以使用返回值做某事
 ...}
 1). 将该函数GetParentPicture的返回值缓冲存储在pszPicName中。
 2). 如果返回有效数值,将该返回值存储在szPicName中。。。。。. 最多存储_MAX_PATH个字符。
 3). 执行处理返回值的自定义代码。 

 4.char* GetParentPictureWindow(char* lpszPictureName)函数,返回指向画面窗口的名称的指针。
 实例:
 基本画面“Picture_1”有画面窗口“Picture Window_1”,在其中调用画面“Picture_2”。
 画面“Picture_2”有画面窗口“Picture Window_2”,在其中调用画面“Picture_3”。
 该函数调用
 GetParentPictureWindow(lpszPictureName)
 指向画面窗口名称的指针:
 “Picture_2”,是否从画面“Picture_3”调用该函数。
 “Picture Window_1”,是否从画面“Picture_2”调用该函数。
 “Picture_1”,是否从画面“Picture_1”调用该函数。 

 5. void OpenPicture(Picture Name)函数,用设置的画面名打开画面。

 6. char* Registry2(char* mode, char* String0, char* String1)函数,该函数管理字符串对(String0,String1)的列表。

 

提问者对于答案的评价:
贴这么多不容易,谢谢了

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

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

相关推荐