TIA Tool - TIA Project Browser

Jochen Kühner

Level-3
Beiträge
4.359
Reaktionspunkte
597
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hab in letzter Zeit mal an einem Tool für TIA Portal gearbeitet.

Im Moment heißt es "TIA Project Browser". Ist im Moment sehr technisch, man kann das TIA File sehr low Level analysieren. Aber man kann es im Moment z.b. nutzen um Bilder aus einem TIA Projekt zu extrahieren.
Es sollte alle TIA Files der Versionen 10.5 - 19 lesen können, jedoch ist der 10.5 support noch etwas eingeschränkt, da bin ich noch am arbeiten. Auch gehen sicher noch nicht alle Typen die in einem TIA Projekt enthalten sind (bspw. hab ich noch nie ein WinCC Professional Projekt probiert).

Was ist mein Ziel? Irgendwann soll es ein Betrachter für TIA Projekte werden. Dazu will ich die Bausteine in das Format konvertieren, das das "Simatic Automation Compare Tool" versteht. Jedoch ist das noch nicht fertig.
Vlt. kann ich das Tool später auch direkt einbinden. (Muss ich mal mit Siemens klären ob ich das darf)

Ist im Moment nur eine Tech preview...

Vorteil ist auch, man kann direkt Gepackte Projekte öffnen, ohne vorher zu entpacken.

Auch Dank an alle im Forum zu Infos über das Dateiformat.

Achso, das Tool läuft auch unter MacOS, und sollte auch unter Linux (hab ich aber nicht probiert).
Unter MacOS starte Ich es so: (Ihr braucht DotNet8)
dotnet TiaAvaloniaProjectBrowser.Desktop.dll

Achso, ich versuche auch noch WinCC Unified Screens in eine kleine HTML Vorschau umzuwandeln, jedoch ist das noch nicht ausgereift, ich wandle nur ein paar controls in HTML Entsprechungen um, das könnte man aber natürlich noch ausbauen.


1727640485819.png
1727640507387.png
1727640530650.png
 
So, noch eine Kleinigkeit, Vorschau der Images im Tree.

V10.5 Projekte sollten nun auch bis zu den Bausteinen gehen, alle Infos darin hab ich aber noch nicht.


Die Frage nun, was wünscht Ihr euch von so einem Tool?
Wie gesagt, mein Ziel ist ein Betrachter von Bausteinen, ohne das man das TIA Projekt öffnen oder entpacken muss.
Wenn man eben mal schnell in ein Projekt schauen will.

Aber vl.t sind ja auch andere Ideen vorhanden, mal schauen was Ich noch einbaue.
Im Moment ist das ganze eher nur eine Demo der Bibliothek für TIA File Zugriff.

1727804143110.png
 
1727848144005.png
Dise Sicherungen sind im Prinzip eine 1:1 Kopie des SPS-Inhalts, inklusive Aktualwerte, zum betreffenden Zeitpunkt.
Einzige mir bekannte Möglichkeit an die enthaltenen Infos ranzukommen ist, diese Sicherungen in eine identische, physische SPS einzuspielen & online zu gehen.
Export als .s7pbkp-Datei ist möglich, habe aber noch keinen Weg gefunden aus dem enthaltenen Kauderwelsch schlau zu werden :/
 
Frage am Rande, wie groß stehen die Chancen, so ein wirklich intressantes Projekt, als Open Source zu veröffenlichen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhang anzeigen 81813
Dise Sicherungen sind im Prinzip eine 1:1 Kopie des SPS-Inhalts, inklusive Aktualwerte, zum betreffenden Zeitpunkt.
Einzige mir bekannte Möglichkeit an die enthaltenen Infos ranzukommen ist, diese Sicherungen in eine identische, physische SPS einzuspielen & online zu gehen.
Export als .s7pbkp-Datei ist möglich, habe aber noch keinen Weg gefunden aus dem enthaltenen Kauderwelsch schlau zu werden :/
Kannst du mir sagen wie ich so eine Sicherung erstelle? Ich habe den Abschnitt zwar, kann da aber nix machen.

Dann schaue ich ob ich die lesen kann
 
Kannst du mir sagen wie ich so eine Sicherung erstelle?

Vorgehen​

Um eine Sicherung der aktuellen Projektierung einer CPU zu erstellen, gehen Sie folgendermaßen vor:
  1. Selektieren Sie die CPU in der Projektnavigation.
  2. Wählen Sie im Menü "Online" den Befehl "Sicherung von Online-Gerät laden".
    Gegebenenfalls müssen Sie das Passwort für lesenden Zugriff auf die CPU eingeben und bestätigen, dass die CPU in den Betriebszustand "STOP" versetzt wird.
Quelle: Sicherung der Projektierung eines Geräts
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Anhang anzeigen 81813
Dise Sicherungen sind im Prinzip eine 1:1 Kopie des SPS-Inhalts, inklusive Aktualwerte, zum betreffenden Zeitpunkt.
Einzige mir bekannte Möglichkeit an die enthaltenen Infos ranzukommen ist, diese Sicherungen in eine identische, physische SPS einzuspielen & online zu gehen.
Export als .s7pbkp-Datei ist möglich, habe aber noch keinen Weg gefunden aus dem enthaltenen Kauderwelsch schlau zu werden :/

Also man bekommt wohl eine Binärstruktur je BlockTyp und nummer:

1727862365376.png

sollte in der geuploadeten version auch schon enthalten sein, jedoch ohne die liste unten...

Sind das dann alle DB's?
Oder ist in dem Backup auch das Programm?

Also direkt im Proj. File sind auf jeden fall auch nur die Binärdaten
 
Sind das dann alle DB's?
Oder ist in dem Backup auch das Programm?
Das Online Backup ist eine Momentaufnahme der SPS mit allem.
Also wirklich allem, incl. den in diesem Moment gültigen Aktualwerte.
So sehen die Infos als HexString aus...

Kann im Moment nix damit anfangen...
Ich hab leider auch nichts damit anfangen können bzw. keine Möglichkeit gefunden was lesbares daraus zu extrahieren :(
Schätze da braucht man detaillierte Doku darüber was der TIA-Compiler wie generiert & auf die SPS spielt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja... ist sicher für sich selbst nochmals ein riesen aufwand....
DB Daten könnte man ja finden wenn man ein bestimmtes muster an Daten in den DB schreibt, bspw int mit "0xffff" gefolgt von einem mit 0xaaaa gefolgt von ... usw...
Dann sucht man in den binärblöcken... und man kann weiter vorgehen, an den daten was ändern, schauen was sich im block ändert. Dann die struktur anpassen, schauen was sich ändert... usw...
 
Ich möchte mal annehmen, daß das dann auch eher der Benärcode ist, der auf der SPS gelandet ist. Vermutlich gehst Du da in Richtung "decompilierung".
Aber @Botimperator : Kann man die Sicherung nicht in PLCSIM einspielen und sich dann ansehen? Ist zwar nicht der elegante Weg aber zumindest brauchst Du keine identische Hardware. Oder woran scheitert es bei PLCSIM?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn man die Online Sicherung Analysiert muss man beachten, die Daten sind dort denke ich in BigEndian.
Die ersten paar bytes sollten ein Header sein, bytes 15-16 sind die länge der folgenden Daten.
Bei 2 Zeilen passt das nicht, die haben im header aber komplett andere bytes...
Nr1 ist entweder 2 oder 3 bei mir
Nr3 ist fortlaufend, wird aber wieder 1 wenn sich Nr1 ändert...



1727885367633.png
 
Kann man die Sicherung nicht in PLCSIM einspielen und sich dann ansehen? Ist zwar nicht der elegante Weg aber zumindest brauchst Du keine identische Hardware. Oder woran scheitert es bei PLCSIM?
Das wäre viel zu einfach (wir reden hier schließlich über das große S).
Das laden in eine virtuelle SPS wird vom TIA unterbunden.
Ob das technische Gründe hat oder eine künstliche Beschränkung ist, kann ich nicht sagen.

Die aktuell einzige Möglichkeit an den Inhalt einer Online Sicherung zu kommen ist diese auf eine physische CPU zu spielen.
Dabei muss sowohl die Hardwareversion, also auch die Firmware mit der Ursprungs-SPS überein stimmen.
Es ist keinerlei Abweichung zulässig, weder neuer noch älter.

Wenn man die Online Sicherung Analysiert muss man beachten, die Daten sind dort denke ich in BigEndian.
Die ersten paar bytes sollten ein Header sein, bytes 15-16 sind die länge der folgenden Daten.
Bei 2 Zeilen passt das nicht, die haben im header aber komplett andere bytes...
Nr1 ist entweder 2 oder 3 bei mir
Nr3 ist fortlaufend, wird aber wieder 1 wenn sich Nr1 ändert...
Meine Hoffnung war eigentlich, das ich etwas ganz banales übersehen hätte & du die Dinger einfach so "it's magic, bitch😎"-mäßig aufzaubern hättest können.

Ich denke nicht, dass es zu deinen Projekt-Prioritäten passt dich mit obskuren Sicherungsdateien auseinander zu setzen.
Erst mal TIA selbst, das ist garstig genug.
Die Sicherungen öffnen zu können wäre Sahnehäubchen :)
 
Ich denke in TIA wird es zumindest kein Code zum zurückübersetzen geben... Die laden ja auch immer das ganze Projekt XML zeugs in die PLC, d.h. die brauchen dort kein zurückübersetzen.
Und ich denke die Daten vom Online abzug, werden dann einfach wieder in die Steuerung geknallt.

D.h. das ist schon ne aufgabe wenn man das supporten will...
 
Zurück
Oben