关于WINCC的C函数

[复制链接]
查看6088 | 回复34 | 2006-9-13 23:06:00 | 显示全部楼层 |阅读模式


标准函数
    该系统包含标准函数。 可以按需要修改这些函数。 此外,还可以自己创建标准函数。
    该系统包括一个标准函数集。
    一、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报警控件的对象名。

[此贴子已经被作者于2006-9-13 23:06:08编辑过]

gkboy | 2006-9-13 23:09:00 | 显示全部楼层

    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)函数,用设置的画面名打开画面。

gkboy | 2006-9-13 23:09:00 | 显示全部楼层

    
    6. char* Registry2(char* mode, char* String0, char* String1)函数,该函数管理字符串对(String0,String1)的列表。
    
    
    Report - 简短描述
    Report组包含用来启动打印作业的打印预览或打印输出本身的函数。
    1. void ReportJob(LPSTR lpJobName, LPSTR lpMethodName)函数,根据参数lpMethodName的数值,决定启动打印作业或打印预览。
    RPTJobPreview和RPTJobPrint, 打印作业被启动和打印作业的预览被启动
    
    2. BOOL RPTJobPreview(LPSTR lpJobName)函数,打印作业的预览被启动。
    启动作业预览的实例
    {//启动指定打印作业的打印预览
    RPTJobPreview(\"Documentation Text Library\");
    }
    RPTJobPreview函数参数:
    @Text library (compact)是打印作业的名称。
    
    3. BOOL RPTJobPrint(LPSTR lpJobName)函数,打印作业被启动。
    启动打印作业的实例
    {//打印输出指定的打印作业
    RPTJobPrint(\"@Text library (compact)\");
    }
    RPTJobPrint函数参数:
    @Text library (compact)是打印作业的名称。
    
    4. void RptShowError(LPCSTR pszFailedFunction, CMN_ERRORA* pCmnErrorA)函数,该函数提供对失败的打印作业的错误描述。该函数调用是标准函数RptJobPrint和RptJobPreview的组成部分,因此不要求单个调用命令。
    结构定义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
    错误代码的文本描述缓冲区
    从资源建立该内容,因此依赖于语言。
    
    
    TagLog - 简短描述
    TagLog函数包含控制WinCC表格控件和WinCC趋势控件的函数。
    Template子组包含调用某些控制值的函数。
    Toolbar Buttons子组包含用于工具栏中每个按钮的标准函数。 这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
    1. int TlgGetColumnPosition(char* lpszTemplate)函数,以表格窗口中的列指针的当前位置作为列索引。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int columns
    //获得列数
    columns = GetNumberOfColumns(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",columns);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfColumns函数参数:
    “Table Control_01”是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    2. int TlgGetNumberOfColumns(char* lpszTemplate)函数,在表格窗口中给出列的数量。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int columns
    //获得列数
    columns = GetNumberOfColumns(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",columns);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfColumns函数参数:
    “Table Control_01”是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    3. int TlgGetNumberOfRows(char* lpszTemplate)函数,在表格窗口中给出行的数量。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int rows;
    //获得行数
    rows = TlgGetNumberOfRows(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",rows);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfRows函数参数:
    Table Control_01是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfRows的返回值缓冲存储在rows中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    4. int TlgGetNumberOfTrends(char* lpszTemplate)函数,在趋势窗口中给出趋势的数量。用参数lpszTemplate传递相应WinCC在线趋势控件窗口的名称。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int columns
    //获得列数
    columns = GetNumberOfColumns(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",columns);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfColumns函数参数:
    “Table Control_01”是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    5. int TlgGetRowPosition(char* lpszTemplate)函数,在表格窗口中给出行指针的当前位置。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int columns
    //获得列数
    columns = GetNumberOfColumns(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",columns);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfColumns函数参数:
    “Table Control_01”是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    6. char* TlgGetRulerArchivNameTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的归挡名称。用参数lpszTemplate传递相应WinCC在线趋势控件窗口的名称。
    使用标准函数操作WinCC趋势控件的实例
    {char* pszVarName = NULL;
    char szVarName[20];
    //获得标尺变量名 pszVarName
    = TlgGetRulerVariableNameTrend(\"TrendControl_01\",0);
    if (pszVarName != NULL)
    {// 复制字符串 strncpy
    (szVarName,pszVarName,19);
    }
    //输出变量名 SetText
    (lpszPictureName,\"Static Text 6\",szVarName);
    }
    TlgGetRulerVariableNameTrend函数参数:
    “Trend Control_01”是WinCC趋势控件的名称。
    “0”是该趋势的编号。
    1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。
    2). 如果返回有效数值,将返回值复制到szVarName中。
    3). 在静态文本域中发出返回值。
    
    7. SYSTEMTIME TlgGetRulerTimeTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的时间。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。
    使用标准函数操作WinCC趋势控件的实例
    {SYSTEMTIME systime;
    WORD wHour;
    WORD wMin;
    WORD wSec;
    char szTime[10];
    //获得当前系统时间 systime
    = TlgGetRulerTimeTrend(\"TrendControl_01\",0);
    //获得小时 wHour
    = systime.wHour;
    //获得分钟 wMin
    = systime.wMinute;
    //获得秒 wSec
    = systime.wSecond;
    //
    sprintf(szTime,\"%d:%d:%d\",wHour,wMin,wSec);
    //输出变量名 SetText
    (lpszPictureName,\"Static Text 7\",szTime);
    }
    1). 读出当前系统时间。
    2). 从SYSTEMTIME结构读出小时、分和秒。
    3). 创建包含该时间的字符串。
    4). 读出当前时间。
    
    8. double TlgGetRulerValueTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的数值。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。
    使用标准函数操作WinCC表格控件的实例
    {char text[5];
    long int columns
    //获得列数
    columns = GetNumberOfColumns(\"TableControl_01\");
    //转换长整型为字符 sprintf
    (text,\"%d\",columns);
    //在Text Field 5 SetText上设置文本
    (lpszPictureName,\"Static Text 5\",text);
    }
    TlgGetNumberOfColumns函数参数:
    “Table Control_01”是WinCC表格控件的名称。
    1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。
    2). 将返回值缓冲存储在String text中。
    3). 在静态文本域中发出返回值。
    
    9. char* TlgGetRulerVariableNameTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中给出编号为nTrend的趋势的变量名。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。
    使用标准函数操作WinCC趋势控件的实例
    {char* pszVarName = NULL;
    char szVarName[20];
    //获得标尺变量名 pszVarName
    = TlgGetRulerVariableNameTrend(\"TrendControl_01\",0);
    if (pszVarName != NULL)
    {// 复制字符串 strncpy
    (szVarName,pszVarName,19);
    }
    //输出变量名 SetText
    (lpszPictureName,\"Static Text 6\",szVarName);
    }
    TlgGetRulerVariableNameTrend函数参数:
    “Trend Control_01”是WinCC趋势控件的名称。
    “0”是该趋势的编号。
    1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。
    2). 如果返回有效数值,将返回值复制到szVarName中。
    3). 在静态文本域中发出返回值。
    
    10. char* TlgGetTextAtPos(char* lpszTemplate, int nColumn, int nLine)函数,为过程变量归档和用户归档提供表格窗口的单元格内容作为文本。单元由nColumn和nLine指定。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。
    使用标准函数操作WinCC趋势控件的实例
    {char* pszVarName = NULL;
    char szVarName[20];
    //获得标尺变量名 pszVarName
    = TlgGetRulerVariableNameTrend(\"TrendControl_01\",0);
    if (pszVarName != NULL)
    {// 复制字符串 strncpy
    (szVarName,pszVarName,19);
    }
    //输出变量名 SetText
    (lpszPictureName,\"Static Text 6\",szVarName);
    }
    TlgGetRulerVariableNameTrend函数参数:
    “Trend Control_01”是WinCC趋势控件的名称。
    “0”是该趋势的编号。
    1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。
    2). 如果返回有效数值,将返回值复制到szVarName中。
    3). 在静态文本域中发出返回值。
    
    11. BOOL TlgTableWindowPressEditRecordButton(char* lpszWindowName)函数,锁住或释放表格窗口的编辑(切换功能)。如果允许编辑,将停止更新表格窗口。即使因为使用另一个函数而使编辑被禁止,表格窗口更新将仍保持停止状态。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    12. BOOL TlgTableWindowPressFirstButton(char* lpszWindowName)函数,显示表格窗口中显示区域的第一个数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    13. BOOL TlgTableWindowPressHelpButton(char* lpszWindowName)函数,显示表格窗口的在线帮助
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
gkboy | 2006-9-13 23:10:00 | 显示全部楼层

    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    16. BOOL TlgTableWindowPressNextButton(char* lpszWindowName)函数,显示表格窗口中当前显示区域后面的数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    17. BOOL TlgTableWindowPressNextItemButton(char* lpszWindowName)函数,表格窗口的列将向左移动一列,最左边的列移到右边。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    18. BOOL lgTableWindowPressOpenArchiveVariableSelectionDlgButton(char* lpszWindowName)函数,打开用来链接表格列与归档和变量的对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    19. BOOL TlgTableWindowPressOpenDlgButton(char* lpszWindowName)函数,打开用来在线组态表格窗口的对话框。
    使用标准函数操作WinCC趋势控件的实例
    {//打开属性对话框
    TlgTrendWindowPressOpenDlgButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressOpenDlgButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    20. BOOL TlgTableWindowPressOpenItemSelectDlgButton(char* lpszWindowName)函数,打开用来选择表格窗口的可见列和第一列的对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    21. BOOL TlgTableWindowPressPrevButton(char* lpszWindowName)函数,显示表格窗口中当前显示区域前面的数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    22. BOOL TlgTableWindowPressPrevItemButton(char* lpszWindowName)函数,表格窗口的列将向右移动一列,最右边的列移到左边。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    23. BOOL TlgTableWindowPressRemoveRecordButton(char* lpszWindowName)函数,删除数据记录。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    24. BOOL TlgTableWindowPressStartStopButton(char* lpszWindowName)函数,打开或关闭表格窗口的更新(切换功能)。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    25. BOOL TlgTrendWindowPressFirstButton(char* lpszWindowName)函数,显示趋势窗口中显示区域的首要数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    26. BOOL TlgTrendWindowPressHelpButton(char* lpszWindowName)函数,显示趋势窗口的在线帮助。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    27. BOOL TlgTrendWindowPressLastButton(char* lpszWindowName)函数,显示趋势窗口中显示区域的最后一个数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    28. BOOL TlgTrendWindowPressLinealButton(char* lpszWindowName)函数,显示或隐藏趋势窗口标尺(切换功能)。使用“光标向左”和“光标向右”键可以移动标尺。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    29. BOOL TlgTrendWindowPressNextButton(char* lpszWindowName)函数,显示趋势窗口中当前显示区域后面的数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    30. BOOL TlgTrendWindowPressNextItemButton(char* lpszWindowName)函数,将趋势窗口中所有趋势向前移动一个层面。前面的那个趋势将被移到后面。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    31. BOOL TlgTrendWindowPressOneToOneButton(char* lpszWindowName)函数,该趋势窗口被重新设置为激活缩放功能前的状态。缩放被取消激活。使用鼠标才可以选中待缩放的区域(参考TlgTrendWindowPressZoomInButton)。
    使用标准函数操作WinCC报警趋势的实例
    
    {
    //开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    32. BOOL lgTrendWindowPressOpenArchiveVariableSelectionDlgButton(char* lpszWindowName)函数,打开链接趋势与归档和变量的对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    33. BOOL TlgTrendWindowPressOpenDlgButton(char* lpszWindowName)函数,打开趋势窗口的在线组态对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    34. BOOL TlgTrendWindowPressOpenItemSelectDlgButton(char* lpszWindowNumber)函数,打开用来选择可见趋势以及要在前景中显示的趋势的对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    35. BOOL TlgTrendWindowPressOpenTimeSelectDlgButton(char* lpszWindowNumber)函数,打开定义显示时间段的对话框。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    36. BOOL TlgTrendWindowPressPrevButton(char* lpszWindowName)函数,在趋势窗口中显示当前显示区域前面的数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
gkboy | 2006-9-13 23:10:00 | 显示全部楼层

    
    14. BOOL TlgTableWindowPressInsertRecordButton(char* lpszWindowName)函数,插入数据记录。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    15. BOOL TlgTableWindowPressLastButton(char* lpszWindowName)函数,显示表格窗口中显示区域的最后一个数据记录。显示的数据记录数量由所组态的时间范围决定。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    
    37. BOOL TlgTrendWindowPressPrevItemButton(char* lpszWindowName)
    函数,将趋势窗口中所有趋势向后移动一个层面。后面的那个趋势将被移到前面。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    38. BOOL TlgTrendWindowPressStartStopButton(char* lpszWindowName)函数,打开或关闭趋势窗口的更新(切换功能)。
    使用标准函数操作WinCC报警趋势的实例
    {//开始/停止
    TlgTrendWindowPressStartStopButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressStartStopButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    39. BOOL TlgTrendWindowPressZoomInButton(char* lpszWindowName)函数,将打开趋势窗口中的放大镜。 只能用鼠标选择比例缩放区域。
    使用标准函数操作WinCC趋势控件的实例
    {//放大
    TlgTrendWindowPressZoomInButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressZoomInButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    40. BOOL TlgTrendWindowPressZoomOutButton(char* lpszWindowName)函数,恢复趋势窗口到缺省大小(1:1)。
    使用标准函数操作WinCC报警趋势控件的实例
    {// 缩小
    TlgTrendWindowPressZoomOutButton(\"TrendControl_01\");
    }
    TlgTrendWindowPressZoomOutButton函数参数:
    “TrendControl_01”是WinCC趋势控件的对象名。
    
    
    WinCC简短描述
    WinCC组包含影响整个WinCC系统的函数。
    1. BOOL GetHWDiag(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties)函数
    运行时该函数可实现诊断的直接启动,由事件触发。必须在对象上组态、运用该事件。
    如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。
    为了使用该功能,必须满足下列条件:
    • WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。
    • 必须将WinCC项目存储为STEP7项目(STEP7 Projekt\\wincproj\\WinCC Projekt)的子目录。
    • 已将S7变量映射到WinCC。
    
    2. BOOL GetHWDiagLevel(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties, DWORD dwLevel)函数
    根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试。
    之后,运行时诊断被直接启动并由事件触发,须在对象上组态该事件。
    如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。
    为了使用该功能,必须满足下列条件:
    • 在WinCC中激活的用户必须有必要的用户配置文件级。
    • WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。
    • 必须将WinCC项目存储为STEP7项目(STEP7 Projekt\\wincproj\\WinCC Projekt)的子目录.
    • 已将S7变量映射到WinCC。
    
    3. BOOL GetKopFupAwl(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties)函数
    该函数执行WinCC Step7编辑器“KFA”的网络激活。
    执行该函数,完成两项子任务:
    • 建立从WinCC访问网络所需要的数据。
    • 将该数据传送到Step 7并使用AUTAPI定位Step 7程序中操作数的利用点。
    
    4. BOOL GetKopFupAwlLevel(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName,LPCTSTR lpProperties, DWORD dwLevel)函数
    根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试,然后访问Step 7编辑器“KFA”。
    作为三项子任务执行该函数:
    • 建立从WinCC进行网络访问所需要的数据。
    • 在WinCC中为激活的用户执行用户配置文件级测试。
    • 将该数据传送到Step 7并使用AUTAPI定位Step 7程序中操作数的利用点。
    
    5. void OnDeactivateExecute()函数
    终止WinCC时调用该函数。
    由于它是标准函数,可以插入指令,然后执行它们。
    
    6. void OnErrorExecute(CCAPErrorExecute ErrorExecute)函数
    执行动作或函数而发生错误时由系统调用OnErrorExecute。
    此函数能够确定出错的准确原因。
    由系统调用该函数,并且不要求附加的调用命令。
    由于包括作为标准函数的此函数,可以改变输出的类型。
    
    7. void OnTime(CCAPTime time)函数
    OnTime只能由系统调用。该函数给出所有动作的运行时间或确定哪个动作的运行时间超出了指定时间。 通过APDIAG可以激活和取消激活时间测量。
    由于此函数是一个标准函数,所以可以通过修改函数代码来改变输出的类型。
    结构定义CCAPTime
    typedef struct {
    DWORD dwCurrentThreadID; 当前线程的线程ID
    DWORD dwCode; 代码
    BOOL bCycle; 周期/非周期
    char* szApplicationName;应用程序的名称
    char* szFunctionName; 函数的名称
    LPVOID lpParam; 指向动作堆栈的指针
    DWORD dwParamSize; 动作堆栈的大小
    double dblTime;
    DWORD dwFlags; 标记
    } CCAPTime;
    组成部分
    dwCode
    dwCode结构元素提供OnTime调用信息:
    dwCode = 113 用每个动作的时间调用
    dwCode = 114 用一个动作的超时调用
    dwFlags
    dwFlags结构元素提供输出类型的信息:
    dwFlags = TRUE 结果被输出到文件中。
    dwFlags = FALSE 结果被输出到诊断窗口中
    
    
    Windows - 简短描述
    Windows组包含Execute Program函数。
    该函数可用来执行任何功能。
    1. unsigned int Execute(char* Program_Name)函数,用指定的名称启动该程序。
    从WinCC启动程序的实例
    {//启动程序calc.exe
    执行程序 (\"C:\\\\Winnt\\\\system32\\\\calc.exe\");
    }
    指定带路径的文件为参数。
    
    
    
    二、内部函数
    内部函数用来画图形对象和使归档动态化,并用于项目函数、标准函数和全局脚本动作中。
    在整个项目中都识别内部函数。
    既不能创建新的内部函数,也不能修改已存在的内部函数。
    1. allocate保留和释放工作存储器空间的函数
    void SysFree(void* lpFree)函数,通过SysMalloc函数释放保留的存储器区域。
    参数lpFree,指向通过SysMalloc函数保留的存储器区域的指针。
    
    2. void* SysMalloc(unsigned long int size)函数,为动作保留存储器空间。存储器区域被分配给该动作。已完成动作和已传送结果时,系统再次释放存储器。
    SysFree函数可用来过早释放保留的存储器空间。
    参数size,按字节计算的存储器区域的大小。
    
    3. c_bib函数组c_bib包含来自C库的C函数
    
    
    Graphics - 简短描述
    使用Graphics组中的函数可以修改或调用WinCC对象的图形属性。
    
    Axes - 简短描述
    Axes组中的函数仅用于棒图对象。
    该函数可用来修改或调用各种棒图对象属性。
    1. BOOL GetAlignment(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指明文本在棒图的左面还是右面。
    读出棒图对象的布尔型属性的实例
    {
    BOOL bscaling;
    
    //获得标尺状态 bscaling
    = GetScaling(lpszPictureName,\"Bar1\");
    
    if (bscaling)
    {
     // 自定义代码
     // 棒图对象有一个附加的标尺
     ...
    }
    else
    {
     // 自定义代码
     // 棒图对象没有附加的刻度
     ...
    }
    }
    GetScaling函数参数:
    “lpszPictureName”是在其中组态该对象的画面的名称。
    “Bar1”是该对象的名称。
    1). 读出棒图刻度是否可见以及bscaling中的缓冲区。
    2). 根据该函数的返回值执行自定义代码。
    
    2. double GetAxisSection(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定两个邻近轴标签之间的数值差。
    
    3. BOOL GetExponent(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定轴标签对应于小数或指数形式。
    读出棒图对象的布尔型属性的实例
    {BOOL bscaling;
    
    //获得标尺状态 bscaling
    = GetScaling(lpszPictureName,\"Bar1\");
    
    if (bscaling)
    {
     // 自定义代码
     // 棒图对象有一个附加的标尺
     ...
    }
    else
    {
     // 自定义代码
     // 棒图对象没有附加的刻度
     ...
    }
    }
    GetScaling函数参数:
    “lpszPictureName”是在其中组态该对象的画面的名称。
    “Bar1”是该对象的名称。
    1). 读出棒图刻度是否可见以及bscaling中的缓冲区。
    2). 根据该函数的返回值执行自定义代码。
    
    4. long int GetLeftComma(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定轴标签中的整数数量。
    参数lpszPictureName
    画面名lpszObjectName
    对象名
    返回值,轴标签中的整数数量
aywmy | 2006-9-16 10:34:00 | 显示全部楼层
太好了,我找了很旧了,谢谢
lixinnian | 2006-9-25 16:22:00 | 显示全部楼层
辛苦了
baldeagle | 2006-10-1 16:31:00 | 显示全部楼层
感动
howard_tjl | 2006-10-7 11:30:00 | 显示全部楼层

看看

Xinclial | 2006-10-10 10:45:00 | 显示全部楼层
[em01]
fanhoushi | 2006-10-21 11:59:00 | 显示全部楼层
谢谢!
hqt2008 | 2006-10-22 15:01:00 | 显示全部楼层

太好了,较全面,如果有WINCC高级编程手册就好了。

cxmdex | 2008-4-21 17:16:00 | 显示全部楼层

看看

sunwen993 | 2008-5-9 16:34:00 | 显示全部楼层

你好牛啊

wxjwlj | 2009-2-8 02:55:00 | 显示全部楼层
[em01][em01][em01]
zyl_dx | 2009-7-25 04:30:00 | 显示全部楼层
了解,学习一下。
duan5984 | 2009-7-26 14:19:00 | 显示全部楼层

[??]

太深了。有没有简单的说明的啊。

cedric7006 | 2009-8-12 11:04:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
liqunhello | 2009-10-31 09:09:00 | 显示全部楼层
have a look
humiliate | 2009-11-14 15:21:00 | 显示全部楼层
学习一下
bretch | 2009-12-8 23:42:00 | 显示全部楼层
谢谢
tgjfjeg | 2009-12-9 14:51:00 | 显示全部楼层
太好了,我找了很旧了,谢谢
sssssasdf | 2009-12-11 12:39:00 | 显示全部楼层
谢谢了
220student | 2009-12-17 14:22:00 | 显示全部楼层
太好了,我找了很久了,谢谢
joechai | 2010-6-16 22:39:00 | 显示全部楼层
怎么不完整泥~~~
lj8653 | 2010-6-17 09:05:00 | 显示全部楼层
lj8653 | 2010-6-17 09:06:00 | 显示全部楼层
chenjean | 2010-7-9 23:03:00 | 显示全部楼层
非常感谢
fengyiyan | 2010-7-18 16:09:00 | 显示全部楼层
kankan!!!!!
ysl3838 | 2010-8-23 20:06:00 | 显示全部楼层
太感人了
ysl3838 | 2010-8-23 20:08:00 | 显示全部楼层

回复 1# gkboy 的帖子

看不见
skymoonhzz | 2010-8-23 20:59:00 | 显示全部楼层

哈哈哈哈

假按揭安安静静
nedved2603 | 2010-8-24 22:28:00 | 显示全部楼层

顶顶顶顶顶顶顶顶顶

顶 的
ysl3838 | 2010-8-28 14:16:00 | 显示全部楼层

回复 1# gkboy 的帖子

ysl3838 | 2010-8-28 20:34:00 | 显示全部楼层

回复 1# gkboy 的帖子

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则