说明:
在 WinCC 全局 C 脚本中有几个默认的 "SetTagMulti()" 函数用来写多个 WinCC 变量值:
- BOOL SetTagMultiWait(const char* pszFormat, const char* pszTag, void vValue, ...)
- BOOL SetTagMultiStateWait(DWORD* pdwState, const char* pszFormat, const* pszTag, void vValue, ...)
这些函数就是所谓的“Wait”函数,他们直接将变量值写入 PLC 而不是 WinCC 的数据管理器中。这些函数参数的数量是变化的;这取决于要写的变量数量。
参数:
以下参数被传送给“SetTagMulti()”函数:
- DWORD* pdwState (仅用于 SetTagMultiStateWait())
“SetTagMulti()“函数的使用必需一个双字变量类型的数组 DWORD (保留内存),指向该区域首个元素的指针被传送给“SetTagMulti()“函数。“SetTagMulti()"“函数持续将所写 WinCC 变量的状态写入所传送的地址中。
- const char* pszFormat
“GetTagMulti()“函数的使用必需一个可用的字符串(保留内存)并用其存贮要写的 WinCC 变量的格式信息。指向该字符串首个元素的指针被传送给“SetTagMulti()“函数。
- const char* pszTag
“pszTag“是一个指向包含对应 WinCC 变量名称的字符串的指针。使用“SetTagMulti()“函数时必须为每个要写的变量传送一个“pszTag“字符串。
- void vValue
“vValue“是其变量值要写入 WinCC 的变量。
- “SetTagMulti()“函数的使用必须为每个要写的变量传送该参数。
- 该参数的实际数据类型取决于要写的 WinCC 变量的数据类型。可能的数据类型请参照以下表格。
- Return value:
当“SetTagMulti()“函数正确完成执行则函数返回值“TRUE“。若程序运行中有错误产生,如值“ZERO“被传送给至少一个参数或格式字符串包含无效的格式,“SetTagMulti()“函数返回值“FALSE“。该函数不能检查变量值是否被正确写入。因此您不能使用该返回值检查 WinCC 变量的写入是否成功。因此您应该使用 “SetTagMultiStateWait()“函数及关联的变量状态来评估错误。
WinCC 变量的质量信息(变量状态)可在 WinCC 信息系统中的以下位置找到:
- “通讯 > 通讯 - 诊断> 变量质量> 变量状态“
关于“SetTag()“函数如何运行的常规信息可在 WinCC 信息系统中的以下位置找到:
“使用 WinCC > 使用 ANSI-C 创建函数和动作 > ANSI-C 函数描述 > 内部函数 > 变量 > 写 > SetTag 函数的功能“
下表描述了格式字符串中可能的格式并说明了何种格式可以同何种 WinCC 和 C 数据类型一起使用: