-

Refactoring von Variablen und FB-Typen

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:

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts
  • Stellen Sie vor dem Refactoring von sicherheitsbezogenen Variablen sicher, dass geeignete organisatorische Maßnahmen (gemäß zutreffender Sektornormen) getroffen wurden, um Gefährdungen im Falle einer ungewollten oder falschen Funktion der Anwendungslogik zu vermeiden.
  • Verifizieren Sie, wie sich das Refactoring von Variablen auswirkt.

Gehen Sie folgendermaßen vor:

  1. 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.)
  2. 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.

  3. 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.

  4. 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.

    Hinweis
    Stellen Sie sicher, dass Ihre Auswahl zu keinem Codefehler aufgrund von Inkonsistenzen führt.

  5. Klicken Sie in der Symbolleiste auf , um das Refactoring an allen gewählten Orten anzuwenden.

    Klicken Sie nach Beenden des Vorgangs in der Symbolleiste auf , um den Inhalt des REFACTORING-Fensters zu aktualisieren.

    Hinweis
    Nach Beenden des Refactoring, prüfen Sie das MELDUNGEN-Fenster auf Fehler, die durch das Refactoring aufgetreten sind.

    Hinweis
    Wenn der Instanzname eines Funktionsbausteins geändert wird, dann wird die zugehörige Instanzvariable in der entsprechenden Variablentabelle umbenannt, sofern dort exakt eine Variable mit dem alten Namen aber noch keine Variable mit dem neuen Namen vorhanden ist.

    Hinweis
    Wenn eine Funktionsbausteintyp geändert wird, wird auch der entsprechende Typ der Instanzvariablen geändert.

Fenster-Symbolleiste

Symbol / Befehl1
Aktualisiert die Liste aller Orte.
Ersetzt die vorhandenen Werte an den gewählten Orten durch die neuen Werte, die Sie in der Gruppe 'Neue Werte' eingegeben haben. Nach dem Refactoring wird die Liste automatisch aktualisiert.
Markiert (aktiviert) alle im Fenster aufgelisteten Orte.
Deaktiviert alle im Fenster aufgelisteten Orte.

Doppelklicken auf einen Ort in der Liste öffnet den entsprechenden Editor (Datenliste, Code etc.) und markiert dort das betreffende Objekt.