WINCC 6.0中:
有1状态显示模块,其Index属性连接了一外部变量。
现要在该状态显示模块的“鼠标单击”事件中,读取这个模块Inde属性所链接的变量的变量名,如何实现?
问题补充:
并不是,读属性的值,而是读属性所引用的变量名
最佳答案
GetLink函数的含义及使用方法
1、含义
获取某个画面中指定对象其属性的动态连接特性。连接属性包括动态连接类型、更新方式及连接的变量名称。
函数原型如下:
BOOL GetLink(LPCTSTR lpszPictureName, //画面名称
LPCTSTR lpszObjectName, //对象名称
LPCTSTR lpszPropertyName, //属性名称
LPLINKINFO *pLink); //连接特性结构指针
其中,值得一提的是LINKINFO结构体。下面是结构体的定义。
typedef struct {
LINKTYPE LinkType;
DWORD dwCycle;
TCHAR szLinkName[256];
}LINKINFO;
说明:
LinkType:连接类型,各值对应关系如下:
0-无连接
1-直接变量连接
2-间接变量连接
3-C动作
4-动态对话框
5-直接连接
6-动态对话框(不清楚与4的区别)
dwCycle:更新方式
255-画面周期
235-窗口周期
0-基于改变
1-250毫秒
2-500毫秒
3-1秒
4-2秒
5-5秒
6-10秒
7-1分钟
8-5分钟
9-10分钟
10-1小时
11~15-用户自定义周期1~5
szLinkName[256]:变量名称
2、使用示例
LINKINFO linkinfo;
BOOL ret;
ret=GetLink("NewPdl1.PDL","Rectangle01","BackColor",&linkinfo);
SetTagBit("Ret",ret);
if(ret==TRUE)
{
SetTagByte("Type",linkinfo.LinkType);
SetTagDWord("Cycle",linkinfo.dwCycle);
SetTagChar("TagName",linkinfo.szLinkName);
}
说明:以上代码获取画面NewPdl1.PDL中的矩形对象Rectangle01的属性BackColor的动态连接特性,并将其存入结构变量linkinfo中。然后将连接类型存入Type内存变量,更新方式存入Cycle内存变量,连接变量名称存入TagName内存变量中。
提问者对于答案的评价:
详尽,解答的很详尽。尽管我不用C脚本。我还是要感谢你
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc268398.html