Codage avec l’objet propriétaire
- Last UpdatedSep 24, 2024
- 2 minute read
L'objet propriétaire dans une fonction de script ShowGraphic() sert à résoudre uniquement des références relatives. Aucune référence absolue n'est affectée par l'objet propriétaire. L'objet propriétaire est indépendant de la définition du graphique. La référence relative est résolue par l'objet qui héberge le script. Par exemple, si nomGraphique = "me.S1" ou "Obj1.S1", tandis que OwningObject = "Obj2", alors l'objet propriétaire résout uniquement la référence relative utilisée dans le graphique S1.
Considérez le scénario où il existe deux instances d'objet automation, « leReacteur_001 » et « leReacteur_002 » dans l'application de l'utilisateur. Les deux instances possèdent quatre attributs utilisateurs (UDA) nommés int1, int2, real1 et real2, plus le graphique S1.
Le graphique (leReacteur_001.S1) possède donc les références UDA suivantes :
-
Me.int1 (référence relative)
-
Me.real1 (référence relative)
-
leReacteur_001.int2 (référence absolue)
-
leReacteur_001.real2 (référence absolue)
Si vous configurez leReacteur_001.S1 avec le script ShowGraphic ("me.S1" ou "leReacteur_001.S1", tandis que OwningObject = "leReacteur_002") puis vous exécutez le script pendant l'exploitation, alors le système affiche leReacteur_001.S1, bien que la référence relative à l'intérieur de ce graphique pointe sur l'objet leReacteur_002.
Dans un tel contexte<:hs>:
-
Le graphique s'ouvre toujours uniquement depuis l'instance hôte de l'objet automation, ici « leReacteur_001 ».
-
La propriété GraphicName peut être définie sur une référence relative, une référence absolue ou le nom graphique du dossier Visualisation. Si une référence relative est utilisée dans la propriété GraphicName, alors le graphique s'ouvre toujours uniquement depuis l'instance hôte de l'objet automation, ici « leReacteur_001 ». Si une référence absolue ou un nom de graphique du dossier Visualisation est utilisé dans la propriété GraphicName, tel que le « Reactor_001.S1 » ou « S1 », le système recherchera ce graphique par son nom.
-
Les références relatives Me.int1, Me.real1 sont redirigées vers leReacteur_001.
-
Les références absolues leReacteur_001.int2 et leReacteur_001.real2 concernent leReacteur_001 uniquement, sans être redirigées vers leReacteur_002.
Les références relatives (telles que me.int1) utilisées dans le remplacement de propriétés personnalisées sur les graphiques incorporés seraient résolues en l'objet propriétaire du graphique incorporé. Alors que les références relatives utilisées dans les scripts de conteneur sont résolues avec l'objet propriétaire du graphique où le script est configuré.