<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modbus</id>
	<title>Modbus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modbus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modbus&amp;action=history"/>
	<updated>2026-05-21T09:12:00Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Modbus&amp;diff=102106&amp;oldid=prev</id>
		<title>imported&gt;Gak69: Tag-Fehler korrigiert</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modbus&amp;diff=102106&amp;oldid=prev"/>
		<updated>2026-03-13T01:30:55Z</updated>

		<summary type="html">&lt;p&gt;Tag-Fehler korrigiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Modbus-Protokoll&amp;#039;&amp;#039;&amp;#039; ist ein [[Kommunikationsprotokoll]], das auf einer [[Client-Server-Modell|Client/Server-Architektur]] basiert. Es wurde 1979 von Gould-[[Modicon]] für die Kommunikation mit seinen [[Speicherprogrammierbare Steuerung|speicherprogrammierbaren Steuerungen]] ins Leben gerufen.&amp;lt;ref&amp;gt;{{Webarchiv |url=https://www.kunbus.de/modbus |text=Modbus – Das Kommunikationsprotokoll für die Industrie |wayback=20230606233607}}&amp;lt;/ref&amp;gt; In der Industrie hat sich der Modbus zu einem [[De-facto-Standard]] entwickelt, da es sich um ein offenes Protokoll handelt. Seit 2007 ist die Version Modbus/TCP Teil der Norm [[IEC 61158]].&lt;br /&gt;
&lt;br /&gt;
== Grundlagen ==&lt;br /&gt;
Mittels Modbus können ein Client (früher als Master bezeichnet) und mehrere Server (früher als Slave bezeichnet) verbunden werden. Als Client werden Geräte bezeichnet, die Abfragen einleiten, z.&amp;amp;nbsp;B. ein Prozessleitsystem. Server sind die Geräte, die auf Client-Abfragen reagieren und Daten liefern, z.&amp;amp;nbsp;B. Sensoren.&amp;lt;ref name=&amp;quot;ModBusSpec&amp;quot;&amp;gt;{{Internetquelle |autor=Modbus Organization, Inc. |url=https://www.modbus.org/file/secure/modbusprotocolspecification.pdf |titel=MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3|werk= |hrsg=Modbus Organization, Inc. |datum= |abruf=2026-03-11 |sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei Versionen: Eine für die [[serielle Schnittstelle]] ([[EIA-232]] und [[EIA-485]])&amp;lt;ref name=ModBusSerial&amp;gt;{{Internetquelle |autor=Modbus Organization, Inc. |url=https://www.modbus.org/file/secure/modbusoverserial.pdf |titel=MODBUS over Serial Line - Specification and Implementation Guide |werk= |hrsg=Modbus Organization, Inc. |datum= |abruf=2026-03-12 |sprache=en}}&amp;lt;/ref&amp;gt; und eine für [[Ethernet]].&lt;br /&gt;
&lt;br /&gt;
Bei der Datenübertragung werden drei verschiedene Betriebsarten unterschieden:&lt;br /&gt;
* Modbus/RTU&lt;br /&gt;
* Modbus/ASCII&lt;br /&gt;
* Modbus/TCP&lt;br /&gt;
&lt;br /&gt;
Jeder Busteilnehmer muss eine eindeutige Adresse besitzen. Die Adresse 0 ist dabei für einen [[Broadcast]] reserviert. Jeder Teilnehmer darf Nachrichten über den Bus senden. In der Regel wird dies jedoch durch den Client initiiert und ein adressierter Server antwortet.&lt;br /&gt;
&lt;br /&gt;
Lese- und Schreibzugriffe sind auf folgende Objekttypen möglich:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Objekttyp&lt;br /&gt;
! Zugriff&lt;br /&gt;
! Größe&lt;br /&gt;
!Funktionscode &lt;br /&gt;
|-&lt;br /&gt;
|Einzelner Ein-/Ausgang „Coil“&lt;br /&gt;
|Lesen &amp;amp; Schreiben||1-bit&lt;br /&gt;
|01 / 05 / 15&lt;br /&gt;
|-&lt;br /&gt;
|Einzelner Eingang „Discrete Input“||nur Lesen||1-bit&lt;br /&gt;
|02&lt;br /&gt;
|-&lt;br /&gt;
|(analoge) Eingänge „Input Register“||nur Lesen||16-bits&lt;br /&gt;
|04&lt;br /&gt;
|-&lt;br /&gt;
|(analoge) Ein-/Ausgänge „Holding Register“||Lesen &amp;amp; Schreiben&lt;br /&gt;
|16-bits&lt;br /&gt;
|03 / 06 / 16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anker|RTU}} Modbus/RTU ==&lt;br /&gt;
&lt;br /&gt;
Modbus RTU (RTU: [[Remote Terminal Unit]], Fernbedienungsterminal) überträgt die Daten in binärer Form. Dies sorgt für einen guten Datendurchsatz, allerdings können die Daten nicht direkt vom Menschen ausgewertet werden, sondern müssen zuvor in ein lesbares Format umgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Protokollaufbau&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;ModBusSerial&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im RTU-Modus wird der Sendebeginn durch eine Sendepause von mindestens der 3,5-fachen Zeichenlänge markiert. Ein Zeichen hat eine Länge von 11 Bit. Die Länge der Sendepause hängt somit von der Übertragungsgeschwindigkeit ab. Dies muss bei niedrigen Datenraten exakt eingehalten werden. Bei einer [[Bitrate]] von mehr als 19200&amp;amp;nbsp;bit/s kann eine feste Pausenzeit von 1,75&amp;amp;nbsp;ms verwendet werden. Das Adressfeld besteht aus acht Bit, die die Empfängeradresse darstellen. Der Server sendet bei seiner Antwort an den Client ebendiese Adresse zurück, damit der Client die Antwort zuordnen kann. Das Funktionsfeld besteht aus 8&amp;amp;nbsp;Bit. Hat der Server die Anfrage des Client korrekt empfangen, so antwortet er mit demselben Funktionscode. Ist ein Fehler aufgetreten, so verändert er den Funktionscode, indem er das höchstwertige Bit des Funktionsfeldes auf 1 setzt.&lt;br /&gt;
Das Datenfeld enthält Hinweise, welche Register der Server auslesen soll, und ab welcher Adresse diese beginnen. Der Server setzt dort die ausgelesenen Daten (z.&amp;amp;nbsp;B. Messwerte) ein, um sie an den Client zu senden. Im Fehlerfall wird dort ein Fehlercode übertragen. Das Feld für die Prüfsumme, die mittels [[Zyklische Redundanzprüfung|CRC]] ermittelt wird, beträgt 16 Bit. Das gesamte Telegramm muss in einem kontinuierlichen Datenstrom übertragen werden. Tritt zwischen zwei Zeichen eine Sendeunterbrechung auf, die länger als 1,5 Zeichen ist, so ist das Telegramm als unvollständig zu bewerten und sollte vom Empfänger verworfen werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Start || Adresse || Funktion || Daten || CR-Check || Ende&lt;br /&gt;
|-&lt;br /&gt;
|Wartezeit (min. 3,5 Zeichen) || 1 Byte || 1 Byte ||&amp;#039;&amp;#039;n&amp;#039;&amp;#039; Byte || 2 Byte || Wartezeit (min 3,5 Zeichen)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Modbus/ASCII ==&lt;br /&gt;
&lt;br /&gt;
Im Modbus ASCII wird keine Binärfolge, sondern [[American Standard Code for Information Interchange|ASCII-Code]] übertragen. Dadurch ist es direkt für den Menschen lesbar, allerdings ist der Datendurchsatz im Vergleich zu RTU geringer.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Protokollaufbau&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Im ASCII-Modus beginnen Nachrichten mit einem vorangestellten Doppelpunkt, das Ende der Nachricht wird durch die Zeichenfolge [[Carriage return]]&amp;amp;nbsp;– [[Line feed]] ([[CRLF]]) markiert.&lt;br /&gt;
&lt;br /&gt;
Die ersten zwei Bytes enthalten zwei ASCII-Zeichen, die die Adresse des Empfängers darstellen. Der auszuführende Befehl ist auf den nächsten zwei Bytes codiert. Über weitere &amp;#039;&amp;#039;n&amp;#039;&amp;#039; Zeichen folgen die Daten. Über das gesamte Telegramm (ohne Start- und Ende-Markierung) wird zur Fehlerprüfung ein [[Longitudinal Redundancy Check|LRC]] ausgeführt, dessen Paritätsdatenwort in den abschließenden zwei Zeichen untergebracht wird.&lt;br /&gt;
Tritt während der Übertragung eines Frames eine Pause von &amp;gt;&amp;amp;nbsp;1&amp;amp;nbsp;s auf, wird der Frame als Fehlerfall bewertet. Der Benutzer kann ein längeres Timeout konfigurieren.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Start || Adresse || Funktion || Daten || LR-Check || Ende&lt;br /&gt;
|-&lt;br /&gt;
|1 Zeichen (:) || 2 Zeichen || 2 Zeichen ||&amp;#039;&amp;#039;n&amp;#039;&amp;#039; Zeichen || 2 Zeichen || 2 Zeichen (CRLF)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Modbus/TCP ==&lt;br /&gt;
Modbus/TCP ist RTU sehr ähnlich, allerdings werden [[TCP/IP]]-Pakete verwendet, um die Daten zu übermitteln.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Modbus Organization, Inc. |url=https://www.modbus.org/file/secure/messagingimplementationguide.pdf |titel=MODBUS Messaging on TCP/IP Implementation Guide V1.0b|werk= |hrsg=Modbus Organization, Inc. |datum= |abruf=2026-03-12 |sprache=en}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Webarchiv |url=https://www.kunbus.de/modbus-tcp-ethernet.html |text=Informationen zu Modbus TCP |wayback=20220524130929}}&amp;lt;/ref&amp;gt; Der TCP-Port 502 ist für Modbus/TCP reserviert. Modbus/TCP ist seit 2007 in der Norm [[IEC 61158]] festgelegt und wird in [[IEC 61784|IEC 61784-2]] als CPF 15/1 referenziert.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Protokollaufbau&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Transaktionsnummer || Protokollkennzeichen || Zahl der noch folgenden Bytes || Adresse || Funktion || Daten&lt;br /&gt;
|-&lt;br /&gt;
| 2 Byte || 2 Byte (immer 0x0000) || 2 Byte (&amp;#039;&amp;#039;n&amp;#039;&amp;#039; + 2) || 1 Byte || 1 Byte ||&amp;#039;&amp;#039;n&amp;#039;&amp;#039; Byte&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dadurch, dass hier keine CRC-Prüfsummenbytes zu berechnen sind, ist die Implementierung eines Treibers für die TCP-Schnittstelle einfacher als für die serielle Schnittstelle, sofern man auf eine vorhandene TCP-Implementierung aufsetzen kann.&lt;br /&gt;
&lt;br /&gt;
=== Modbus/TCP Security Protocol ===&lt;br /&gt;
Im Oktober 2018 wurde eine sichere Variante Modbus/TCP-Protokoll auf Basis [[Transport Layer Security]] (TLS) veröffentlicht.&amp;lt;ref&amp;gt;{{Webarchiv |url=https://www.modbus.org/docs/Modbus-SecurityPR-10-2018.pdf|text=PRESS RELEASE Modbus Security&amp;amp;nbsp;– New Protocol to Improve Control System Security |wayback=20240823120354}}, auf modbus.org&amp;lt;/ref&amp;gt; Diese nutzt [[X.509]]&amp;lt;nowiki/&amp;gt;v3 digitale Zertifikate zur Authentifizierung von Server und Client. Damit sollen Angriffe auf vernetzte Modbus/TCP-Komponenten (z.&amp;amp;nbsp;B. [[Man-in-the-Middle-Angriff]]e) verhindert werden. Das sichere Modbus/TCP bietet auch eine rollenbasierte Zugriffssteuerung. Es nutzt den TCP-Port 802. Das Protokoll wird in der MODBUS/TCP Security Protocol Specification&amp;lt;ref&amp;gt;{{Internetquelle |autor=Modbus Organization, Inc. |url=https://www.modbus.org/file/secure/modbussecurityprotocol.pdf |titel=MODBUS/TCP Security Protocol Specification |werk= |hrsg=Modbus Organization, Inc. |datum= |abruf=2026-03-12 |sprache=en}}&amp;lt;/ref&amp;gt; beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.modbus.org/ Web-Seite der Modbus Organization, Inc.], mit detaillierten Spezifikationen (englisch)&lt;br /&gt;
* [https://libmodbus.org/ Modbus-Bibliothek in C], quelloffen und mit Dokumentation (englisch)&lt;br /&gt;
* [https://github.com/PrismCMMS/modbus-dotnet-api Modbus asynchrone Kommunikation für .NET], .NET-basierte Modbus-API zur asynchronen Kommunikation mit Modbus-Slaves.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Feldbus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Gak69</name></author>
	</entry>
</feed>