Namespaces für POEs definieren
Weitere Infos
Die Beschreibung, was Namespaces (Namensräume) sind, wie Sie auf Elemente eines Namespaces zugreifen, verschachtelte Namespaces usw., finden Sie im Thema "Allgemeine Informationen zu Namespaces". |
Dieses Thema enthält die folgenden Abschnitte:
- Allgemeine Hinweise zur Definition von Namespaces für POEs
- Namespace im 'Einstellungen'-Editor der POE definieren
- Namespace im KOMPONENTEN-Bereich definieren
- 'Usings' für eine POE definieren
- Darstellung von FU- und FB-POEs in Namespaces im grafischen Editor
Allgemeine Hinweise zur Definition von Namespaces für POEs
- Namespaces werden nicht für sicherheitsbezogene POEs unterstützt.
- Namespaces werden noch nicht für sicherheitsbezogene Typen unterstützt (erfolgt in der Zukunft).
- Beachten Sie die Namenskonventionen für Namespaces, wenn Sie einen neuen Namespace definieren.
- Wenn ein Namespace für ein Sprachelement definiert ist oder ein vorhandener Namespace-Bezeichner umbenannt wird, muss der Elementname überall im Projekt, wo das Element verwendet wird, entsprechend geändert werden. Wenn Sie bspw. einen Namespace für eine Programm-POE definieren und die POE bereits im 'Tasks und Events'-Editor instanziiert ist, meldet der Compiler einen Fehler, da die instanziierte Programm-POE nicht bekannt ist.
Namespace im 'Einstellungen'-Editor der POE definieren
Hinweis
Wenn Sie im 'Einstellungen'-Editor den Namespace für eine POE ändern, wird der Namespace automatisch im KOMPONENTEN-Bereich und umgekehrt aktualisiert. |
Gehen Sie wie folgt vor, um im 'Einstellungen'-Editor einen Namespace für eine POE zu definieren (nicht möglich für sicherheitsbezogene POEs):
- Doppelklicken Sie in den KOMPONENTEN auf die POE, für welche Sie einen Namespace definieren möchten und öffnen Sie anschließend den 'Einstellungen'-Editor.
- Geben Sie in das Feld 'Namespace' den neuen Namespace-Name ein oder wählen einen vorhandenen Namen aus der Auswahlliste (die Liste enthält alle in Ihrem Projekt definierten Namespaces). Bestätigen Sie den Namen mit <Eingabe>.
Um einen verschachtelten Namespace zu erzeugen, geben Sie die Namespace-Namen getrennt durch einen "." (Punkt) ein (Bsp. NamespaceA.NamespaceB.NamespaceC).In den KOMPONENTEN wird der POE-Name automatisch aktualisiert (zeigt den voll qualifizierten Namen der POE).
Namespace im KOMPONENTEN-Bereich definieren
Gehen Sie wie folgt vor, um in den KOMPOENTEN einen Namespace für eine POE zu definieren:
- Wählen Sie im KOMPONENTEN-Bereich die POE aus und drücken Sie <F2>. (Wenn für die POE bereits ein Namespace definiert ist, wird mit <F2> nur der POE-Name ohne den Namespace markiert.)
- Geben Sie vor dem POE-Namen den Namespace-Namen gefolgt von einem "." (Punkt) ein (Bsp. NamespaceA.MyFB).
Um einen verschachtelten Namespace zu erzeugen, geben Sie die Namespace-Namen getrennt durch einen "." (Punkt) ein (Bsp. NamespaceA.NamespaceB.NamespaceC.MyFB).
Um einen Namespace für eine POE zu löschen, löschen Sie entweder den Namen im Feld 'Namespace' des 'Einstellungen'-Editors der POE oder im POE-Namen in den KOMPONENTEN.
'Usings' für eine POE definieren
Damit Sie eine POE außerhalb des Namespace, in welchem diese definiert ist, verwenden können, müssen Sie in der Regel den voll qualifizierten Namen der POE angeben. Wenn Sie bspw. die FB-POE 'NamespaceA.MyFB' in einer Programm-POE instanziieren möchten, müssen Sie in der Programm-POE den voll qualifizierten Namen 'NamespaceA.MyFB' angeben. Damit Sie nicht jedes Mal den voll qualifizierten Namen eingeben müssen, können Sie den Namespace der FB-POE in die 'Usings'-Liste der Programm-POE hinzufügen. So können Sie in der Programm-POE den Kurznamen (ohne Namespace-Bezeichner) der FB-POE verwenden (siehe hierzu auch folgendes Beispiel).
Beachten Sie beim Definieren von 'Usings' für eine POE Folgendes:
- 'Usings' sind ein optionales Feature zur Vereinfachung der Verwendung von Sprachelementen und zur Verbesserung der Lesbarkeit Ihres Codes bei der Verwendung von Namensräumen. Sie sind besonders hilfreich für Sprachelemente mit mehrfach verschachtelten Namespaces.
- Wenn Sie einen Namespace in die 'Usings'-Liste einer POE aufnehmen, werden die Elemente, die zu diesem Namespace gehören, sowohl mit dem voll qualifizierten Namen als auch mit dem Kurznamen an den möglichen Zugriffsorten angezeigt (wie in folgendem Bild gezeigt). Hier erscheint die POE FB1 zweimal (mit und ohne Namespace) in der Auswahlliste der Variablentabelle (Pos. 1), da 'NamespaceB' (FB1 ist ein Member dieses Namespace) in der 'Usings'-Liste der POE 'NamespaceA.Main' (Pos. 2) enthalten ist.
- Der voll qualifizierte Name eines Sprachelements kann auch mit definierten 'Usings' verwendet werden.
Gehen Sie wie folgt vor, um einen Namespace in die 'Usings'-Liste einer POE einzutragen:
- Doppelklicken Sie in den KOMPONENTEN auf die POE, für welche Sie einen Namespace in die 'Usings'-Liste hinzufügen möchten und öffnen Sie anschließend den 'Einstellungen'-Editor.
- Linksklicken Sie in der 'Usings'-Tabelle in die Combobox unter dem Tabellenkopf und wählen Sie aus der Liste einen Namespace aus oder geben Sie den Namespace direkt in das Feld ein (IntelliSense wird unterstützt). Bestätigen Sie die Auswahl mit <Eingabe> oder klicken Sie außerhalb der Combobox. Die Auswahlliste enthält alle Namespaces (inkl. der verschachtelten Namespaces) in Ihrem Projekt. (Nach Bestätigen der Auswahl wird eine neue leere Zeile in die Tabelle eingefügt.)
Wiederholen Sie diesen Schritt für alle Namespaces, die Sie in die Liste aufnehmen möchten.
Beispiel für das 'Usings'-Verhalten
Um einen Namespace aus der 'Usings'-Liste zu löschen, markieren Sie den Eintrag in der Liste und drücken <Entf>.
Darstellung von FU- und FB-POEs in Namespaces im grafischen Editor
Im grafischen Editor wird der Funktionsbausteintyp immer innerhalb des Blocksymbols einer instanziierten FU- oder FB-POE angezeigt. Je nach Namespace-Einstellung für die instanziierte POE und die 'Using'-Deklaration für die aufrufende POE, erscheint vor dem Blocktyp ein zusätzliches Zeichen (Präfix) wie in den folgenden Beispielen für eine FB-POE gezeigt.
Der Tooltip des Blocksymbols zeigt immer den voll qualifizierten Namen des Blocktyps an.