Variablen werden im Datadictionary definiert ( <sw-variables>). Sie sind grundsätzlich global zu behandeln, d.h. ihr <short-name> muß eindeutig sein.
Funktionen verwenden diese Variablen zum Austausch von Informationen. Dazu werden diese Variablen entsprechend ihrer Verwendung referenziert ( <sw-function-variables>).
Variablen werden aber auch als Eingangsgrößen von Kenngrößen und als Zwischenwerte verwendet.
Variablen können mit <admin-data> versehen werden, um z.B. Bibliotheksmanagement zu unterstützen.
Die Struktur zur Beschreibung der Software-Variablen ist rekursiv. Dies ermöglicht den Aufbau von hierarchischen Variablenstrukturen, die z.B. ein STRUCT-Konstrukt (in der Programmiersprache C) abbilden können.
Abbildung 11: Variable
Bei der Beschreibung von Datentypen (Variablen und Kenngrößen) ist zu beachten, daß Daten stets eine interne (coded) und eine externe (physikalische) Darstellung besitzen (z.B. für eine Motordrehzahl intern 0..200: extern 0..2000 U/min, intern 201..254: nicht definiert und intern 255: Motordrehzahl nicht verfügbar). Zwischen diesen Darstellungen wird über die in <sw-compu-method-ref> referenzierte Umrechnungsformel konvertiert.
Daher kann <sw-limits> sowohl physikalisch ( <phys>)als auch codiert ( <phys>) angegeben werden.
Der interne Wert für nicht verfügbar wird in <sw-var-not-av-value> eingetragen. Dies ist der Wert, den die Variable annimmt, wenn der zugehörige externe Wert nicht verfügbar ist (sei es daß er noch nicht erfaßt ist, oder aber ein Fehler vorliegt). Einen externen Wert für nicht verfügbar kann es nicht geben, da er ja nicht verfügbar ist.
Nicht alle Variablen werden in einem Applikatinssystem für die Kalibrierung benötigt. Diese Tatsache wird durch das Attribut [calibration] dokumentiert Es kann die Werte calibration, no-calibration und not-in-memory annehmen. Dieses Attribut wird genauso bei Kenngrößen verwendet.
<sw-variable>
<long-name>Motortemperatur</long-name>
<short-name>tmot</short-name>
<desc></desc>
<sw-variable-implementation>
<sw-base-type>ub</sw-base-type>
<sw-addressing-method-ref>NearRamByte></sw-addressing-method-ref>
<sw-compu-method-ref>rel_ub_b127p5</sw-compu-method-ref>
<sw-code-syntax-ref>RamNearUb</sw-code-syntax-ref>
</sw-variable-implementation>
</sw-variable>
|