Refactoring

Im Allgemeinen ist Refactoring eine Methode, um bereits geschriebene Software im Design zu verbessern, ohne ihr Verhalten zu ändern.

Refactoring in TwinCAT bietet Funktionalitäten zum Umbenennen von Objekt- und Variablennamen und zum Aktualisieren von Bausteinanschlüssen. Sie können alle Verwendungsstellen umbenannter Objekte und Variablen anzeigen lassen und diese dann gesamt oder einzeln ausgewählt umbenennen. Zusätzlich können Sie in den TwinCAT-Optionen (Extras > Optionen) in der Kategorie TwinCAT > SPS Programmierumgebung > Refactoring konfigurieren, ob und an welchen Stellen TwinCAT Sie automatisch zum Refactoring auffordert.

Globale Variable umbenennen

Eine globale Variable projektweit umbenennen:

Sie haben ein Projekt geöffnet, das mindestens einen Funktionsbaustein FB_Sample und eine globale Variablenliste GVL beinhaltet. Die globale Variablenliste ist in ihrem Editor geöffnet und enthält die Deklaration einer Variablen, beispielsweise nGlob1. FB_Sample verwendet nGlob1.
1. Selektieren Sie den Namen einer globalen Variablen, zum Beispiel „nGlob1“.
2. Wählen Sie im Kontextmenü den Befehl Refactoring > 'nGlob1' umbenennen.
3. Geben Sie im Dialog Umbenennen in das Eingabefeld Neuer Name einen neuen Namen ein, zum Beispiel „nGlobNeu“ und klicken Sie auf OK.
Der Dialog Refactoring öffnet sich. Im linken Fenster, im Projektbaum, sind die Objekte GVL und FB_Sample farblich rot gekennzeichnet und gelb hinterlegt. Im rechten Fenster ist FB_Sample in seinem Editor geöffnet und nGlob1 ist bereits in nGlobNeu umbenannt.
4. Klicken Sie auf OK.
In Ihrem Projekt ist die globale Variable nGlob1 überall in nGlobNeu umbenannt.

Eine globale Variable projektweit mit Ausnahme einer POU umbenennen:

1. Selektieren Sie den Namen einer globalen Variablen, zum Beispiel „nGlob1“.
2. Wählen Sie im Kontextmenü den Befehl Refactoring > 'nGlob1' umbenennen.
3. Geben Sie im Dialog Umbenennen in das Eingabefeld Neuer Name einen neuen Namen ein, zum Beispiel „nGlobNeu“ und klicken Sie auf OK.
Der Dialog Refactoring öffnet sich. Im linken Fenster, im Projektbaum, sind die Objekte GVL und FB_Sample farblich rot gekennzeichnet und gelb hinterlegt. Im rechten Fenster ist der Funktionsbaustein FB_Sample in seinem Editor geöffnet. Statt nGlob1 ist nGlobNeu aufgelistet.
4. Positionieren Sie den Cursor in das rechte Fenster und öffnen Sie das Kontextmenü.
5. Wählen Sie den Befehl Dieses Objekt verwerfen und klicken Sie auf OK.
In Ihrem Projekt ist die globale Variable nGlob1 in FB_Sample vorhanden. In den Objekten, in denen die Variable sonst vorkam, ist die Variable nGlobNeu angegeben. Im Meldungsfenster erscheint eine Fehlermeldung, dass der Bezeichner nGlob1 nicht definiert ist.

Siehe auch:

Eingangsvariablen hinzufügen und entfernen

Sie können im Deklarationsteil von Bausteinen über Refactoring-Befehle Eingangs- oder Ausgangsvariablen hinzufügen oder entfernen. An den Verwendungsstellen/Aufrufstellen der Bausteine aktualisiert TwinCAT entsprechend, wobei Sie dies pro Verwendungsstelle akzeptieren oder verwerfen können. Sie erhalten dazu den Dialog Refactoring.

Sie haben eine Funktion F_Sample im Editor geöffnet. Die Funktion besitzt bereits Eingangsvariablen nInput1 und nInput2 und nInputx. Sie wird in den Programmen MAIN und POU aufgerufen.
1. Setzen Sie den Fokus in den Deklarationsteil der Funktion F_Sample.
2. Wählen Sie im Kontextmenü den Befehl Refactoring > Variable hinzufügen.
Der Standarddialog zum Deklarieren einer Variablen erscheint.
3. Deklarieren Sie Variable nInput3 mit Gültigkeitsbereich VAR_INPUT und Datentyp INT. Schließen Sie den Dialog mit OK.
Der Dialog Refactoring erscheint (siehe Abbildung unten). Die betroffenen Stellen sind gelb markiert.
4. Wählen Sie rechts oben die Option Eingänge mit Platzhaltertext hinzufügen.
5. Setzen Sie im linken Fenster den Cursor auf einen der gelb hinterlegten Objekte, beispielsweise MAIN. Wählen Sie im Kontextmenü den Befehl Das gesamte Projekt annehmen, um die neue Variable an den Verwendungsstellen von F_Sample im gesamten Projekt hinzuzufügen.
Im rechten Fenster sehen Sie die Änderung im Implementierungsteil von MAIN: Platzhalter _REFACTOR_ erscheint an der Stelle, an der die neue Variable eingefügt wurde.
6. Schließen Sie den Dialog Refactoring mit OK.
Wählen Sie Befehl Bearbeiten > Suchen und Ersetzen. Suchen Sie im Projekt nach „_REFACTOR_“, um die betroffenen Stellen zu überprüfen und entsprechend zu bearbeiten.
Refactoring 1:

Alternativ können Sie die neue Variable direkt mit einem gewünschten Initialisierungswert einfügen, ohne zuerst mit einem Platzhalter zu arbeiten. In diesem Fall wählen Sie bei Schritt 4 die Option „Eingänge mit folgendem Wert hinzufügen“ und tragen den Wert rechts davon ein.

Refactoring 2:

Beispiel für eine neue Variable mit Platzhaltertext in einem CFC-Baustein:

Refactoring 3:

Beachten Sie auch die Möglichkeit, Variablen über Refactoring zu entfernen.

Siehe auch:

Variablen in der Deklaration neu anordnen

Im Deklarationsteil von Bausteinen können Sie über Refactoring die Reihenfolge von Deklarationen verändern. Dies ist möglich bei Deklarationen der Gültigkeitsbereiche VAR_INPUT, VAR_OUTPUT oder VAR_IN_OUT.

VAR_INPUT
    nInVar2 : INT;
    nInVar1 : INT;
    in      : DUT;
    bVar    : BOOL;
    nInVar3 : INT;
END_VAR
Sie haben den Deklarationsteil einer POU geöffnet, der beispielsweise die oben abgebildeten Deklarationen enthält.
1. Setzen Sie den Cursor in diesen Deklarationsblock und drücken die rechte Maustaste, um das Kontextmenü zu öffnen.
2. Wählen Sie im Kontextmenü den Befehl Refactoring > Variablen neu ordnen.
Der Dialog Neu ordnen erscheint mit einer Liste der VAR_INPUT-Variablen.
3. Selektieren Sie beispielsweise den Eintrag nInVar1 : INT; und ziehen ihn mit der Maus vor den Eintrag nInVar2 : INT;.
Die Deklaration von nInVar1 steht jetzt an oberster Stelle.
4. Schließen Sie den Dialog mit OK.
Der Dialog Refactoring erscheint. Die betroffenen Stellen sind gelb markiert (siehe Abbildung oben).
5. Bestätigen Sie mit OK.
Die neue Reihenfolge wird in den Baustein übernommen.

Siehe auch:

Variablendeklaration ändern und Refactoring automatisch anwenden

Sie werden in der Deklaration beim Umbenennen von Variablen (mithilfe der Autodeklaration) von Refactoring unterstützt.

Sie haben einen Funktionsbaustein FB_Sample im Editor geöffnet. Der Funktionsbaustein besitzt eine Eingangsvariable „nVAR“.
In den TwinCAT-Optionen (Extras > Optionen) in der Kategorie TwinCAT > SPS Programmierumgebung > Refactoring ist die Option Beim Umbenennen von Variablen aktiviert.
1. Selektieren Sie in der Deklaration von FB_Sample die Variable nVar. Alternativ können Sie den Cursor vor oder in die Variable setzen.
2. Wählen Sie im Menü Bearbeiten oder im Kontextmenü den Befehl Variable deklarieren.
Der Dialog Variable deklarieren öffnet sich. Der Dialog enthält die Einstellungen von nVar.
3. Ändern Sie den Namen von „nVar“ nach „nCounterVar“.
4. Die Option Änderung mit Hilfe von Refactoring anwenden erscheint und ist aktiviert. Die Option erscheint bei Änderung des Variablennamens unabhängig von den Einstellungen in den TwinCAT-Optionen. Sie ist jedoch nur dann automatisch aktiviert, wenn die in den Voraussetzungen genannte TwinCAT-Refactoring-Option aktiviert ist.
5. Klicken Sie auf OK.
Der Dialog Refactoring öffnet sich. Dort sind alle von der Variablenumbenennung betroffenen Stellen markiert und können geändert werden.

Siehe auch: