VBS 读取 对象某属性已连接的变量的变量名

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午6:00
下一篇 2019年6月11日 上午6:00

相关推荐