Refactoring von Variablen und FB-Typen
Dieses Thema enthält die folgenden Abschnitte:
- Allgemeine Informationen
- Besonderheiten beim Refactoring von sicherheitsbezogenen Daten
- Refaktorierung von Funktionsbaustein-Instanzen
- Vorgehensweise zum Refactoring
- Fenster-Symbolleiste
Allgemeine Informationen
Refactoring bedeutet die Strukturverbesserung von vorhandenem Quellcode unter Beibehaltung des funktionalen Verhaltens.
Für das Refactoring unterstützt PLCnext Engineer einen Mechanismus für die automatische und konsistente Änderung von Objekteigenschaften (Variablen, FB-Instanzen etc.). Konsistent bedeutet, die zu ersetzenden Eigenschaften werden Solution-weit berücksichtigt, d.h. in jeder Variablentabelle, Datenliste, an jeder Codestelle und innerhalb der HMI-Applikation. So kann bspw. ein Objekt in nur einem Schritt und ohne funktionelle Auswirkung auf den Code umbenannt werden.
Den 'Refactoring'-Befehl finden Sie im Kontextmenü des Objekts in folgenden Editoren, sofern exakt ein Objekt selektiert ist:- Variablentabelle (lokale Deklarationen einer POE)
- Datenliste (globale IEC 61131-3-Deklarationen)
- Code-Editoren (Variablen und FB-Aufrufe)
- QUERVERWEISE
Besonderheiten beim Refactoring von sicherheitsbezogenen Daten
Die Auswirkungen, die das Refactoring von (sicherheitsbezogenen) Variablen/Instanzen auf die Sicherheitsanwendung hat, liegen allein in Ihrer Verantwortung als Applikationsentwickler. Sie müssen vor dem Refactoring von sicherheitsbezogenen Variablen und Instanznamen Folgendes beachten:
WARNUNG
|
Unbeabsichtigter Betriebszustand des Geräts
|
Refaktorierung von Funktionsbaustein-Instanzen
Für das Refactoring und die Aktualisierung von Funktionsbaustein-Instanzen und deren Typen gibt es verschiedene Levels:
- Instanz-Refactoring - Refactoring einer bestimmten Instanz eines FBs (wie im folgenden Verfahren beschrieben). Die Prozedur wird über den Kontextmenübefehl 'Refactoring' einer FB-Instanz ausgeführt.
- FB-Typen-Update - Aktualisierung aller FB-Instanzen desselben Typs in allen grafischen Arbeitsblättern im Projekt, ohne den FB-Typ selbst und den zugehörigen Typ der Instanzvariablen in der Variablentabelle zu ändern (kann nur für einen im grafischen Arbeitsblatt ausgewählten FB ausgeführt werden). Nützlich, wenn z. B. neue Ein- oder Ausgänge zu einem FB hinzugefügt wurden.Der Vorgang wird mit dem Kontextmenübefehl 'FB-Typ refaktorieren / aktualisieren' einer FB-Instanz in einem grafischen Arbeitsblatt ausgeführt.
- FB-Typen-Refactoring - Ändern des Typs von FB-Instanzen in allen grafischen Arbeitsblättern im Projekt sowie des entsprechenden zugehörigen Typs der Instanzvariablen in der Variablentabelle (kann nur für einen im grafischen Arbeitsblatt ausgewählten FB ausgeführt werden). Nützlich, wenn sich z. B. der FB-Prototyp geändert hat.Der Vorgang wird mit dem Kontextmenübefehl 'FB-Typ refaktorieren / aktualisieren' einer FB-Instanz in einem grafischen Arbeitsblatt ausgeführt.
Weitere Infos
Weitere Details finden Sie unter "Refactoring/Aktualisieren von FB-Typen". |
Vorgehensweise zum Refactoring
- Falls erforderlich: Nachdem Sie eine Variable hinzugefügt haben, erzeugen Sie das Projekt manuell neu ('Projekt > Neu erzeugen'). (Der 'Refactoring'-Befehl steht erst zur Verfügung, nachdem das Projekt neu erzeugt wurde oder wenn die Querverweise aktuell sind.)
- Wählen Sie aus dem Kontextmenü des zu ändernden Objekts den Befehl 'Refactoring' aus.Im Cross-Funktionen-Bereich öffnet sich nun das REFACTORING-Fenster. In diesem Fenster sind alle Orte aufgelistet, an denen das betreffende Objekt in Ihrem Projekt verwendet wird: Deklarationen, Code-Zugriffe (im Standard- und sicherheitsbezogenen Code) sowie alle Verwendungen in der HMI-Applikation.Doppelklicken auf einen Ort in der Liste öffnet den entsprechenden Editor (Datenliste, Code etc.) und markiert dort das betreffende Objekt.
- Geben (oder wählen) Sie in der ersten Tabellenzeile unter der Gruppe 'Neue Werte' einen neuen Namen, Typ oder Kommentar ein (alle anderen Eigenschaften sind schreibgeschützt).Das Feld 'Typ' enthält eine Liste der im Projekt vorhandenen Daten- und FB-Typen (FB-Namen). Wenn Sie einen anderen Typ wählen, stellen Sie sicher, dass dieser zum definierten Typ passt.Wenn der FB-Instanzname geändert wird, dann wird die zugehörige Instanzvariable ebenfalls umbenannt, sofern exakt eine Variable mit dem alten Namen aber noch keine Variable mit dem neuen Namen vorhanden ist.Wenn ein Funktionsbausteintyp geändert wird, wird auch der entsprechende Typ der Instanzvariablen geändert.
- Geben Sie alle Orte an, an denen die Eigenschaft durch die neuen Werte ersetzt werden soll.
: Beim Ausführen des Refactoring-Befehls werden alle vorhandenen Werte durch die neuen Werte ersetzt.
: Werte an diesem Ort bleiben unverändert.In der Symbolleiste des Fensters finden sich zwei Befehle zum Abwählen
oder Auswählen
aller Orte.
-
Stellen Sie sicher, dass
- Sie die Anweisungen im Gefahrenhinweis am Beginn dieser Vorgehensweise befolgt haben, und
- Ihre Auswahl zu keinem Codefehler aufgrund von Inkonsistenzen führt
- Prüfen Sie das MELDUNGEN-Fenster auf Fehler, die durch das Refactoring aufgetreten sind.
- Validieren und prüfen Sie die Applikation sorgfältig bezüglich der vom Refactoring betroffenen Variablen/Instanznamen.
Fenster-Symbolleiste
Doppelklicken auf einen Ort in der Liste öffnet den entsprechenden Editor (Datenliste, Code etc.) und markiert dort das betreffende Objekt.