#define PropertyName "Control Value"
LINKINFO linkinfo
GetLink(lpszPictureName, lpszObjectName, PropertyName, &linkinfo);
if ( strlen(linkinfo.szLinkName) > 0 )
SetTagWord(linkinfo.szLinkName, (WORD) value);
else
SetPropDouble(lpszPictureName, lpszObjectName, PropertyName, value);
请教这段程序的意义。
问题补充:
为什么要声明#define PropertyName "Control Value",而不是直接写作GetLink(lpszPictureName, lpszObjectName, “control value”, &linkinfo)呢?
最佳答案
GetLink的功能是获取某个画面中指定对象其属性的动态连接特性。
连接属性包括动态连接类型、更新方式及连接的变量名称。
函数原型如下:
BOOL GetLink(
LPCTSTR lpszPictureName, //画面名称
LPCTSTR lpszObjectName, //对象名称
LPCTSTR lpszPropertyName, //属性名称
LPLINKINFO *pLink); //连接特性结构指针
其中,LINKINFO是结构体。定义如下:
typedef struct {
LINKTYPE LinkType;
DWORD dwCycle;
TCHAR szLinkName[256];
}LINKINFO;
说明:
LinkType:连接类型,
dwCycle:更新方式
szLinkName[256]:变量名称
程序的意思参见 youhm的回答。
define是C语言中的预处理命令,可以提高源代码的可读性。详细的需要查一下C语言的资料了。
在WinCC的帮助中搜索“WinCC 编码规则” 能查到一些信息。
提问者对于答案的评价:
谢谢指教
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221701.html