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

相关推荐

  • 怎么更改WINCC运行系统的标题

    怎么更改WINCC运行系统的标题,现在一运行标题上显示:“WINCC运行系统”几个字,我怎么把这几个字换成我项目名字“天桥自控系统” 问题补充:我在WINCC项目管理器→计算机→属…

    SIMATIC WinCC 2019年6月11日
  • Wincc v4.x升级v6.2 C脚本是否需要重新修改

    公司的一套工控系统需要从v4.02升级至v6.2,我已经知道需要先升级至v5版本,并且转换数据库等等,但是对于项目的C脚本是否需要重新作修改(主要是strcpy和strcat函数)…

    SIMATIC WinCC 2019年6月11日
  • 数据格式转换

    从温控表上读取温度值  格式是 字符串  所以上位机上显示出来温度值的经常会出现字母,而且温度设定值 也要求以字符串的格…

    SIMATIC WinCC 2019年6月11日
  • WINCC报表功能

    想使用WINCC的报表功能 计算机上已安装WINCC2008高级版 和运行版 (WINCC授权正常)还要安装那些软件,具体怎么实现报表功能? 最佳答案…

    SIMATIC WinCC 2017年6月27日
  • VBS 点MSGBOX确认,更改变量

    我想通过VBS的Msgbox,点击OK更改变量,点击CANCEL保持不变,脚本如下:Dim TAG123Set TAG123 = MsgBo…

    SIMATIC WinCC 2017年12月9日
  • 下面这个年月日是用什么工具画出的?

    下面这个年月日是用什么工具画出的?IO域一个一个画出的?还是其他? 图片说明:    最佳答案 这个首先要在程序里面调用时间函数,不知道你用的什么型号的PLC,…

    2021年7月5日
  • 用vb脚本连接SqL 数据库代码问题

    我的wincc不能用#progma 来做登陆 我想用VB来直接连接到Sql中的PW_USER表中作判断,我写的连接语句 无法连接到本地数据库,请教下谁…

    SIMATIC WinCC 2019年6月11日
  • Wincc Flex 报警显示问题

    所有的报警都采用PLC DB块里的离散量 现在就是当多个报警存在时每次只能显示一个报警,而且循环跳。 1.我想做成把所有的报警都罗列在一起 …

    SIMATIC WinCC 2019年6月11日
  • winCC激活后卡住不动,何解

    我的winCC是6.2已授权的,同样的工程在另外一台机器上已经运行,但是搬到这台机器上的时候就在激活的时候读条加载到 “数据管理器” 时候就卡住不动了,任务管理…

    SIMATIC WinCC 2019年6月11日
  • WinCC画面每隔45秒钟会休息3~4秒是怎么回事

     WinCC画面每隔45秒钟会休息3~4秒是怎么回事   我在办公室里采用三台电脑(两台win2003+CP1613作为ES及Server,…

    SIMATIC WinCC 2019年6月11日