Deklaration eines Datentyps mit benannten Werten in ST
TYPE name_1 : data-type (name_e1 := value_1, name_e2 := value_2, ..., name_en := value_n) := initial-value; name_2 : data-type (name_e1 := value_1, name_e2 := value_2, ..., name_en := value_n) := initial-value; ... END_TYPE
Bedeutung |
---|
Deklaration eines oder mehrerer →Datentypen mit benannten Werten, wobei Diese Deklaration ist innerhalb der Deklaration eines anwenderdefinierten Datentyps ( Mit dem optionalen →Initialisierungswert weisen Sie dem Datentyp einen Wert zu. Dabei kann es sich um ein benanntes Element handeln (siehe Beispiel Abweichungen von IEC-Norm
|
logi.CAD 3 bietet außerdem die Möglichkeit, zusätzliche Daten bei der Deklaration anzugeben. Siehe "Beschreibung, Kommentar oder JSON-String für Variablen und Datentypen angeben" für Details.
TYPE TrafficLight : INT (Red := 1, Yellow:= 2, Green := 3); (* 'Red' wird als Initialisierungswert für 'TrafficLight' verwendet. *) Colors1 : DWORD (Red := 16#00FF0000, Green := 16#0000FF00, Blue := 16#000000FF) := Colors1#Green; (* 'Green' wird als Initialisierungswert für 'Colors1' verwendet. *) Colors2 : DWORD (Orange := 16#00FF7F00, Pink := 16#00FF33FF, Red := Colors1#Red) := 16#00990000; (* '16#00990000' wird als Initialisierungswert für 'Colors2' verwendet. *) END_TYPE
Verwendung der benannten Werte
Um einen benannten Wert verwenden zu können, geben Sie den Namen an. Der Name wird so weit wie möglich von logi.CAD 3 aus dem Kontext abgeleitet (siehe Beispiele Yellow
und Green
).
Um den Namen eindeutig anzusprechen, ist diese Syntax zulässig: name_1#name_e1
(siehe Beispiel TrafficLight#Red
) logi.cals empfiehlt Ihnen, benannte Werte immer mit dem eindeutigen Namen anzusprechen. So vermeiden Sie spätere Konflikte beim Bearbeiten der Anwendung – falls z.B. ein benannter Wert auch in einer neu installierten Bibliothek verwendet wird.
VAR Var1 : TrafficLight; Var2 : STRING[20]; END_VAR IF Var1 = TrafficLight#Red THEN (* OK, da eindeutiger Zugriff *) Var2 := 'STOP'; END_IF; IF Var1 = Yellow THEN (* OK, da 'Var1' den Kontext für 'Yellow' vorgibt; empfohlen ist jedoch die Verwendung des eindeutigen Namens 'TrafficLight#Yellow' *) Var2 := 'BEWARE'; END_IF; IF Var1 = Green THEN (* OK, obwohl 'Green' nicht eindeutig ist, da 'Var1' den Kontext vorgibt; empfohlen ist jedoch die Verwendung des eindeutigen Namens 'TrafficLight#Green' *) Var2 := 'WALK'; END_IF; IF Var1 = 16#00000000 THEN (* OK, da auch andere Werte als die benannten Werte zulässig sind *) Var2 := 'No traffic light'; END_IF;
Abhängig von Ihrer logi.CAD 3-Konfiguration (d.h., von der Start-Option lc3.expensive.enum.resolving.enable
) können Sie einen benannten Wert möglicherweise ohne den eindeutigen Namen angeben, auch wenn der Kontext nicht bekannt ist. In diesem Fall muss der benannte Wert aber eindeutig sein. Beachten Sie, dass sich die Performance beim Speichern, Importieren und Öffnen der ST-Objekte und/oder der Projekte jedoch verschlechtern kann. Falls Sie daran interessiert sind, die aktuelle Konfiguration zu ändern, kontaktieren Sie Ihren System-Integrator und klären Sie die möglichen Auswirkungen dieser Start-Option.