===================================== Objektorientierte Modellierung in EOS ===================================== .. toctree:: :glob: :hidden: ***************************************** Mittelpunkt des Engineerings einer Anlage ***************************************** Der zentrale Punkt des gesamten Systems sind die Variablen. Variablen hängen am Ende der Glieder-kette Klassen-Objekte-Variablen, bilden jedoch das wichtigste Element, weshalb wir uns von da aus langsam ein Verständnis aufbauen werden. .. note:: Variablen sind zu verstehen als abstrakte Beschreibungen von Eigenschaften einer Klasse Um diesen Satz zu verstehen, schauen wir uns die Konfiguration eines Verdichters an und arbeiten uns dann zu einem Gesamtverständnis des Klassen-Objekt-Variablen Konstrukts vor. Variablen Beispiel ================== Verdichter ---------- Verdichter sind zu verstehen als ein genereller Obergriff für alle Aggregate, die irgendetwas verdichten. - Bei einem Verdichter kommt also ein Element mit einem Druck ins System rein, und kommt hinten mit einem höherem Druck raus - Es gibt somit einen Eingangsdruck und einen Ausgangsdruck Eingangsdruck und Ausgangsdruck bezeichnen wir in EOS **Variablen** der Klasse Verdichter. Klassen haben üblicherweise wesentlich mehr Eigenschaften, wobei Variablen besondere Eigenschaften der Klassen darstellen, die einen zeitlichen Verlauf eines Wertes darstellen (ganz gleich ob gemessen, berechnet oder per Handeingabe). In unserem Beispiel ist es der Eingangs- und Ausgangsdruck, dessen Werte sich über die Zeit verändern. Eine Eigenschaft (nicht Variable) wäre etwas wie die Farbe oder ein ähnlicher Wert, der sich allerdings nicht über die Zeit ändert. .. _link-objectoriented-modelling: ************************************************ Überblick Menüpunkte Klassen, Objekte, Variablen ************************************************ .. note:: - Klassen sind abstrakte Beschreibungen eines Anlagenteils, vergleichbar mit Blueprints - Ein Objekt ist eine Instanz einer Klasse, eine Realisierung dieser Klasse - Variablen sind abstrakte Beschreibungen von Eigenschaften einer Klasse - Variablen Instanzen sind Instanzen von Variablen spezifischer Objekte .. _link-objectoriented-classes: Klassen ======= Die Klassen sind im Engineering links in der Gliederung als Hauptknoten zu finden. Dort sind alle vorhandenen Klassen gelistet. Der Verdichter aus unserem Beispiel ist ebenfalls unter dem Menüpunkt Klassen zu finden. Unter Klassen -> Verdichter finden wir die Unterpunkte: - Objekte - Variablen - Properties .. image:: ../images/17.png :width: 800 .. _link-objectoriented-variables: Variablen ========= | Die selben Variablen zu den Klassen finden wir ein zweites mal in der Gliederung parallel zu den Klassen als Hauptpunkt Variablen. | Wie beim Klassen Menü-Knoten finden wir hier auch wieder Klassen gelistet, einen Klon der Auflistung quasi, aber statt der Liste Objekte/Variablen/Properties sehen wir dadrunter direkt die Variablen. .. image:: ../images/18.png :width: 800 Anders als bei den Klassen können wir die Variablen hier aufklappen und sehen eine Liste von Namen der Objekte denen diese Variable zugoerdnet ist. Klicken wir auf einen Objektnamen einer Variablen so sehen wir im Hauptfenster die Eigenschaften der Variableninstanz dieses Objekts, also Daten der Variable des konkreten Objekts. .. _link-objectoriented-objects: Objekte ======= Die Zuordnung (Variable -> Objekt) finden wir (umgekehrt mit der Zuordnung Objekt -> Variable) ein weiteres mal unter den entsprechenden Objekten im Menü Hauptpunkt Objekte, parallel zu den Klassen und Variablen Hauptpunkten. Dort können wir einer Hierarchie folgend, am Zielobjekt unter Instances alle dem Objekt zugeordneten Variablen wiederfinden. .. image:: ../images/19.png :width: 800 .. warning:: Variableninstanzen können wir über 2 Wege abfragen - Objekte->Objekt->Untergeordnetes Objekt->Instances->Variablenname - Variablen->Klasse->Variable->Objektname In beiden Fällen betrachten wir nach dem Klick ein und die selbe Variableninstanz, auch wenn die Menüknotenpunkte anders heißen. Wichtig ist also die Struktur in welcher der Endknoten eingebunden ist. Die Beziehung Objekt->Variable und Variable->Objekt stellen beide die selbe Struktur und damit die selbe Variableninstanz dar. Zwei Betrachtungswinkel auf das selbe Konstrukt / auf die selbe Variableninstanz. .. note:: Vereinfacht kann man sich merken - Variable A -> Objekt X = Variableninstanz AX - Objekt X -> Variable A = Variableninstanz AX .. _link-variable-structure: Aufbau von Variablen ==================== Jede Variable hat einen Namen, der bereits die Funktion, bzw. Eigenheiten der Variable kodiert hat. Aufbau von Variablennamen ------------------------- .. figure:: ../images/25.png :width: 400 :align: center Aufbau eines Variablennamens Jeder Variablenname bietet Rückschluss auf: - die Klasse, der er zugeordnet ist - die Position innerhalb dieser Klasse - das Medium, das die Variable beschreibt - die physikalische Größe, die beschrieben wird - die Spezialisierung oder ein Kommentarkürzel - die Herkunfg der Werte (berechnet, Prozesswert, Parameter usw.) Diese Felder finden wir wieder, sobald wir im Engineering eine :ref:`Variable anklicken`. Man sieht dann, dass der Variablenname die Abfolge der Felderwerte von oben nach unten gelesen wiedergibt. Die genauen Beispiel Variable Verdichterstufe 1 ----------------------------------- Die Variable VK_VS1.SGas.p_ein.v für die Verdichterstufe 1 ist im folgenden wie folgt definiert: - das benutzte Medium ist Speichergas - die physikalische Größe ist Druck - Maßeinheit in bar - Specialization ist definiert als Eingang (Eingang der Sufe 1) .. image:: ../images/15.png :width: 800 Dies ist also eine abstrakte Beschreibung vom Speichergas-Druck in bar. .. note:: Es wird hier beschrieben, dass es diese Variable/Eigenschaft der Klasse gibt und seine physikalischen Eingenschaften definiert. Wo der Wert herkommt, wird jedoch an anderer Stelle definiert. .. note:: Eine Variable/Eigenschaft wird an einer Klasse definiert und damit ausgedrückt, dass die Klasse diese Eigenschaft besitzt. Jedes Objekt dieser Klasse (Verdichter) wird eine Instanz dieser Variablen haben. Wenn man die Variable aufklappt, so sieht man die Objekte Instanzen die die Variable als Eigenschaft besitzen. .. image:: ../images/16.png :width: 800 Wo die Eigenschaft herkommt, wird an dem Objekt :ref:`spezifiziert`. Vererbung bei Klassen und Objekten ================================== Bei unserer :ref:`objektorientierten Herangehensweise` ist auch der Begriff Vererbung zu verstehen - Klassen können Eigenschaften (hier primär Variablen) von anderen Klassen erben - Das heißt, diese Klassen erhalten die selben Eigenschaften wie ihre Vaterklasse - Erbende Klassen können aber auch noch weitere eigene ihnen vorbehaltene Eigenschaften bekommen - Außerdem kann eine Klasse von mehreren Klassen gleichzeitig erben - Es können lange Erbeketten aufgebaut werden .. code:: Kind--Vater--Großvater--Urgroßvater \ -Mutter - Objekte, als Instanzen einer Klasse, erben oder besitzen dann die Eigenschaften ihrer Klasse - Klassen sind allerdings vergleichbar mit einem Blueprint, einer Beschreibung dessen, wie ein konkretes Objekt aufgebaut wird, bzw. was es dann darstellt .. note:: Um das Konzept besser zu verstehen, können Sie sich die Folien zur :ref:`objektorientierte Herangehensweise` anschauen. .. _link-objectoriented-modelling-ppt: ************************************************************************* Folien zu Klassen, Objekte, Variablen und objektorientierter Modellierung ************************************************************************* .. figure:: ../images/Folie24.png .. figure:: ../images/Folie25.png .. figure:: ../images/Folie26.png .. figure:: ../images/Folie27.png .. figure:: ../images/Folie28.png .. figure:: ../images/Folie29.png .. figure:: ../images/Folie30.png .. figure:: ../images/Folie31.png .. figure:: ../images/Folie32.png .. figure:: ../images/Folie33.png .. figure:: ../images/Folie34.png .. figure:: ../images/Folie35.png .. figure:: ../images/Folie36.png .. figure:: ../images/Folie37.png .. figure:: ../images/Folie38.png .. figure:: ../images/Folie39.png