Namespaces in ST: Deklaration
NAMESPACE name
( * optional_begin *) USING Namespace_2;
USING Namespace_3; (* optional_end *)
(* anwenderdefinierte Deklaration von POE und/oder Datentypen *)
END_NAMESPACE
Bedeutung |
Deklaration eines →Namespaces, wobei name ein →IEC-Bezeichner (siehe unten Beispiel 1) oder ein voll qualifizierter Name sein muss Ein Namespace kann die folgenden Sprachelemente enthalten:
Zusätzlich ist es möglich, Namespaces (und darin die obigen Sprachelemente) in der ST-Schnittstelle eines C-/C++-Bausteins zu deklarieren. Einschränkungen
Falls Sie Sprachelemente in einem Namespace deklarieren, können Sie diese natürlich auch außerhalb dieses Namespaces verwenden. Ein Namespace kann auch beim Erstellen von bestimmten ST-Sprachelementen oder im Applikationsnavigator vorgegeben werden (siehe "Anwendung in ST erstellen" oder "Aktionen mit Ordner/Objekten in Zusammenhang mit Namespaces" für Details). |
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' *)
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' *)
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
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