else {
// 自定义代码
// 该变量的数值是否是false ... } }
GetTagBitStateWait函数参数: “gs_tag_bit”是该变量的名称。
“&dwstate”是应在其中存储变量状态的变量地址。
1). 读出该变量值以及bstate中的缓冲区。 该函数将变量状态存储在dwstate中。 2). 根据该函数的返回值执行自定义代码。
WinCC简短描述
使用来自WinCC组的函数可以在运行系统中定义各种设置。 使用System子组中的函数可以操作WinCC运行系统。 1. BOOL DeactivateRTProject()函数,取消激活该项目。 取消激活WinCC运行系统的实例 {
//取消激活运行系统 DeactivateRTProject (); }
该函数取消激活WinCC运行系统。
2. BOOL ExitWinCC()函数,终止WinCC 退出WinCC的实例 {
//退出wincc ExitWinCC (); }
该函数终止WinCC。
3. DWORD GetLanguage()函数,建立当前运行系统语言。 读出当前运行系统语言的实例 {
DWORD rt_language; //获得当前语言 rt
_language = GetLanguage (); //自定义代码
//在那里用户可以使用返回值做某事 ... }
1). 读出当前运行系统语言并缓冲存储在rt_language中。 2). 执行处理返回值的自定义代码。
4. DWORD* InquireLanguage(DWORD* dwCount)函数,建立为运行系统而在文本库中组态的全部语言。使用dwCount定义建立的语言数量应该存储在哪里。 读出已组态的运行系统语言 {
DWORD count;
DWORD* language; int i;
//计算已安装的语言
language = InquireLanguage(&count);
printf(\//打印输出语言的计数
printf ( \//打印输出安装了哪些语言 for (i=1;i<=count; i++) {
printf (\} }
1). 建立为该运行系统组态的语言。这些语言ID缓冲存储在语言中。语言的数量缓冲存储在计数中。
2). 发出已建立的语言的数量。 3).显示所有已建立的语言ID。
5. BOOL SetLanguage(DWORD dwLocaleID)函数,改变运行系统中的语言设置。 定义运行系统语言的实例 {
//德语
SetLanguage(0x0407); }
该运行系统语言被设置为德语。
6. void FillDiagnoseInTags(BOOL bfill)函数,激活或取消激活在变量中存储诊断信息。由于填充变量表示附加系统负载,只应为了诊断信息才激活它。
7. void GetServerTagPrefix(char** ppszServerPrefix, char** ppszTagPrefix, char** ppszWindowPrefix)函数,为了从分布式系统中的多客户机访问相关服务器中的变量,必须通过添加服务器前缀和变量前缀来扩展变量名。如果使用函数GetTagxx或SetTagxx访问变量,该动作控件提供必要的扩展名。如果WinCC API函数被用来获得访问,必须由用户扩展变量名。在这种情况下,GetServerTagPrefix函数提供必要的前缀。 分别为服务器前缀、变量前缀和窗口前缀返回一个“字符”类型的指针。 用户既不修改(不包括strcat)也不释放存储器。 读出服务器前缀的实例 {
char* pszServerPrefix; char* pszTagPrefix; char* pszWindowPrefix;
//获得服务器前缀和变量前缀 GetServerTagPrefix
(&pszServerPrefix, &pszTagPrefix, &pszWindowPrefix); //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetServerTagPrefix函数参数:
“pszServerPrefix”是在其中写入服务器前缀的变量。 “pszTagPrefix”是在其中写入变量前缀的变量。 “pszWindowPrefix”是在其中写入窗口前缀的变量。 1). 读出服务器前缀、变量前缀和窗口前缀。
2). 返回的服务器前缀缓冲存储在pszServerPrefix中。 3). 返回的变量前缀缓冲存储在pszTagPrefix中。 4). 返回的窗口前缀缓冲存储在pszWindowPrefix中。 5). 执行处理返回值的自定义代码。 读出服务器前缀的实例 {
char* pszServerPrefix; char* pszTagPrefix; char* pszWindowPrefix; int nServerPrefixLen = 0; int nTagPrefixLen = 0; int nTagLen = 0;
char myTagName[MAX_DM_VAR_NAME+1]; //初始化返回值
memset(myTagName,0,MAX_DM_VAR_NAME + 1);
//获得服务器前缀、变量前缀和窗口前缀 GetServerTagPrefix (&pszServerPrefix, &pszTagPrefix, &pszWindowPrefix); //是否存在服务器前缀 if (pszServerPrefix) {
//获得该字符串的长度
nServerPrefixLen = strlen(pszServerPrefix); } else {
printf(\ return; }
//是否存在变量前缀 if (pszTagPrefix) {
//获得该字符串的长度
nTagPrefixLen = strlen(pszTagPrefix); }
//获得该变量的长度
nTagLen = strlen(\
//检查长度
//ServerPrefix+TagPrefix+VarName + the double points < MAX_DM_VAR_NAME if (nServerPrefixLen + nTagPrefixLen + nTagLen+2 < MAX_DM_VAR_NAME) {
sprintf(myTagName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... } else {
printf(\ return; } }
1). 初始化myTagName变量。
2). 读出服务器前缀、变量前缀和窗口前缀。
3). 如果未返回服务器前缀,发出文本,并且该函数被终止。
4). 如果返回服务器前缀,建立其长度并将其存储在nServerPrefixLen中。 5). 如果返回变量前缀,建立其长度并将其存储在nTagPrefixLen中。 6). 确定变量名的长度和nVarLen中的缓冲区。
7). 如果变量名的长度太长,发出文本,并且该函数被终止。 8). 如果变量名的长度不太长,组成多客户机环境要求的变量名。 9). 执行处理返回值的自定义代码。
8. void TraceText(DWORD dwTraceLevel, char* pszFormat,
9. void TraceTime(DWORD dwTraceLevel, char* pszFormat,