为父对象编写脚本
- Last UpdatedSep 24, 2024
- 1 minute read
“显示图形”脚本函数中的父对象仅解析相对引用。任何绝对引用都不会受到父对象的影响。父对象独立于图形定义存在。相对引用由存放脚本的对象进行解析。例如,其中 GraphicName =“me.S1”或“Obj1.S1”,且 OwningObject =“Obj2”,父对象仅解析图形 S1 中的相对引用。
请考虑用户应用程序中有两个自动化对象实例“Reactor_001”和“Reactor_002”的情形。两个实例都具有四个用户定义的属性 int1、int2、real1 和 real2 以及图形 S1。
图形 (Reactor_001.S1) 具有以下 UDA 引用:
-
Me.int1(相对引用)
-
Me.real1(相对引用)
-
Reactor_001.int2(绝对引用)
-
Reactor_001.real2(绝对引用)
如果使用 ShowGraphic 脚本(GraphicName =“me.S1”或“Reactor_001.S1”,OwningObject =“Reactor_002”)配置 Reactor_001.S1 并在运行时执行该脚本,尽管此图形中的相对引用指向 Reator_002 对象,但系统将显示 Reactor_001.S1。
在这种情况下:
-
图形将始终仅从主机自动化对象实例(在此处为“Reactor_001”)中打开。
-
GraphicName 属性可以设置为相对引用、绝对引用或“可视化”文件夹图形名称。如果在 GraphicName 属性中使用相对引用,则图形将始终仅从主机自动化对象实例(在此处为“Reactor_001”)中打开。如果在 GraphicName 属性中使用绝对引用或“可视化”文件夹图形名称(例如,“Reactor_001.S1”或“S1”),那么系统将根据其名称搜索此类图形。
-
Me.int1、Me.real1 的相对引用将重定向至 Reactor_002。
-
Reactor_001.int2 和 Reactor_001.real2 的绝对引用仅来自 Reactor_001,不会重定向至 Reactor_002。
嵌入图形上的自定义属性覆盖中使用的相对引用(例如 me.int1)将解析为嵌入图形的父对象。而容器脚本中使用的相对引用将解析为配置了脚本的图形的父对象。