{"id":166,"date":"2011-06-16T14:15:19","date_gmt":"2011-06-16T14:15:19","guid":{"rendered":"http:\/\/www.art-events.de\/weblog\/?p=166"},"modified":"2021-07-23T21:31:55","modified_gmt":"2021-07-23T21:31:55","slug":"rs485-datenlogger-mit-sql-gateway","status":"publish","type":"post","link":"https:\/\/www.art-events.de\/weblog\/rs485-datenlogger-mit-sql-gateway\/","title":{"rendered":"RS485 Datenlogger mit SQL Gateway"},"content":{"rendered":"<p>Heizungen, W\u00e4rmepumpen, Sensoren oder andere Datenquellen &#8211; viele Ger\u00e4te bieten RS232 \/ RS485 Schnittstellen f\u00fcr die Daten\u00fcbertragung. Im Prinzip ist das System einfach: RS232 ist eine genormte Schnittstelle bei der ein Ger\u00e4t \u00fcber eine kurze Distanz (typ. 2&#8230;5 Meter) angeschlossen werden kann. RS485 ist ebenfalls genormt, jedoch in der Lage bereits mehrere Ger\u00e4te \u00fcber eine Distanz von einigen Hundert Metern bis zu einem Kilometer anzuschliessen.<\/p>\n<p><!--more--><\/p>\n<p><strong>Entscheidend: das Datenformat<\/strong><\/p>\n<p>Die Schnittstelle alleine garantiert jedoch nicht, dass Sie diese Daten empfangen k\u00f6nnen. Die Schnittstelle sorgt zuallervorderst erst einmal daf\u00fcr, dass das Kabel passt. Wenn Ihre W\u00e4rmepumpe \u00fcber eine RS485 Schnittstelle verf\u00fcgt, ben\u00f6tigen Sie auch einen RS485 Schnittstelle am PC. Wenn Ihr PC &#8222;nur&#8220; \u00fcber einen USB Port verf\u00fcgt, ben\u00f6tigen Sie einen RS232\/485 Wandler auf USB, damit die beiden Ger\u00e4te kommunizieren k\u00f6nnen.<\/p>\n<p>Doch wie oft im Leben: das Kabel ist nur die halbe Miete. Entscheidend ist das Datenprotokoll und das Datenformat mit dem Ihre Ger\u00e4te untereinander kommunizieren. Ungl\u00fccklicherweise gibt es hier zwar auch Normungen, aber jeder Hersteller entscheidet hier selbst, wie er seine Daten \u00fcbertr\u00e4gt. Ein paar Beispiele:<\/p>\n<p><strong>Simple ASCII<\/strong><\/p>\n<p>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\u00e4nger verwenden, um zu pr\u00fcfen, ob alle Daten richtig empfangen wurden.<\/p>\n<p><strong>Simple ASCII mit Protokoll<\/strong><\/p>\n<p>Falls die ASCII \u00dcbertragung unidirektional erfolgt, wird keine Antwort erwartet. Bei einer bidirektionalen \u00dcbertragung darf der Empf\u00e4nger antworten, ob er die Daten richtig verstanden hat. Falls nicht, wiederholt der Sender die Daten\u00fcbertragung.<\/p>\n<p>Einfache ASCII Daten mit einer unidirektionalen \u00dcbertragung werden oftmals von Barcode Scannern oder RFID Transponderleseger\u00e4ten gesendet. ASCII Daten mit einer bidirektionalen \u00dcbertragung werden von einfacheren Sensoren \u00fcbermittelt.<\/p>\n<p>Ein Beispiel aus dem Leben: Sch\u00fcler = Sensor, Lehrer = Empf\u00e4nger. Lehrer betritt die Klasse. Alle schreien durcheinander. Der Lehrer muss jetzt irgendwie versuchen das Ganze zu sortieren. (Das war die unidirektionale \u00dcbertragung.)<br \/>\nBidirektional<span style=\"color: #0000ff; font-size: small;\">, Lehrer betritt die Klasse: &#8222;Sch\u00fcler Moritz, bitte lesen Sie vor: den ersten Satz auf Seite 123.&#8220;<br \/>\nMoritz liest den Satz vor.<br \/>\nLehrer: &#8222;Danke. Moritz. Setzen&#8220;. Alternativ: &#8222;Moritz, das habe ich nicht verstanden. Bitte wiederholen&#8220;<\/span><\/p>\n<p><strong>Modbus Seriell \/ Modbus RTU<\/strong><\/p>\n<p>Das Modbus Protokoll ist bereits eine komfortable Version einer genormten seriellen bidirektionalen Daten\u00fcbertragung. Hierbei k\u00f6nnen zwischen Sender und Empf\u00e4nger 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.)<\/p>\n<p>Das Modbus Protokoll verwendet bereits einen ausgefeilten Sender \/ Empf\u00e4ngerdialog und bietet hohe \u00dcbertragungssicherheit. Typischerweise beginnt der Empf\u00e4nger 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\u00e4\u00df die Antwort, die \u00fcber Checksumme gesichert ist. Der Empf\u00e4nger erh\u00e4lt die M\u00f6glichkeit, die Checksumme zu pr\u00fcfen und darf am Ende ein OK oder ein NICHT OK senden. Modbus wird meistens dann verwendet, wenn der Sender \u00fcber viele Informationen verf\u00fcgt. Der Empf\u00e4nger kann entscheiden, welche Informationen er anfordert (alle oder nur bestimmte Register.) Modbus hat auch weiterhin den Vorteil, dass die Art der Daten\u00fcbertragung zwischen Sender und Empf\u00e4nger weitgehend genormt ist, will hei\u00dfen: wenn Sender und Empf\u00e4nger Modbus unterst\u00fctzen hat man gute Chancen eine funktionierende Daten\u00fcbertragung zu realisieren.<\/p>\n<p><strong>TRM416\/TRM816 &#8211; mit RS232\/485 Protokollsoftware<\/strong><\/p>\n<p>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\u00fcr unsere\u00a0<a href=\"https:\/\/www.terminal-systems.de\/wp\/home-2\/terminals\/\" target=\"_blank\" rel=\"noopener\">Linux Industrieterminals TRM416\/816<\/a> bieten wir bereits von Haus aus ein integriertes Modbus Protokoll, das Sie nur aufrufen m\u00fcssen. Nat\u00fcrlich m\u00fcssen Sie hierf\u00fcr nicht Linuxprogrammierer sein &#8211; die Software steht mit dem\u00a0<a href=\"https:\/\/www.terminal-systems.de\/wp\/home-2\/toolkits-de\/xmlcodegen-de\/\" target=\"_blank\" rel=\"noopener\">XML Konfigtool<\/a> zur Verf\u00fcgung. (Die Linuxprogrammierung haben wir schon erledigt.)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/www.terminal-systems.de\/w87\/images\/trm816-sensorx640.jpg\" alt=\"\" width=\"640\" height=\"480\" \/><\/p>\n<p>F\u00fcr Sie hei\u00dft das: Subroutine Modbus aufrufen und das Register angeben, dessen Werte Sie vom Sensor empfangen m\u00f6chten. Die Subroutine liefert Ihnen als Ergebnis den Abstandswert des Sensors. Was Sie jetzt mit diesem Wert unternehmen, bleibt Ihnen \u00fcberlassen. Sie k\u00f6nnen den Wert z.B. im Display anzeigen, in eine Datei speichern (die Sie sp\u00e4ter mit Excel auswerten) oder in eine SQL Datenbank schreiben&#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heizungen, W\u00e4rmepumpen, Sensoren oder andere Datenquellen &#8211; viele Ger\u00e4te bieten RS232 \/ RS485 Schnittstellen f\u00fcr die Daten\u00fcbertragung. Im Prinzip ist das System einfach: RS232 ist eine genormte Schnittstelle bei der ein Ger\u00e4t \u00fcber eine kurze Distanz (typ. 2&#8230;5 Meter) angeschlossen werden kann. RS485 ist ebenfalls genormt, jedoch in der Lage bereits mehrere Ger\u00e4te \u00fcber eine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-allgemein","entry"],"_links":{"self":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":0,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}