# unbenutzte Variablen löschen



## Ratoncito (14 Dezember 2020)

Hallo,

mittlerweile haben sich viele Variablen angesammelt, die zwar deklariert sind, aber nirgendwo benutzt werden.

Wie kann ich auf einfache Art alle unbenutzten Varablen löschen?

Allen einen guten Start in die neue Woche


----------



## oliver.tonn (14 Dezember 2020)

Erstmal wäre interessant ob I/O-Pro oder e!Cockpit.
Ich kenne beide Systeme nicht wirklich, arbeite aber mit anderen Codesys basierten Systemen und da gibt es die Static Analysis Light mit der man danach suchen lassen kann. Habe gerade gesehen, dass es Static Analysis Light bei WAGO als AdOn gibt.


----------



## Ratoncito (14 Dezember 2020)

Hallo,

vielen Dank für die Antwort.

Es geht um e!Cockpit.
Ich werde mal unter Static Analysis Light suchen.


----------



## JSEngineering (14 Dezember 2020)

Hallo Wolfgang,

Projekteinstellungen -> Statische Codeanalyse -> Reglen -> Nicht verwendete Symboile auflisten.

Gruß
    Jens


----------



## Ratoncito (17 Dezember 2020)

Hallo Jens,

vielen Dank für den Hinweis.



JSEngineering schrieb:


> Projekteinstellungen -> Statische Codeanalyse -> Reglen -> Nicht verwendete Symboile auflisten.



Das ist schon sehr hilfreich.

Kann man die statische Analyse für einzelne Bausteine ausführen oder nur für das gesamte Objekt?
Kann man die dort angezeigten nicht verwendeten Deklarationen automatisch löschen, oder muss man sie in der Deklaration einzeln löschen?


----------



## JSEngineering (17 Dezember 2020)

Du kannst auf ein Objekt gehen und mit rechten Mausklick "Statische Analyse" auswählen, meine ich. Aber ich vermute, er wird immer das ganze Projekt durchsuchen. Anders kannst Du die Querverweise garnicht richtig herstellen.

Automatisches Löschen funktioniert nicht - abgesehen davon, daß ich sowas nicht machen würde.... immer selber gucken, ob das stimmt, was der PC da meint, rausgefunden zu haben...


----------



## Ratoncito (17 Dezember 2020)

Hallo Jens,

vielen Dank für die Antwort.



> Du kannst auf ein Objekt gehen und mit rechten Mausklick "Statische Analyse" auswählen,



Ja, das ist korrekt, aber es werden leider nicht nur die Variablen aus dem Objekt, sondern alle angezeigt.

Bei Automatisch Löschen habe ich auch Bauchweh, aber wenn man nur die Variablen eines Objektes hätte kann man es noch überschauen.

Ich hatte gehofft, dass man diese eventuell in der Meldungsansicht löschen könnte. Alles andere ist schon mit recht viel Aufwand verbunden. 

Ich habe viele gleich aufgebaute Objekte, daher habe ich es mir bei der Erstellung einfach gemacht und ein Objekt immer wieder kopiert und die benötigten Ein- und Ausgänge angepasst.
Die bei der Erstellung gesparte Zeit brauche ich jetzt für das Löschen der unbenutzten Variablen.

Damit hat sich das Thema erledigt.

Ich wünsche allen noch einen schönen Abend


----------



## JSEngineering (17 Dezember 2020)

Hallo Wolfgang...

ich weiß nicht, ob es im eCockpit sowas gibt wie "globales suchen/ersetzen"... hab gerade keins hier... 
wenn die Objekte alle gleich sind, sind ja auch die Variablen alle gleich deklariert... dann könntest Du die mit Suchen/Ersetzen rauslöschen: Suchen nach "X : INT;" ersetzen durch "".

Das Gleiche könnte man auch machen, indem man die Objekte alle exportiert. Editoren wie z.B. Notepad++ können in allen geöffneten Dateien gleichzeitig Suchen/Ersetzen.


Gruß
    Jens


----------



## Ratoncito (18 Dezember 2020)

Hallo Jens,



> ich weiß nicht, ob es im eCockpit sowas gibt wie "globales suchen/ersetzen"... hab gerade keins hier...
> wenn die Objekte alle gleich sind, sind ja auch die Variablen alle  gleich deklariert... dann könntest Du die mit Suchen/Ersetzen  rauslöschen: Suchen nach "X : INT;" ersetzen durch "".



Dein Ansatz ist im Prinzip richtig, aber die Variable XY ist in 10 Objekten deklariert, wird aber nur in 6 Objekten verwendet. Dann soll sie auch nur in den restlichen 4 Objekten gelöscht werden. 

Die nicht verwendeten Variablen werden in der Meldungsansicht aufgelistet. Ich hatte gehofft, dass man sie für 1 Objekt suchen kann und dann dort mit einem Klick alle löschen kann. 

Werde es wohl so machen:
Als einfachste und sicherste Methode lasse ich mir die Querverweise anzeigen und springe im Deklarationsfenster von einer Variablen zur nächsten und lösche die Variablen ohne Querverweis. Ist halt ein wenig aufwändig.

Danke für Deine Hilfe.


----------



## JSEngineering (18 Dezember 2020)

Bei CoDeSys 2 kann man beim globalen suchen auswählen, in welchen Objekten. Du kannst also die auswählen, due Du bearbeiten möchtrst. Da weiß ich nicht, ob das in CoDeSys 3 (eCockpit) noch geht.

Ansonsten: exportieren und außerhalb der Entwicklungsumgebung mit Editor bearbeiten...


----------

