当前位置:文档之家› WINCC C语言资料

WINCC C语言资料

WINCC C语言资料
WINCC C语言资料

WINCC C语言资料

#include "apdefap.h"

char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{float a,b:

a=GetTagFloat("LT6001");

b=a/7*100;

SetTagFloat("LT_6611内部点",b);

}

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

SetPropBOOL(lpszPictureName,"MV_10","visible",1);

#include "apdefap.h"

void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)

{

SetTagBit("M_31_B1_V1",1);

}

#include "apdefap.h"

long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

static int a;

if (GetTagBit("X1_9M3_Fan_Low")&&a<=7)

{a+=1;}

if (GetTagBit("X1_9M3_Fan_Low")&&a==7)

{a=1;}

if (GetTagBit("X1_9M3_Fan_Low")==0)

{a=0;}

return a;

float a,b;

a = GetTagFloat("LISA6001");

b=a/10;

return (b);

标准函数

该系统包含标准函数。可以按需要修改这些函数。此外,还可以自己创建标准函数。

该系统包括一个标准函数集。

一、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_PV ALUE][2];

DWORD dwPV alue[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_PV ALUE 过程值

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_PV ALUE

dwPValue

过程值激活(从...到... 位代码)

为过滤标准填充这个域:MSG_FILTER_PV ALUE

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_PA TH);

}

//自定义代码

//在那里用户可以使用返回值做某事

...}

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_PA TH);

}//自定义代码

//在那里用户可以使用返回值做某事

...

}

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_PA TH);

}//自定义代码

//在那里用户可以使用返回值做某事

...}

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)的列表。

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). 如果返回有效数值,将返回值复制到szV arName中。

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). 如果返回有效数值,将返回值复制到szV arName中。

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趋势控件的对象名。

14. BOOL TlgTableWindowPressInsertRecordButton(char* lpszWindowName)函数,插入数据记录。

使用标准函数操作WinCC报警趋势的实例

{//开始/停止

TlgTrendWindowPressStartStopButton("TrendControl_01");

}

TlgTrendWindowPressStartStopButton函数参数:

“TrendControl_01”是WinCC趋势控件的对象名。

15. BOOL TlgTableWindowPressLastButton(char* lpszWindowName)函数,显示表格窗口中显示区域的最后一个数据记录。显示的数据记录数量由所组态的时间范围决定。

使用标准函数操作WinCC报警趋势的实例

{//开始/停止

TlgTrendWindowPressStartStopButton("TrendControl_01");

}

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)函数,显示表格

相关主题
文本预览
相关文档 最新文档