Betriebsdatenerfassung aus S7-300 mit RevPi Codesys

moritz.federer

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich bin auf der Suche nach einer eleganten Lösung, um eine Betriebsdatenerfassung aus einer S7-300 auf einem RevolutionPi zu programmieren.
Die Idee ist, dass aus der Steuerung welche auf einer Siemens S7-300 programmiert wurde via Profinet-Gateway sämtliche benötigten DBs auf das RevolutionPi übertragen werden können.
Dazu schreibt das RevPi einen Integerwert welcher der DB-Nummer entspricht in das Profinet-Gateway, die Siemens liest diese Nummer aus und beginnt den DB gestückelt in Päckchen à 64Byte in das Gateway zu schreiben.

Soweit so gut. Nun habe ich allerdings das Problem, dass ich mich zwar mit Siemens ziemlich gut auskenne (auch mit SCL), aber mit CODESYS habe ich noch wenig Erfahrung.
Der Grundlegendste Unterschied liegt wohl darin, dass in Codesys keine DBs vorgesehen sind.

Vielleicht ein konkretes Beispiel um die Problematik zu beschreiben. Auf der S7-300 liegt ein Datenbaustein mit Einstelldaten. Dieser Datenbaustein hat eine Struktur mit Variablen mit verschiedenen Datentypen (Integer, Real, Bool usw). Ich kann nun den Datenbaustein in Bytes zerstückeln und übertragen.

Im RevolutionPi kann ich die Bytes nun z.B. in einem Array wieder aneinanderreihen und habe so die Rohdaten des DB wieder an einem Stück irgendwo im Speicher.

-> Nun muss ich aber diese Rohdaten wieder in die Struktur des ursprünglichen DB auf der S7 zurückbringen und in Variablen mit den entsprechenden Datentypen schreiben. (BLKMOV wäre hier mein bevorzugtes S7-Kommando. :ROFLMAO:)

-> Gibt es hierzu einen eleganten Weg wie ich dies in CODESYS anstellen kann?

Danach möchte ich dann die S7-spezifischen Datentypen wie z.B. Date_And_Time konvertieren, benötigte Daten selektieren und in eine SQ-Lite Datenbank einspeisen. Auf diese kann ich dann via Webserver zugreifen und die Daten auswerten.

Übrigens, der Grund wieso ich die DBs komplett übertragen möchte ist zum einen etwas Bequemlichkeit, zum anderen aber auch, dass ich so zu trackende Variablen direkt in der Betriebsdatenerfassung auf dem RevolutionPi selektieren kann und nichts mehr auf der S7 umprogrammieren muss.


Ich freue mich auf eure Anregungen und Ideen.

Gruss Moritz
 
Zuletzt bearbeitet:
Zurück
Oben