Step 7 Vorstellung: ENLYZE S7-Project-Explorer zum Auslesen einer .s7p Projektdatei und Exportieren der Variablenliste als CSV

Colin Finck

Level-1
Beiträge
6
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

kurze Vorstellung: Ich arbeite bei der ENLYZE GmbH und wir zeichnen Live-Prozessdaten von Fertigungsanlagen auf, um unseren Kunden produktbasierte Analysen zu ermöglichen. Da wir uns mit existierenden Maschinen verbinden und keine davon selbst programmiert haben, sind wir auf Variablenlisten der Steuerungen angewiesen.
Bei den S7-1200/1500 SPS können wir eine Liste aller Variablen direkt aus der Steuerung auslesen. Bei den weit verbreiteten S7-300/400 Steuerungen geht das leider nicht. Hier finden sich die Variablen und ihre Bezeichner nur in der STEP 7 Projektdatei.

Für diesen Fall habe ich den "S7-Project-Explorer" entwickelt. Mit dem Programm lässt sich ein STEP 7 Projekt (.s7p Datei) öffnen, eine vollständige Liste aller Variablen aus Symbollisten und Datenbausteinen auslesen, und das Ergebnis als CSV-Datei exportieren.
Das Programm ist bereits seit über 2 Jahren bei uns und unseren Partnern im Einsatz.
Heute haben wir es als kostenlosen Download und mit Quellcode auf GitHub veröffentlicht.

step1.png step2.png step3.png

Der S7-Project-Explorer ist auf allen Windows-Betriebssystemen ab Windows XP lauffähig. Das Programm kann direkt ohne Installation ausgeführt werden. Auch eine STEP 7 Installation ist nicht notwendig.

Ich denke, dass das Programm für viele hier nützlich sein kann und wollte es daher einfach mal vorstellen.
Auf euer Feedback bin ich gespannt.

Weitere Informationen:

Viele Grüße,

Colin Finck
 
Jetzt war ich ja neugierig und dachte mir, na mal sehn was das denn so mit der linkhrs Datei wirklich auf sich hat. Den Link im Quellcode aufgerufen, Post von mir :) Schade. Das ist aber schon ein komisches Konstrukt mit dieser Datei. Aber danke für das Programm, ist sicherlich nochmal nützlich, mit nur einer exe, und arbeitet wirklich mal richtig flott.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wir zeichnen Live-Prozessdaten von Fertigungsanlagen auf, um unseren Kunden produktbasierte Analysen zu ermöglichen. Da wir uns mit existierenden Maschinen verbinden und keine davon selbst programmiert haben, sind wir auf Variablenlisten der Steuerungen angewiesen.

Mit dem Programm lässt sich ein STEP 7 Projekt (.s7p Datei) öffnen, eine vollständige Liste aller Variablen aus Symbollisten und Datenbausteinen auslesen, und das Ergebnis als CSV-Datei exportieren.
Das Programm ist bereits seit über 2 Jahren bei uns und unseren Partnern im Einsatz.

Auf euer Feedback bin ich gespannt.
Für eine saubere Arbeitsweise für wichtige Daten befreit die generierte Variablenliste aber nicht davon, sich die Maschine/SPS-Software mal anzuschauen und zu validieren, ob die Variablennamen (noch) etwas mit der Realität zu tun haben...

Keine Ahnung, vielleicht gehts ja nur mir so, wir haben sehr oft SPS-Softwarestände in den Fingern, die erstens nicht aktuell sind und zweitens mit diversen symbolischen Leichen aus diversen Änderungen versehen sind.

Also meine persönliche Meinung, pauschale Datensammelwut ohne konkrete Kenntnisse der Maschine/Anlage bringt zwar viel Geld in die eigene Kasse, dem Kunden aber nur wenig wirklichen Mehrwert...
 
Zuletzt bearbeitet:
Jetzt war ich ja neugierig und dachte mir, na mal sehn was das denn so mit der linkhrs Datei wirklich auf sich hat. Den Link im Quellcode aufgerufen, Post von mir :) Schade. Das ist aber schon ein komisches Konstrukt mit dieser Datei. Aber danke für das Programm, ist sicherlich nochmal nützlich, mit nur einer exe, und arbeitet wirklich mal richtig flott.
Ja, da hast du jetzt den Standard gesetzt :)
Und solange da nichts Genaueres veröffentlicht wird, wird es wohl auch so bleiben. Bisher hat dein Algorithmus noch bei allen STEP 7 Projekten funktioniert und ich hatte keinen Grund, da tiefer nachzuforschen.

Danke für dein Feedback!
 
Für eine saubere Arbeitsweise für wichtige Daten befreit die generierte Variablenliste aber nicht davon, sich die Maschine/SPS-Software mal anzuschauen und zu validieren, ob die Variablennamen (noch) etwas mit der Realität zu tun haben...

Keine Ahnung, vielleicht gehts ja nur mir so, wir haben sehr oft SPS-Softwarestände in den Fingern, die erstens nicht aktuell sind und zweitens mit diversen symbolischen Leichen aus diversen Änderungen versehen sind.

Also meine persönliche Meinung, pauschale Datensammelwut ohne konkrete Kenntnisse der Maschine/Anlage bringt zwar viel Geld in die eigene Kasse, dem Kunden aber nur wenig wirklichen Mehrwert...
Keine Sorge, wir haben noch weitere Werkzeuge, um sicherzustellen, dass die ausgelesenen Variablen sinnvolle Werte liefern :)
Auch beschäftigen wir einige Domänenexperten, die mit den Produktionsprozessen vertraut sind. Damit fällt es deutlich leichter, die sinnvollen Variablen auszuwählen und alle anderen außen vor zu lassen.
Anders als einige Konkurrenten rechnet ENLYZE nicht pro Variable ab. Es gibt bei uns also keinen Anreiz, ohne Sinn und Verstand einfach nur möglichst viele Datenpunkte auszulesen.

Das Problem mit veralteten Softwareständen ist mir auch bekannt. Oft genug sind wir dank des S7-Project-Explorer aber immer noch an aktuelle Variablenlisten gekommen.
So hatten wir bereits Kontakt mit einigen Maschinenherstellern, die zwar ihr STEP 7 Projekt überhaupt nicht herausgeben wollen. Auf Nachfrage sind sie aber durchaus bereit, das Projekt mal eben durch den S7-Project-Explorer zu jagen und uns die erstellte CSV zuzuschicken.
 
Ich dachte mir.... Probier mal aus.
Ich habe es mit verschiedenen Projekten probiert.
Immer dieser Fehler
Anhang anzeigen 64175
Danke für dein Feedback! Existiert die genannte Datei denn?
Mit welcher STEP 7 Version wurden die Projekte erstellt?

Ich gebe zu, dass ich besonders mit STEP 7 5.5 und 5.6 getestet habe. Möglicherweise sah die Dateistruktur bei älteren STEP 7 Versionen noch anders aus.

Umlaute im Dateipfad sollten eher keine Probleme machen. Ich setze im S7-Project-Explorer durchgängig auf Unicode.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab das Tool jetzt auch getestet. Wenn das Projekt auf einem Netzlaufwerk liegt, dann bekomme ich oben genannte Fehlermeldung. Lokal auf C: funktioniert es.
 
Vergessen zu antworten.
es lag in meinem fall an dem ü, wie DMA schon vermutet hat
 
Danke für die Rückmeldungen!
Da achtet man mal auf durchgänige Verwendung von Unicode-Strings im Code, um solche Probleme von vornherein auszuschließen, und am Ende konvertiert ein neues C++ Feature den Dateipfad implizit zurück nach ASCII und macht Umlaute kaputt.. (Kontext)

Wie dem auch sei, ich habe das Problem inzwischen lösen können und eine neue Version 2.1 veröffentlicht: https://github.com/enlyze/S7-Project-Explorer/releases/tag/2.1
Der Link aus dem ersten Post verweist jetzt auch auf Version 2.1.
 
Vielen Dank! Nun funktioniert es zuverlässig mit Ordnern mit Umlauten.
Hatte da aber noch ein paar kleine Wünsche bzw. Anregungen, die allerdings nicht wichtig sind.

* Wenn man eine Projekt-Datei ausgewählt hat und dann die Fenstergröße ändert, dann verwischt der Text der Projektdatei irgendwie.
* Beim Export wäre schön, wenn man zwischen deutscher und internationaler Mnemonik wechseln könnte.
* In der CSV-Datei wäre mir lieber wenn Datenbaustein-Nummer und Datenbaustein-Name eine eigene Spalte hätten.
* In der CSV-Datei bei Datenbausteinen mit Strukturen fängt der Kommentar immer mit 'Struct' an.


Aber alles nicht so wichtig. Es ist eine tolle App, die ich sicher gerne immer wieder einsetze!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
* Wenn man eine Projekt-Datei ausgewählt hat und dann die Fenstergröße ändert, dann verwischt der Text der Projektdatei irgendwie.
Das soll natürlich nicht passieren. Konnte das Problem dank deines Bugreports nachvollziehen und habe gerade Version 2.2 mit einem entsprechenden Fix veröffentlicht :)

Die anderen Wünsche kann ich leider erstmal nicht umsetzen. Wir haben intern auf das aktuelle CSV-Format standardisiert und möchten daher nicht mehrere Formate parallel unterstützen.
Der "Struct" Kommentar wird bewusst bei Struct-Variablen hinzugefügt, um diese eindeutig von anderen Variablen unterscheiden zu können. Möglich sind hier auch "In", "Out", "InOut" und "Var" für entsprechende VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT sowie VAR Blöcke im MC5-Code.
 
Hallo Colin!

Vielen Dank! Die Änderung werde ich mir anschauen.
Von dem tollen Code kann ich noch viel lernen, die anderen Änderungen habe ich heute für mich schon umgesetzt. Ich habe mir schon gedacht, dass für euch das Format so bleiben muss.

Schöne Grüsse
funkey
 
Super Topl.

Wenn du noch infos zu anderen Strukturen usw im S7 Programm brauchst, ich hab da einiges in meine Toolbox (mit hilfe von einigen im Forum hier) eingebaut, und auch bisschen was dokumentiert.

 
Zurück
Oben