RS485 Datenlogger mit SQL Gateway

Heizungen, Wärmepumpen, Sensoren oder andere Datenquellen – viele Geräte bieten RS232 / RS485 Schnittstellen für die Datenübertragung. Im Prinzip ist das System einfach: RS232 ist eine genormte Schnittstelle bei der ein Gerät über eine kurze Distanz (typ. 2…5 Meter) angeschlossen werden kann. RS485 ist ebenfalls genormt, jedoch in der Lage bereits mehrere Geräte über eine Distanz von einigen Hundert Metern bis zu einem Kilometer anzuschliessen.

Entscheidend: das Datenformat

Die Schnittstelle alleine garantiert jedoch nicht, dass Sie diese Daten empfangen können. Die Schnittstelle sorgt zuallervorderst erst einmal dafür, dass das Kabel passt. Wenn Ihre Wärmepumpe über eine RS485 Schnittstelle verfügt, benötigen Sie auch einen RS485 Schnittstelle am PC. Wenn Ihr PC “nur” über einen USB Port verfügt, benötigen Sie einen RS232/485 Wandler auf USB, damit die beiden Geräte kommunizieren können.

Doch wie oft im Leben: das Kabel ist nur die halbe Miete. Entscheidend ist das Datenprotokoll und das Datenformat mit dem Ihre Geräte untereinander kommunizieren. Unglücklicherweise gibt es hier zwar auch Normungen, aber jeder Hersteller entscheidet hier selbst, wie er seine Daten überträgt. Ein paar Beispiele:

Simple ASCII

Einige Hersteller senden die Daten einfach in einem ASCII Datenformat. Am Anfang ein Startzeichen, am Ende ein Endezeichen und vielleicht noch eine Checksumme. Die Checksumme soll der Empfänger verwenden, um zu prüfen, ob alle Daten richtig empfangen wurden.

Simple ASCII mit Protokoll

Falls die ASCII Übertragung unidirektional erfolgt, wird keine Antwort erwartet. Bei einer bidirektionalen Übertragung darf der Empfänger antworten, ob er die Daten richtig verstanden hat. Falls nicht, wiederholt der Sender die Datenübertragung.

Einfache ASCII Daten mit einer unidirektionalen Übertragung werden oftmals von Barcode Scannern oder RFID Transponderlesegeräten gesendet. ASCII Daten mit einer bidirektionalen Übertragung werden von einfacheren Sensoren übermittelt.

Ein Beispiel aus dem Leben: Schüler = Sensor, Lehrer = Empfänger. Lehrer betritt die Klasse. Alle schreien durcheinander. Der Lehrer muss jetzt irgendwie versuchen das Ganze zu sortieren. (Das war die unidirektionale Übertragung.)
Bidirektional, Lehrer betritt die Klasse: “Schüler Moritz, bitte lesen Sie vor: den ersten Satz auf Seite 123.”
Moritz liest den Satz vor.
Lehrer: “Danke. Moritz. Setzen”. Alternativ: “Moritz, das habe ich nicht verstanden. Bitte wiederholen”

Modbus Seriell / Modbus RTU

Das Modbus Protokoll ist bereits eine komfortable Version einer genormten seriellen bidirektionalen Datenübertragung. Hierbei können zwischen Sender und Empfänger auch einzelne Werte detailiert abgefragt werden. (Modbus RTU ist seriell. Falls anstelle einer seriellen Leitung eine TCP Netzwerkverbindung verwendet werden soll, spricht man von Modbus TCP.)

Das Modbus Protokoll verwendet bereits einen ausgefeilten Sender / Empfängerdialog und bietet hohe Übertragungssicherheit. Typischerweise beginnt der Empfänger den Dialog und kontaktet den Sender mit der Bitte im bestimmte Werte zu liefern. Der Sender nimmt diese Aufforderung an, wertet sie aus und sendet befehlsgemäß die Antwort, die über Checksumme gesichert ist. Der Empfänger erhält die Möglichkeit, die Checksumme zu prüfen und darf am Ende ein OK oder ein NICHT OK senden. Modbus wird meistens dann verwendet, wenn der Sender über viele Informationen verfügt. Der Empfänger kann entscheiden, welche Informationen er anfordert (alle oder nur bestimmte Register.) Modbus hat auch weiterhin den Vorteil, dass die Art der Datenübertragung zwischen Sender und Empfänger weitgehend genormt ist, will heißen: wenn Sender und Empfänger Modbus unterstützen hat man gute Chancen eine funktionierende Datenübertragung zu realisieren.

TRM416/TRM816 – mit RS232/485 Protokollsoftware

So weit jetzt die Einleitung. Jetzt zu einer beispielhaften Aufgabenstellungen. Angenommen Sie haben einen Entfernungssensor Typ ULTRASONIC. Davon wollen Sie gleich zwei Sensoren anschliessen. Die Sensoren verwenden das Modbus Protokoll. Für unsere Linux Industrieterminals TRM416/816 bieten wir bereits von Haus aus ein integriertes Modbus Protokoll, das Sie nur aufrufen müssen. Natürlich müssen Sie hierfür nicht Linuxprogrammierer sein – die Software steht mit dem XML Konfigtool zur Verfügung. (Die Linuxprogrammierung haben wir schon erledigt.)

Für Sie heißt das: Subroutine Modbus aufrufen und das Register angeben, dessen Werte Sie vom Sensor empfangen möchten. Die Subroutine liefert Ihnen als Ergebnis den Abstandswert des Sensors. Was Sie jetzt mit diesem Wert unternehmen, bleibt Ihnen überlassen. Sie können den Wert z.B. im Display anzeigen, in eine Datei speichern (die Sie später mit Excel auswerten) oder in eine SQL Datenbank schreiben…

 

Schreibe einen Kommentar