{"id":13755,"date":"2023-02-03T09:09:57","date_gmt":"2023-02-03T09:09:57","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=13755"},"modified":"2023-02-28T15:13:27","modified_gmt":"2023-02-28T15:13:27","slug":"modbus-rs485","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=13755","title":{"rendered":"Modbus (RS485)"},"content":{"rendered":"<h3>Wikipedia<\/h3>\n<p><a href=\"https:\/\/de.wikipedia.org\/wiki\/Modbus\">Modbus<\/a><\/p>\n<h3>Software<\/h3>\n<p><a href=\"https:\/\/www.modbustools.com\/modbus_poll.html\">Modbus Poll<\/a><br \/>\n<a href=\"https:\/\/www.modbustools.com\/download.html\">Modbus Poll Download<\/a><\/p>\n<h3>Shop<\/h3>\n<p><a href=\"https:\/\/www.bv-control.ch\/produkt\/usb-rs485i\/\">USB-RS485i<\/a><br \/>\n<a href=\"https:\/\/www.ramser-elektro.at\/shop\/module-sensoren-adapter-und-co\/adapter-usb-auf-rs485-modbus\/\">ADAPTER USB AUF RS485 \/ MODBUS<\/a><\/p>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>Fehlercode<\/h1>\n<p><a href=\"https:\/\/ipc2u.de\/artikel\/wissenswertes\/modbus-rtu-einfach-gemacht-mit-detaillierten-beschreibungen-und-beispielen\/\">Modbus RTU einfach gemacht mit detaillierten Beschreibungen und Beispielen<\/a><\/p>\n<ul>\n<li>DCON Utility Pro mit Unterst\u00fctzung f\u00fcr Modbus RTU, ASCII, DCON<\/li>\n<li>Modbus Master Tool mit Unterst\u00fctzung f\u00fcr Modbus RTU, ASCII, TCP<\/li>\n<li>Modbus TCP client mit Modbus-TCP-Unterst\u00fctzung<\/li>\n<\/ul>\n<table class=\"table table-bordered table-hover text-center\">\n<tbody>\n<tr>\n<th class=\"text-center\">Funktionscode aus der Anfrage<\/th>\n<th class=\"text-center\">Ge\u00e4nderter Funktionscode als Antwort<\/th>\n<\/tr>\n<tr>\n<td>01 (01 hex) 0000 0001<br \/>(Lies digitalen Ausgang!)<\/td>\n<td>129 (81 hex) 1000 0001<br \/>(Konnte digitalen Ausgang nicht lesen.)<\/td>\n<\/tr>\n<tr>\n<td>02 (02 hex) 0000 0010<br \/>(Lies digitalen Eingang!)<\/td>\n<td>130 (82 hex) 1000 0010<br \/>(Konnte digitalen Eingang nicht lesen.)<\/td>\n<\/tr>\n<tr>\n<td>03 (03 hex) 0000 0011<br \/>(Lies analogen Ausgang!)<\/td>\n<td>131 (83 hex) 1000 0011<br \/>(Konnte analogen Ausgang nicht lesen.)<\/td>\n<\/tr>\n<tr>\n<td>04 (04 hex) 0000 0100<br \/>(Lies analogen Eingang!)<\/td>\n<td>132 (84 hex) 1000 0100<br \/>(Konnte analogen Eingang nicht lesen.)<\/td>\n<\/tr>\n<tr>\n<td>05 (05 hex) 0000 0101<br \/>(Setze einen digitalen Ausgang!)<\/td>\n<td>133 (85 hex) 1000 0101<br \/>(Konnte den digitalen Ausgang nicht setzen.)<\/td>\n<\/tr>\n<tr>\n<td>06 (06 hex) 0000 0110<br \/>(Setze einen analogen Ausgang!)<\/td>\n<td>134 (86 hex) 1000 0110<br \/>(Konnte den Analogen Ausgang nicht setzen.)<\/td>\n<\/tr>\n<tr>\n<td>15 (0F hex) 0000 1111<br \/>(Setze mehrere digitale Ausg\u00e4nge!)<\/td>\n<td>143 (8F hex) 1000 1111<br \/>(Beim Setzen der digitalen Ausg\u00e4nge ist ein Fehler aufgetreten.)<\/td>\n<\/tr>\n<tr>\n<td>16 (10 hex) 0001 0000<br \/>(Setze mehrere analoge Ausg\u00e4nge!)<\/td>\n<td>144 (90 hex) 1001 0000<br \/>(Beim Setzen der analogen Ausg\u00e4nge ist ein Fehler aufgetreten.)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Erl\u00e4uterung der Fehlercodes<\/p>\n<table class=\"table table-bordered table-hover\">\n<tbody>\n<tr>\n<td>01<\/td>\n<td>Unbekannter Funktionscode.<\/td>\n<\/tr>\n<tr>\n<td>02<\/td>\n<td>Die in der Anfrage angegebene Registeradresse ist nicht verf\u00fcgbar.<\/td>\n<\/tr>\n<tr>\n<td>03<\/td>\n<td>Der im Abfragedatenfeld enthaltene Wert ist ein ung\u00fcltiger Wert.<\/td>\n<\/tr>\n<tr>\n<td>04<\/td>\n<td>Ein nicht behebbarer Fehler trat auf, w\u00e4hrend der Slave versuchte, die angeforderte Aktion auszuf\u00fchren.<\/td>\n<\/tr>\n<tr>\n<td>05<\/td>\n<td>Der Slave hat die Anfrage angenommen und bearbeitet sie, aber es dauert lange. Diese Antwort verhindert, dass der Host einen Zeit\u00fcberschreitungsfehler erzeugt.<\/td>\n<\/tr>\n<tr>\n<td>06<\/td>\n<td>Der Slave ist mit der Verarbeitung eines Befehls besch\u00e4ftigt. Der Master muss die Nachricht sp\u00e4ter wiederholen, wenn der Slave freigegeben wird.<\/td>\n<\/tr>\n<tr>\n<td>07<\/td>\n<td>Der Slave kann die in der Anforderung angegebene Programmfunktion nicht ausf\u00fchren. Dieser Code wird bei einer erfolglosen Programmanforderung mit Funktionen mit den Nummern 13 oder 14 zur\u00fcckgegeben. Der Master muss Diagnoseinformationen oder Fehlerinformationen vom Slave anfordern.<\/td>\n<\/tr>\n<tr>\n<td>08<\/td>\n<td>Der Slave hat beim Lesen des Erweiterungsspeichers einen Parit\u00e4tsfehler festgestellt. Der Master kann die Anforderung wiederholen, aber normalerweise sind in solchen F\u00e4llen Reparaturen erforderlich.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>ModbusTool<\/h1>\n<p><a href=\"https:\/\/github.com\/ClassicDIY\/ModbusTool\">github.com\/ClassicDIY\/ModbusTool<\/a>, A modbus master and slave test tool with import and export functionality, supports TCP, UDP and RTU.<\/p>\n<table class=\"table table-bordered table-hover\">\n<tbody>\n<tr>\n<th class=\"text-center\">BYTE<\/th>\n<th class=\"text-center\">ANFRAGE<\/th>\n<th class=\"text-center\">BYTE<\/th>\n<th class=\"text-center\">ANTWORT<\/th>\n<\/tr>\n<tr>\n<td>(Hex)<\/td>\n<td>Feldname<\/td>\n<td>(Hex)<\/td>\n<td>Feldname<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>Ger\u00e4teadresse<\/td>\n<td>11<\/td>\n<td>Ger\u00e4teadresse<\/td>\n<\/tr>\n<tr>\n<td>03<\/td>\n<td>Funktionaler Code<\/td>\n<td>03<\/td>\n<td>Funktionaler Code<\/td>\n<\/tr>\n<tr>\n<td>00<\/td>\n<td>Adresse des ersten Registers Hi Bytes<\/td>\n<td>06<\/td>\n<td>Anzahl der Antwortbytes bei 16bit pro Wert)<\/td>\n<\/tr>\n<tr>\n<td>6B<\/td>\n<td>Adresse des ersten Registers Lo Bytes<\/td>\n<td>AE<\/td>\n<td>Registerwert Hi #40108<\/td>\n<\/tr>\n<tr>\n<td>00<\/td>\n<td>Anzahl der Register Hi Bytes<\/td>\n<td>41<\/td>\n<td>Registerwert Lo #40108<\/td>\n<\/tr>\n<tr>\n<td>03<\/td>\n<td>Anzahl der Register Lo Bytes<\/td>\n<td>56<\/td>\n<td>Registerwert Hi #40109<\/td>\n<\/tr>\n<tr>\n<td>76<\/td>\n<td>Pr\u00fcfsumme CRC<\/td>\n<td>52<\/td>\n<td>Registerwert Lo #40109<\/td>\n<\/tr>\n<tr>\n<td>87<\/td>\n<td>Pr\u00fcfsumme CRC<\/td>\n<td>43<\/td>\n<td>Registerwert Hi #40110<\/td>\n<\/tr>\n<tr>\n<td rowspan=\"3\" colspan=\"2\"><\/td>\n<td>40<\/td>\n<td>Registerwert Lo #40110<\/td>\n<\/tr>\n<tr>\n<td>49<\/td>\n<td>Pr\u00fcfsumme CRC<\/td>\n<\/tr>\n<tr>\n<td>AD<\/td>\n<td>Pr\u00fcfsumme CRC<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre class=\"brush: plain; title: Communication with Modbus Master; notranslate\" title=\"Communication with Modbus Master\">\r\n\r\nTX: 01 03 00 00 00 00 40 44 3a\r\n03: Lies analogen Ausgang\r\n\r\nRX: 01 83 02 c0 f1\r\n83: Konnte analogen Ausgang nicht lesen.\r\n02: Die in der Anfrage angegebene Registeradresse ist nicht verf\u00fcgbar.\r\n\r\nTX: 01 03 00 06 00 40 a4 3b\r\nRX: 01 83 02 c0 f1\r\n\r\nTX: 01 03 00 06 00 04 a4 08\r\nRX: 01 03 08 00 00 03 e8 03 e8 03 e8 75 3d\r\n\r\nTX: 01 03 00 06 00 08 a4 08\r\nRX: 01 03 08 00 00 03 e8 03 e8 03 e8 00 00 00 00 00 00 89 c4\r\n<\/pre>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>YouTube<\/h1>\n<h4>Torben Ledermann<\/h4>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=jgRDVOvb_MU\">Modbus: Wie funktioniert Geb\u00e4udeautomation? &#8211; #04 Querkommunikation mit Modbus<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/playlist?list=PLQot1M29bpxwXc9u4Nb5WtS7qBJTFCoGN\">KNX &#8211; Videoserie<\/a>, Playlist<br \/>\n<a href=\"https:\/\/www.youtube.com\/playlist?list=PLQot1M29bpxz1XTEc5WnDSUnIgvqxJoqH\">Grundlagen &#8211; GA<\/a><\/p>\n<ul>\n<li>Wie funktioniert Geb\u00e4udeautomation? &#8211; #01 Was ist ein Feldbussystem?<\/li>\n<li>Wie funktioniert Geb\u00e4udeautomation? &#8211; #02 Was ist EnOcean?<\/li>\n<li>DALI: Wie funktioniert Geb\u00e4udeautomation? &#8211; #03 Lichtsteuerung mit DALI<\/li>\n<li>Modbus: Wie funktioniert Geb\u00e4udeautomation? &#8211; #04 Querkommunikation mit Modbus<\/li>\n<\/ul>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>Protocol Description<\/h1>\n<p><a href=\"https:\/\/www.modbustools.com\/modbus.html\">Protocol Description<\/a><br \/>\n<a href=\"https:\/\/www.ni.com\/de-ch\/innovations\/white-papers\/14\/the-modbus-protocol-in-depth.html\">What is the Modbus Protocol &#038; How Does It Work?<br \/>\nUpdated Dec 7, 2022<\/a><br \/>\n<a href=\"https:\/\/www.kunbus.de\/modbus-rtu-grundlagen\">Modbus RTU Grundlagen<\/a><br \/>\n<a href=\"https:\/\/ipc2u.de\/artikel\/wissenswertes\/modbus-rtu-einfach-gemacht-mit-detaillierten-beschreibungen-und-beispielen\/\">Modbus RTU einfach gemacht mit detaillierten Beschreibungen und Beispielen<\/a><\/p>\n<p><a href=\"https:\/\/www.m-system.co.jp\/mssenglish\/service\/emmodbus.pdf\">Modbus Protocol Reference Guide<\/a> (PDF)<\/p>\n<table>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_query.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_query-300x130.png\" alt=\"\" width=\"300\" height=\"130\" class=\"alignleft size-medium wp-image-13872\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_query-300x130.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_query.png 567w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_response.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_response-300x155.png\" alt=\"\" width=\"300\" height=\"155\" class=\"alignleft size-medium wp-image-13873\" srcset=\"https:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_response-300x155.png 300w, https:\/\/blog.bachi.net\/wp-content\/uploads\/2023\/02\/modbus_rtu_response.png 567w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/table>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>Mikrocontroller<\/h1>\n<h3>YouTube<\/h3>\n<p>a href=&#8221;https:\/\/www.youtube.com\/watch?v=zrT1bVjxHdk&#8221;>BitBastelei #321 &#8211; WLAN-Stromz\u00e4hler mit Modbus, ESP8266\/Arduino und SDM120<\/a><\/p>\n<h3>GitHub<\/h3>\n<p><a href=\"https:\/\/github.com\/reaper7\/SDM_Energy_Meter\">github.com\/reaper7\/SDM_Energy_Meter<\/a><\/p>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>MinimalModbus<\/h1>\n<p><a href=\"https:\/\/minimalmodbus.readthedocs.io\/en\/stable\/readme.html\">MinimalModbus<\/a><\/p>\n<h3>GitHub<\/h3>\n<p><a href=\"https:\/\/github.com\/pyhys\/minimalmodbus\">github.com\/pyhys\/minimalmodbus<\/a><\/p>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>SmartEVSE-3<\/h1>\n<p><a href=\"https:\/\/github.com\/SmartEVSE\/SmartEVSE-3\/issues\/1\">Unable to read modbus on V3 #1<\/a><\/p>\n<h3>GitHub<\/h3>\n<p><a href=\"https:\/\/github.com\/SmartEVSE\/SmartEVSE-3\">github.com\/SmartEVSE\/SmartEVSE-3<\/a>, Smart Electric Vehicle Charging Station (EVSE)<br \/>\n<a href=\"https:\/\/github.com\/SmartEVSE\/Sensorbox-2\">github.com\/SmartEVSE\/Sensorbox-2<\/a>, Sensorbox-2 will measure three phase current with CT&#8217;s or a Smart Meter connection, and send this data to a SmartEVSE<\/p>\n<p><!-- ------------------------------------------------------------ --><\/p>\n<hr\/>\n<h1>eModbus<\/h1>\n<p><a href=\"https:\/\/emodbus.github.io\/\">eModbus<\/a><\/p>\n<h3>GitHub<\/h3>\n<p><a href=\"https:\/\/github.com\/eModbus\/eModbus\">github.com\/eModbus\/eModbus<\/a>, Modbus library for RTU, ASCII and TCP protocols. Primarily developed on and for ESP32 MCUs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wikipedia Modbus Software Modbus Poll Modbus Poll Download Shop USB-RS485i ADAPTER USB AUF RS485 \/ MODBUS Fehlercode Modbus RTU einfach gemacht mit detaillierten Beschreibungen und Beispielen DCON Utility Pro mit Unterst\u00fctzung f\u00fcr Modbus RTU, ASCII, DCON Modbus Master Tool mit Unterst\u00fctzung f\u00fcr Modbus RTU, ASCII, TCP Modbus TCP client mit Modbus-TCP-Unterst\u00fctzung Funktionscode aus der Anfrage [&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-13755","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/13755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13755"}],"version-history":[{"count":16,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/13755\/revisions"}],"predecessor-version":[{"id":13892,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/13755\/revisions\/13892"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}