UseBaObjectsInUserControl

Beschreibung

Ein UserControl liest standardmäßig die komplette Struktur aus die hinter einem verknüpften Parameter liegt, was zu einem hohen Kommunikationsaufkommen führen kann. Bei einem BaObjekt (z.B. BaView) können das schnell sehr viele Daten werden.
Diese Funktion reduziert, bei Verwendung eines BaObjekts als Parameter in einem UserControl, die Server-Kommunikation auf ein Minimum.

Verwendung

Der Parameter vom UserControl für das BaObjekt muss vom Typ Symbol sein. Durch diese Definition wird der Parameter nicht ausgelesen, sondern nur weitergegeben.
Ebenfalls muss der Name des Parameters BaObject heißen!

UseBaObjectsInUserControl 1:
UseBaObjectsInUserControl 2:

Auf diese Weise ist kein Zugriff mehr auf die unterliegenden Symbole des BaObjekts möglich.

Der Aufruf der Funktion soll immer dann erfolgen, wenn der BaObject-Parameter geändert wurde.
Dazu wird ein neues Event .BaObject erzeugt.

UseBaObjectsInUserControl 3:
UseBaObjectsInUserControl 4:

Im Konfigurationsfenster des Events wird die Funktion im Ordner "Functions > BuildingAutomation > UseBaObjectInUserControl" ausgewählt.

UseBaObjectsInUserControl 5:

Die Verknüpfung der Controls im UserControl mit dem BaObjekt oder dessen Unterelementen erfolgt dann über die Identifier der Controls.

UseBaObjectsInUserControl 6:

Es ist ebenfalls möglich UserControls innerhalb eines UserControls mit BaObjekten zu verbinden.
Dabei muss der Identifier, wie im nächsten Absatz erklärt, vergeben werden. Ebenfalls muss das innere UserControl dann auch den Parameter BaObject haben.

Verknüpfung

BaObjekt

Zur direkten Verwendung des BaObjekts muss das Control den Identifier $UserControlName$.Root tragen.
$UserControlName$ wird dabei mit dem Namen des UserControls ersetzt.

UseBaObjectsInUserControl 7:
UseBaObjectsInUserControl 8:

Es ist darauf zu achten, dass das Wurzelelement des UserControls, den selben Namen hat, wie die Datei des UserControls.
UseBaObjectsInUserControl 9:

Unterelemente vom BaObjekt

Zur Verwendung eines Unterelements muss das Control den Symbolpfad als Identifier tragen.
Erläuterung am Beispiel eines BaView mit folgendem Aufbau.

UseBaObjectsInUserControl 10:

Zugriff auf das Element Pu erfolgt über den Symbolpfad $UserControlName$.Pu als Identifier.

UseBaObjectsInUserControl 11:

Zugriff auf das Element Cmd erfolgt über den Symbolpfad $UserControlName$.Pu.Cmd als Identifier.

UseBaObjectsInUserControl 12:

Parameter vom BaObjekt

Zugriff auf den Parameter eines Elements erfolgt über den Symbolpfad.

Zum Beispiel:

Ist das Control vom Typ Checkbox, Combobox oder InputBox, dann wird nach dem Beenden der Benutzerinteraktion der Wert des Parameters in die SPS geschrieben.

Ohne BaObjekt oder BaParameter

Soll das Control oder UserControl innerhalb des UserControls nicht mit einem BaObjekt oder BaParameter arbeiten, dann darf der Identifier des Controls nicht $UserControlName$. enthalten.

Parameter

UserControl

tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiUserControl

Das UserControl in dem die BaObjekte verwendet werden sollen. Meistens ist dieser Parameter das UserControl selbst (self).

BaObject

tchmi:general#/definitions/Object

Mit diesem Parameter muss der UserControl-Parameter, mit dem das BaObjekt von außen verbunden wird, verknüpft werden.