Namespaces in ST: Deklaration
Syntax
NAMESPACE name (* anwenderdefinierte Deklaration von POE und/oder Datentypen *) END_NAMESPACE
Bedeutung |
---|
Deklaration eines →Namespaces, wobei Ein Namespace kann die folgenden Sprachelemente enthalten:
Einschränkungen
Falls Sie Sprachelemente in einem Namespace deklarieren, können Sie diese natürlich auch außerhalb dieses Namespaces verwenden. |
Beispiel 1: Deklaration eines Namespaces
NAMESPACE N1 (* Start der Deklaration des Namespaces 'N1' *) FUNCTION F1 // ... Deklaration END_FUNCTION TYPE T1: STRUCT Elem1 : BOOL; // ... und weitere Deklaration END_STRUCT; END_TYPE FUNCTION_BLOCK FB1 // ... Deklaration END_FUNCTION_BLOCK END_NAMESPACE (* Ende der Deklaration des Namespaces 'N1' *)
Beispiel 2: Deklaration von verschachtelten Namespaces (mit wiederholten Schlüsselwörtern)
NAMESPACE Standard (* Start der Deklaration des Namespaces 'Standard' *) NAMESPACE Timers (* Start der Deklaration des verschachtelten Namespaces 'Standard.Timers' *) NAMESPACE HighResolution (* Start der Deklaration des verschachtelten Namespaces 'Standard.Timers.HighResolution' *) FUNCTION TimeTick: DWORD (* 'TimeTick' ist im Namespace 'Standard.Timers.HighResolution' enthalten; vergleiche Beispiele 3 und 4. *) // ... Deklaration END_FUNCTION END_NAMESPACE (* Ende der Deklaration des verschachtelten Namespaces 'Standard.Timers.HighResolution' *) TYPE LOCAL_TIME: STRUCT Elem1 : BOOL; // ... und weitere Deklaration END_STRUCT; END_TYPE FUNCTION_BLOCK TON VAR_INPUT In : BOOL; PT : TIME; END_VAR // ... and more declaration END_FUNCTION_BLOCK END_NAMESPACE (* Ende der Deklaration des verschachtelten Namespaces 'Standard.Timers' *) NAMESPACE Counters (* Start der Deklaration des verschachtelten Namespaces 'Standard.Counters' *) FUNCTION_BLOCK CUP // ... Deklaration END_FUNCTION_BLOCK FUNCTION_BLOCK CDOWN // ... Deklaration END_FUNCTION_BLOCK END_NAMESPACE (* Ende der Deklaration des verschachtelten Namespaces 'Standard.Counters' *) END_NAMESPACE (* Ende der Deklaration des Namespaces 'Standard' *)
Beispiel 3: Deklaration eines verschachtelten Namespaces (mit einem voll qualifizierten Namen)
NAMESPACE Standard.Timers.HighResolution FUNCTION TimeResolution: DWORD (* 'TimeResolution' ist im Namespace 'Standard.Timers.HighResolution' enthalten; vergleiche Beispiele 2 und 4. *) // ... Deklaration END_FUNCTION END_NAMESPACE
Beispiel 4: Deklaration von verschachtelten Namespaces (Kombination aus Beispiel 2 und 3)
NAMESPACE Standard.Timers NAMESPACE HighResolution FUNCTION TimeLimit: DWORD (* 'TimeLimit' ist im Namespace 'Standard.Timers.HighResolution' enthalten; vergleiche Beispiele 2 und 3. *) // ... Deklaration END_FUNCTION END_NAMESPACE END_NAMESPACE