RS232 auf Modbus-Converter

SCADAstudent

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute, ich bin seit Wochen am Verzweifeln:
Ich habe an der Hochschule bei uns eine Projektarbeit, in der ich eine
Wetterstation an eine SCADA-Software anschließen soll (ABB microSCADA
SYS600). Die Wetterstation sendet im 10-Sekunden-Takt die aktuellen
Messwerte über RS232 an den SCADA-Server. Das ganze läuft über einen
Wandler an der Station RS232 auf Ethernet, und auf dem Server kommen die
Daten aus einem virtuellen COM-port wieder raus. Soweit einwandfrei.
Hier mal das Datenpacket:

<stx><lf>yymmddhhmmss;<sp><sp><sp>[Messwert1];<sp><sp><sp>[Messwert2];<sp><sp><sp>[MesswertN];<sp><etx>[bcc1][bcc2][bcc3]<cr>

Problem: Ich bekomme die Daten nicht in die SCADA-Software. Scheinbar
ist das Protokoll der Wetterstation ein proprietäres, selbsterdachtes
"Protokoll". In der SCADA-Software kann ich aber nirgends das Datenpaket
definieren(Messwerte, Trennzeichen, Steuerzeichen oder ähnliches). Ich
habe aber in SCADA einen NET-Knoten erstellen können, an den Stationen
mit verschiedenen Protokollen angeschlossen werden können (u.A. MODBUS,
ADLP, ANSI X3.28, diverse IEC-Protokolle, etc.). Aber keines der
Protokolle entspricht dem der Wetterstation bzw. ich kann keine genaue
Anpassung an die Schnittstelle machen.
Daher muss ich wohl die Daten der Wetterstation irgendwie auf dem
SCADA-Server in ein brauchbares Format wandeln (z.B MODBUS).
Gibt es vernünftige Tools dafür? Daten vom COM-Port abgreifen, wandlen
und über einen weiteren COM-Port wieder in System bringen?
Ich hoffe einer von euch hat eine Idee und kann mir helfen.
Besten Dank
Robert
 
Was komplett fertiges wird es da bestimmt nicht geben.

Der gängige Weg wäre für sowas, dass der Hersteller der Wetterstation einen OPC-Server mitliefert. Denn jede ernstzunehmende Scada-Software hat einen OPC-Client dabei.
Wenn deine bestehende Wetterstation so etwas nicht zur Verfügung stellt, musst du wohl etwas selber programmieren.

Kann dein Scada System Daten aus Textdateien / CSV-Dateien importieren? Dann würde ich die Daten von der Wetterstation in eine Textdatei schreiben und diese vom Scada-System einlesen lassen.

Falls das nicht geht und nur über die von dir genannten Protokolle, würde ich mich für ein möglichst einfaches Protokoll entscheiden. Ein meiner Meinung nach sehr einfaches Protokoll ist Modbus-TCP.
Möglichkeiten sowas umzusetzen gibt es viele. So als Idee würde ich das in Python machen, und dort einen fertigen Modbus-Protokollstack (z.B. pymodbus) verwenden. Das Programm liest dann die Daten aus deiner Wetterstation ein und stellt sie als Modbus-TCP Variablen deinem Scada-System zur Verfügung. Mal gerade eben ist das aber auch nicht gemacht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Andere Idee:
Den RS232-Ethernet Wandler an der Wetterstation durch eine einfache SPS ersetzen die eine RS232-Schnittstelle hat, und eines der Protokolle deines Scada-Systems ab Werk unterstützt. Z.B. für Modbus-TCP einen Beckhoff Busklemmen-Controller (BC) mit RS232-Scheibe. Programmieren musst du diesen selbstverständlich trotzdem, brauchst dich dort aber nicht mit Modbus-Details abgeben, weil es reicht die Daten in einem speziellen Speicherbereich abzulegen.
 
Also ich würde ersteres wählen. Unter .NET ist mit Hilfe von nmodbus (kostenlose Bibliothek) in wenigen Minuten ein Modbus/TCP Server erstellt und für serielle Kommunikation gibt es hunderte Beispiele im Netz.
 
Danke!

Hallo zusammen, Danke für die Hilfestellung.
Das mit der Modbus-Bibliothek in .Net werde ich mal ausprobieren. Obwohl die Lösung mit ner einfachen Beckhoff-SPS auch sexy wäre ;-)
Aber da spielt die Hochschule nicht mit. Darf halt kein Geld kosten...
Bin grad dabei das Internet nach Codebeispielen auf den Kopf zu stellen, find aber kaum was dazu. Vermutlich, weil ich die richtigen Quellen nicht kenne.
Gruß
Robert
 
Zurück
Oben