Modbus: Kommunikationsprotokoll in der Automatisierung #86 - podcast episode cover

Modbus: Kommunikationsprotokoll in der Automatisierung #86

Jun 17, 202550 minEp. 86
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Modbus, ein seit 1979 etabliertes Kommunikationsprotokoll, verbindet PLCs mit Steuerungssystemen und ist ein fester Bestandteil der Industrieautomation. Es dient als Feldbus, um Aktoren und Sensoren zu steuern und Daten zu erfassen, sei es in der Gebäudeleittechnik oder in industriellen Anlagen.

Die Architektur basiert auf einem Master-Slave-Prinzip, wobei ein Master die Kommunikation mit Slaves initiiert. Befehle und Daten werden über Adressen und Funktionscodes in spezifischen Datenbereichen der Geräte ausgetauscht.

Modbus existiert in mehreren Varianten:

  • Modbus RTU: Die effiziente serielle Version, ideal für direkte Geräteanbindung.

  • Modbus ASCII: Eine weitere serielle Variante, die leichter lesbar ist, aber weniger effizient arbeitet.

  • Modbus TCP: Nutzt Ethernet und TCP/IP für schnellere Datenübertragung und nahtlose Netzwerk-Integration.

Die Anwendungen sind breit gefächert, von der Motorsteuerung über die Temperaturerfassung bis hin zu Energiezählern. Dank seiner Einfachheit und Robustheit bleibt Modbus relevant und wird auch heute noch in zahlreiche IoT-Lösungen integriert.

------

Modbus Organization: https://modbus.org/------

Einfach Komplex ist ein Podcast von Heisenware.

Alle Infos und Kontakte findest du

im Linktree ⁠⁠https://linktr.ee/heisenware

oder unter heisenware.com.

------

Burkhard & Gerrit sprechen heute über:

(00:00) Einführung und Modbus Varianten

(11:00) Einsatz- und Anwendungsfälle

(24:00) Architektur und Aufbau des Protokolls

(37:30) Herausforderungen durch 16-Bit

(43:30) Sicherheitsaspekte

(46:30) Integration von Modbus in Heisenware

Transcript

Einführung und Modbus Varianten

Moin, hier ist einfach komplex und in der heutigen Folge lernst du in 45 Minuten würde ich jetzt mal schätzen, alles über modbus wo es herkommt, was man damit machen kann und ja wie du in der Praxis damit umgehst und damit Moin auch von mir Gerrit und Hallo bockhardt. Ja Moin Gerrit, Ja Moin und alle aus Hamburg. Vielleicht schaffen wir es n bisschen schneller als 45 Minuten, aber so kompliziert ist das Modbus nämlich nicht. Gott sei.

Dank, ja, man weiß ja nicht wie lange vorher, ist aber. Man weiß es vorher nie, deswegen ist es besser, etwas länger anzusagen, als man tatsächlich braucht, ja. Modbus ja, wahrscheinlich überhaupt, es zu sagen, aber das mal nichts mit dem Bus zu tun, ja, also mit dem Bus, an den wir als erstes denken beim von dem Bus hören, wir sind ja in der Automatisierungstechnik oder sind wir eigentlich Software, wo würdest du es immer einordnen modbus?

Ja ne, ja schon ist schon Software so, aber es ist uralt. Ne ist ein Jahr im Modbus also das ist ja n Protokoll also wir wir sind hier zwischen wir sind nah an der Hardware dran, an den sogenannten SPSN oder PLC auf Englisch programmible Logic Controllers und SPS gerät. Speicherprogrammierbare Steuerung Oh. Super. Ich hätte es jetzt nicht aus der Kanone schießen können.

Genau das sind ja die, das sind ja quasi die ja die Hardwarestücke, die dann irgendwie direkt mal Aktuatoren und Sensoren im Feld. Kontrollieren typischerweise bis heute und modbus ist ein Jahr älter als ich. Ich glaube 79 rausgekommen war so dann lange Zeit, dass der Klassiker und der Standard um diese PLCS weiter nach oben sag

ich mal. Also in die in die Softwarewelt, in die Kontrollsysteme, in die Skalawelten und so weiter zu bringen, also die Verbindung herzustellen zwischen unseren SPSN oder PLCS und dann der Überliegenden softwarewelt ja da, da sind wir eingeordnet und da ist natürlich viel industrieller Kontext, das ist schon so, ja. Mhm, genau OK. Also ein Kommunikationsprotokoll in der Industrieautomation, sagen wir es mal so.

Genau. Und was unterscheidet sich jetzt beim Modbus oder was ist der der Unterschied so n bisschen zu zu anderen Protokollen, die da im Einsatz sind?

Also zum Beispiel hört man manchmal von Profinet OPCUA kennen wir natürlich auch ganz gut, also ist das Wort vergleichbar mit diesen Industrieprotokollen oder Kommunikationsprotokollen. Ja, aber so, das ist schon gerechtfertigt, dass man die alle mal vergleicht, weil es sind wir haben alle irgendwie ne ähnliche Attitüde, nämlich Kommunikation herzustellen in beide Richtungen wohlgemerkt, das kann Modpus auch, also lesend und schreibend, wenn man

das jetzt vergleichen will, da da muss man ne sehr lange Folge machen, aber ich mal kurz gesagt, Modpus ist eines der einfachsten Protokolle und zwar jetzt für wen, einfach für den Menschen würde ich mal sagen zu verstehen. Ja die Definition von Modpus und das die Bytes die man da hin und her schickt, die Art der Message ist. Das ist sehr, sehr simpel gehalten.

Ja, und wir haben ja gesagt, Protokoll, ja Protokoll, sind ja quasi ist ne n Regelwerk wie ich Inhalte verschicke so n bisschen ne wenn ich n Brief schicke, wie schreibe ich den Text, ist das irgendwie jetzt mal kurz blödes Beispiel aber schreibe ich da auf Französisch hin mit mit aus mit ausflügelnder Grammatik oder schreibe ich irgendwie stenoreien oder irgendwie Morsezeichen in meinen Brief so ja das ist das Protokoll. Und dann ist noch die Frage, wie schicke ich den Brief?

Ja, welches Transportmittel? Ja, packe ich den irgendwie auf das Fahrrad vom Postträger und der fährt los und so war es früher ne, also der Fahrradfahrer so ganz schlicht, es war serielles Protokoll, ganz am Anfang, seriell heißt es halt einfach die Verbindung zwischen dem PLC und dem PC oder dem Computer der es Halt verarbeitet hat, ne durch ein Kabel synchron ne und du musstest immer warten konntest.

Es konnte immer nur ein Brief im Kabel sein sage ich mal ne einmal Anfrage. Und danach kam die Antwort und dazwischen nix und so weiter das das ist dieses RS 232, das kennt man, hat man schon mal gehört vielleicht, das ist dieses RS 232 und da gibt es noch das neuere RS 485, das heißt wieviel kann ich quasi an Byte da durchschieben durch das Kabel, aber das ist ne uralte Zeit ja und und weil halt quasi Transportmittel noch nicht so cool waren und weil im Prinzip

die Memories und die Hardware und so weiter 79 ja das war das ist noch n bisschen überschaubarer. Wurde das halt ganz schlicht gehalten, dieses Protokoll.

Und im Gegensatz zur OPCUA das ist so OPCUA ist dagegen irgendwie n akademischer Elfenbeinturm, da kannst du gibt es strukturierte Daten und was weiß ich nicht alles ja und im Modpus das kann man vielleicht auch schon mal jetzt schon ranschieben die Sprache, die da spricht sind Worte, und zwar 16 bit Worte 16 Bit Worte sind jetzt für die Techniker unter uns die unsigned integer Größe, also damit kannst du dann also

genau 65535 glaube ich. Zahlen, wenn du es im Dezimalen abbilden würdest, Encodieren und über über Abfolge von diesen 16 Bitworten wurde kommuniziert. Ja, und da gibt es im Prinzip nicht die Datentypen, müssen sich dann quasi auch wieder auf der jeweiligen Seite erschossen werden. Ja, das konnte nichts anderes als diese, als diese Worte durch die Gegend schicken, ja und insofern komplett schlicht und die meisten anderen Protokolle sind etwas, ja haben etwas mehr.

Bedingungen, etwas mehr Möglichkeiten und so weiter und sofort. Ja, obwohl man raus sagen muss, das MQTT Protokoll ist auch sehr sehr sehr sehr schlicht, ja und deswegen auch sehr erfolgreich, ja. Da ist ja die Parallele dann auch ne.

Also Modbus ist total erfolgreich und seit 46 Jahren hab ich jetzt gehört im Einsatz, ich hab noch gesehen, dass Modbus von da irgendeiner Firma entwickelt wurde, die die Modicon hieß, vielleicht kommt daher auch der Name und n Bus ist ja was was generelles ne also. Gibt es schon auch für irgendwas, also als Abkürzung, aber die haben dann den Modbus erfunden bei Modibus und heute ist das wohl Schneider Electric, also modicon Geräte ah ja modicon nicht von ich wusste genau.

Ja. Ja, schon später, OK so, und das ist heute Schneider Electric oder wo du halt Schneider Electric hast es dann irgendwann gekauft. So jetzt hast du gerade schon noch so so so n paar Eigenschaften herausgestellt, also es ist irgendwie einfach, es ist entsprechend wahrscheinlich günstig.

Ich setze mal auch dann. Erst robust, ja, und, und das macht es dann eben auch interessant bis heute für verschiedene Anwendungsfälle. Und du hast gerade also bevor wir auf die Anwendungsfälle kommen, mit denen welche Geräte wo steckt, das drin und so noch mal n bisschen genauer. Du hast gerade schon erwähnt, es gibt es serielle, Modbus und dann gibt es noch das, was das andere, das digitale, den digitalen Modbus, dann also was ist.

Ja, es gibt im. Im Prinzip gibt es 3 Modbusse, wo man das so sagen darf, ich weiß es nicht. Modbusse Modbusse ja. In 2 Kategorien, wenn man es mal

genau aufteilt. Und zwar gibt es erstmal das Serielle, das hast du schon gesagt, das serielle Modpus, also wo der Transportweg ein serielles Kabel ist, hatten wir gerade schon RS 232 oder RS 485 typischerweise und innerhalb dieser seriellen Transportübertragung gibt es 2 Möglichkeiten das Modpus aufzuziehen, und zwar einmal als Aski so was heißt jetzt aski, also also quasi müsste es, dann sind die oder die Inhalte des Briefs.

Text kodiert Aski ist ja das. Es sind ist, ja ist quasi unser normales Alphabet. Also das sind lesbare Buchstaben. Ja, da können Sie ja so, also das macht dann immer noch keinen Sinn und diesen Briefdienst für den Normalsterblichen, der jetzt nicht genau weiß, wie Modbus funktioniert, es ist immer noch Kauderwelsch, aber jemand der weiß wie Modbus modbus regeln sind, der kann dann eigentlich schon wenn er den Brief öffnet erkennen, OK, dass und das

passiert, ich hab die in die function gesendet und das in das Register gesetzt, das wäre aski und genau dafür ist es auch cool und deswegen gibt es das auch, weil ich das halt besser

debuggen kann. Man muss sich ja mal vorstellen, heute kann man ja alles n Gott, die Backen hat über ein Terminal und n Display damals aber vielleicht nicht und da war irgendwie das reinschauen und einfach mal das das prompten von von diesen ascii Strings was das Modbus selber ist manchmal essentiell um rauszufinden funktioniert hier meine Hardware, Software Kommunikation ne und dann gibt es das sogenannte auch auf dem seriellen Transportweg das

zweite das RTU, das heißt Remote Terminal Unit glaub ich. Warte ich spicke ich muss spicken, finde ich es RTU oder du bist schneller im. Googlen Remote Terminal Unit ja. Ja, tatsächlich cool hab ich mir richtig bemerkt, warum das so heißt? Ja, Remote Terminal.

Also wenn man quasi über Remote was also n Terminal hat und konnte über Remote was Steuern, da kommt komplett der Name her, ist aber egal wo der Name herkommt, was wichtig ist, dass quasi der Inhalt jetzt zwar über n serielles Kabel geht, aber quasi binäre Daten waren also einfach nur Einsen und Nullen hintereinander. Die, die einer gewissen Regelung folgen sollten. Aber das war halt nicht mehr

lesbare Zeichen in ASG. Ja, das waren einfach Bits und Bytes, ja so und damit die Ping ist an und dann gibt es das dritte Modbus, das ist das Modbus über TCP, das ist auch das ist zwar eigentlich immer noch das Modbus von den Inhalten her, also die die grundsätzliche modbus Idee des Protokolls ist da drinne, das fügt dann zwangsweise dem im im Protokoll noch so einen m Bub Header heißt das MBAP. Hinzu, Weil das einfach weil das der Transportweg des TCPS halt

physikalisch was anderes ist. Und da brauch ich noch n paar mehr Sachen, denn im TCP kann ich halt concurrent asynchron zum Beispiel auch gleichzeitig mehrere Anfragen an anstellen an die Hardware. Ich kann also mehrere Sachen gleichzeitig Anfragen und Krieg asynchron die Antworten zurück und wenn ich das tue, dann hab ich muss ich das Zurückkorrelieren da gibt es dann also so ne Anfrage korrelations ID. Und die wird mir dann auf meine

auf meine Anfrage ne Antwort. Da kommt diese korrelations ID wieder, weil ich halt irgendwann auf ich hab 33 Anfragen geschickt und dann krieg ich irgendwann vielleicht als erste die zweite zurück, dann die erste und dann die dritte oder so, das weiß ich nicht, also muss ich das also quasi in die Nachricht mit reinkodieren Wer gehört hier zu wem, welche Antwort gehört hier zu welcher Anfrage?

Ja solche Sachen und ich muss die IP Adresse noch da reinkodieren und so weiter weil es dann einfach dann aufs Protokoll ist ja. Also am Gerät ist es quasi dadurch erkennbar, dass das eine.

Also das Mod plus OTCP Gerät hat irgendwie so ne Ethernetbuchse dran, nehm ich an. Ja, brauchst dann ja genau, ob sie irgendwie so LAN Kabel reinstecken oder NW LAN hast du weil die kannst du ja auch dran haben direkt haben die weiß und die ganz modernen Dinger ne richtig ob die dann noch mit das Mod plus Protokoll nehmen und dann nicht vielleicht gleich irgendwas so Modernes mit MQTT oder so ist auch ne Frage aber technisch wird es gehen ne? Theoretisch möglich.

OK, theoretisch möglich. Von RTU und Aski das ist so n Stecker wie das früher im Drucker war glaub ich ne oder so ne. Also ja die genau das die das sind gerne die heißen, die haben auch so n komischen Namen hab ich auch gerade verbessert also so sieht so n bisschen aus wieso com Stecker aber genau das sind so polstecker so genau so serielle Steckverbindungen das typischerweise da gibt es auch übrigens coole Adapter also man ist nicht n kurz kurzer

Seitenblick man ist nicht komplett verloren wenn man sowas nicht mehr hat am PC. Die Technologie nennt sich FTDI. Das kann man auch einfach nur so auf die Tonspur sprechen hier. Es ist quasi das sieht aus wie n Adapter eigentlich nur der quasi dieses serielle Polige Portdingel da irgendwie auf NUSB zum Beispiel Rüberbringt, aber in dem Adapter ist tatsächlich n Mikrochip drin und der der verwandelt quasi dieses serielle Protokoll dann in NUSB Protokoll an dieser Stelle.

Ja, da gibt es bestimmt auch welche, die Bebügeln hier quasi schon den seriell auf TCP oder Irgendsowas ja, also es gibt. Es gibt so n bisschen Mikrocontroller Adapter die das machen können. Ne ich mein ist man auch bei seriell nicht verloren heutzutage, da kann man schön. Typischerweise macht man seriell auf USB und dann klappt das auch ganz gut Mhm. OK so und du hast vorhin schon erwähnt, das wird in der Industrieautomation eingesetzt,

Einsatz- und Anwendungsfälle

auch für SPS und und so weiter mir kommt es immer entgegen bei Energiezählern. Also wenn Smart Meter ist ja voll, das ist immer noch voll im Einsatz. Stimmt. Ja oder vielleicht gar nicht mehr so smarte einfach nur. Also die, die einfach nur gucken, was jetzt für n Verbrauch irgendwo da anlegt.

Also. Na ja, smart in Form von, dass da nicht sich nur ne Scheibe dreht und irgendwie ne Nummer anzeigt, die du hinter der Glasscheibe ablegen kannst, sondern dass der, dass der Halt irgendwie den Energiewert schon mal raussenden kann. Ne das das das minimal smarte sag ich mal. Ja, ich denk bei Smart immer an jemand, also an an an irgendein Gerät was da noch selber n Stück weit reguliert oder steuerbar ist oder was auch immer. Aber OK so gesehen n Smart Meter, also was was irgendwo

den. Verbrauch übertragen kann und das wär dann auch recht einfach. Also da wird dann vielleicht eine eine Messgröße oder eine ein Datenpunkt aufgenommen und unmaterial ne. Es kann auch komplizierter werden. Meinst du bei Modbus oder was so n typischer Ansatz Ansatz Zweck ja voll.

Ne, also es ist also Energy Monitoring, ist also Energie Monitoring ist natürlich ein so n Punkt, aber es ist auch ganz viel in der Gebäudeautomation im Einsatz und in in einfach in den in den älteren Kontrollsystemen in den größeren also das. Damit hat man und steuert man noch heute Ventile für Vakuumsysteme, auch Motoren, also alle möglichen Aktuatoren und Sensoren. Und das geht auch.

Ja, also man kann, man kann eine ganze Menge machen mit den mit dieser modbus Steuerung und kann halt auch quasi ein einzelnes Endgerät sage ich mal steuern, man kann aber auch viele Steuern, es kommt jetzt drauf an, dass es, man muss ja gucken das modbus Protokoll geht ja nicht direkt auf die Lampe oder auf den Motor. Ich habe ja am Anfang gesagt, da ist ja eine PLC dazwischen eine SPS, das heißt, ich habe noch ein Stück Firmware Software, wie man es auch nennen will, also

SPS, Steuerung, Software sage ich mal.

Das ist ja auf einem sehr sehr niedrigen Level, sage ich mal, aber die ist ja dazwischen und es kann so sein, dass ja eine SPS Steuerung, mehrere Aktuatoren und Sensoren gleichzeitig bedient, ja oder ich habe halt mehrere SPS und die dann wieder mehrere Motoren bedienen und so weiter da da gibt es alles alles und jede Architektur, ja das ist also das ist das eigene Business von so. Kontrollsystemen wenn du da an die Hardware guckst, ja, und das kannst du alles realisieren mit

Modbus. Du kannst auch mehrere Aktuatoren und Sensoren die an einer PLC quasi angeschaltet sind und kontrolliert werden, dann steuern aber das Modbus ja warum weil weil das Modbus funktioniert im Prinzip eigentlich ein bisschen so, im Prinzip werden eigentlich nur Datenpunkte gelesen und gesetzt in so einer Art Memory Feld und du kannst dir die eine PLC hat ja quasi auch so eine Art Arbeitsspeicher oder Speicher sagen wir mal aus den und also

man nennt das Register, das Wort hat man vielleicht auch schon mal gehört, typischerweise Register, kann halt nen Wert annehmen und und dann die PLC Logik selber, die dann dann tatsächlich n Motor anfährt oder stoppt oder n Ventil öffnet oder schließt, die liest halt n bestimmtes Register aus und wenn der Wert auf dem Register sag ich mal jetzt ganz ganz ganz platte 1 steht, ja dann geht das Ventil auf ja und wenn es wenn der Registerwert auf 0 steht geht es Ventil halt zu.

So was macht jetzt Modpus ist im Prinzip nichts anderes als ne Möglichkeit. Strukturiert die Werte in diesen Registern in der PLC zu setzen. Ja, das heißt, ich kann von der Ferne, also hinter einem nach einem seriellen Kabel oder nach einem TCP Kabel halt sagen, dieses Register an dieser Stelle, das setzt du jetzt auf 1.

Und wenn das dann das Richtige war, dann geht zum Beispiel das Ventil auf ja so, und das setzt Halt voraus, dass die diejenigen, die den, die den Steuerungscode die Steuerungslogik geschrieben haben, also die PLC oder die SPS Programmierung gemacht haben müssen sehr gut dokumentieren.

Was für Register es denn wo gibt und wie die gesetzt werden dürfen, dürfen die nur ausgelesen werden oder dürfen die umgesetzt werden, geschrieben werden und so weiter und das muss man sauber dokumentieren und dann gibt es so ne Art CSV Fall typischerweise wo genau drin steht welches Register macht was und welcher Datentyp darf da rein und das muss man sich dann dieses Handbuch, diese Beschreibung ist quasi Dokumentation, ja die muss man

sich dann reinziehen und das muss man dann bitte befolgen wenn man über modbus dann quasi. Ein ganzes Register setzt, weil, wenn ich das nicht mache und an die falschen Stellen schreibe und wenn das sicherheitstechnisch geht. Das kann gut so sein in der Steuerung, dann mach ich wilde Sachen, die ich eigentlich nicht will. Ja, also insofern ist es zwar ein sehr einfaches Protokoll, hat aber halt auch die Gefahr, dass du Quatsch machen kannst.

Also da gibt es nicht mehr viel Eigenschutz oder Irgendsowas, das ist halt bare Metal, sag ich mal. Relativ roh wird da einfach knallhart irgendwie memory umgesetzt und dann ist es dann ist es dabei ja. Was ich jetzt spannend fand ist, du sagst also Modbus ist jetzt nicht das Protokoll zwischen Steuerung und Eigentlichem Aktor? Nein, sondern. Das macht die PLC, die die an der PLC ist, da da irgendwie, so sagen wir mal ganz platt formuliert.

Du hast irgendwie 2 Kabel oder Irgendsowas, die kommen aus dem Sensor raus, die werden in die in die die die steckst du in die PLC, in die Steuerungslogik und da kommt dann auch Strom drauf und alles und so weiter das muss dann da irgendwie n richtigen Strom geben wenn an soll und oder wenn nicht und da gibt es analog das ist auch wichtig zu sagen, es gibt. Es gibt ja auch gar nicht so viel verschiedene Devices.

Also wenn man so in der Steuerungstechnik unterwegs ist, was ich jetzt auch nicht von Hause aus bin, deswegen muss ich aufpassen, dass ich jetzt kein Quatsch erzähle, aber am Ende gibt es immer so was wie digitale Eingänge und digitale Ausgänge, analoge Eingänge und analoge Ausgänge, damit erschlägst du schon relativ viel.

Ja, und was ist das digitale? Ein aus digital heißt immer, ich hab quasi nur 1 oder 0 on oder off, das sind so und wenn ich wenn ich das setze, dann ist es wie ein Schalter, wie ein Button kannst du dir vorstellen, du hast eine Maschine. Und dann, dann kennst du auch diese.

Kennst du diese Grünen, diese Grünen und roten runden Schalter, so sie ist auch beim Skilift, es gibt ja überall so, ja also so n Knopf einfach so, und das ist zum Beispiel, das ist dann digitaler Schalter, ja wenn ich den drücke, dann setz ich halt irgendwo ne 1 oder ne 0 wenn ich noch mal drücke oder sind es oft 2 Knöpfe oder irgend so was ja und genauso kann ich dann lesen auch aus einer Hardware digital ob irgendwas an ist oder aus ist so ja das brauch ich halt ja oder wenn

Thiel ist ganz oft digital geschaltet ja.

Offen oder zu? Wenn das nicht so kompliziertes Ventil ist, was irgendwie noch so zwischen States haben kann, ja, auf oder zu digital und die analogen, ja das sind dann halt analog ganz vieles gibt ganz viele analoge Sensoren, typischerweise sind Temperatursensoren analog und die, die die Mappen quasi ihre Temperatur, die sie wirklich physikalisch messen, auf ein Zahlenspektrum von was weiß ich, je nachdem wieviel wieviel Auflösung das hat zwischen 0 und

255 zum Beispiel. Zahlen ja, 250 steht dann halt für 100 Grad und 0 halt für -10 oder was das ist, dass das kann ja hast du halt so n Mapping und das muss halt eben interpretiert

werden. Ja das sind die analogen Signale ja und genau und das passiert aber zwischen der PLC und dem Endaktuator oder Sensor sag ich mal und des Modbus liegt dann 1 drüber, das spricht dann mit der PLC nach oben hin in die typischerweise in die Steuerungsleitsystem oder irgendwo hin, ja. Denn ich will ja quasi dann ich, ich, ich sitze ja da so ne PC ist ja so n kleiner Kasten direkt an der Maschine aus dem Schaltschrank noch mit drin so

aber da will ich ja nichts drücken, sondern ich sitze ja bequem im Stuhl und hab n Laptop vor der Nase und wenn ich dann im Laptop drücke, dann würde quasi über ne TCP Verbindung im modernen Fall das entsprechende Protokoll abgeschickt mit dem Signal setzt bitte jetzt in der Steuerung hier das Register auf 1, was dazu führt, dass das Ventil XY aufgeht. Ja so ist es von der. Vom Setup her, da ist modbus. Mhm, aber gut, da sitzt ja nicht immer jemand am Laptop, das ist

ja eigentlich. Automatisierung weiß ich gar nicht. Ja, also wenn du kommt drauf an, also ganz oft ist es ja so, wenn du jetzt mal so Anlagenbau oder Kraftwerke denkst. Kohlekraftwerk, da sitzen ja die Leute schon da vor diesem Bildschirm, das ist dieser Kontrollraum, den man so kennt, wo er sich also nicht an der Börse, sondern wo du quasi n Kraftwerk hast. Da stapeln sich trotzdem 3 Monitore übereinander und 6 nebeneinander und alle gucken sich irgendwas an.

Und das ist der, der, der, der, der. Der zentrale Kontrollraum wird auch oft genannt, und da musst du schon ab und zu mal was drücken und regulieren.

Ja, das ist heute auch noch so, wenn du Stromnetze zum Beispiel Regulierst und so weiter da wird schon noch was gedrückt, das ist ja nicht alles durch komplett durchautomatisiert am Ende sitzt ganz oft noch der Mensch, ja, und dann nennt man das HMI Human Machine Interface, ja, das ist dann die grafische Aufbereitung von dem was da passiert, wenn ich es gedrückt hab, ja.

Insofern ist das schon, ist das schon eher der der Standard, dass da noch jemand am Laptop sitzt und dass er dich irgendwas drückt oder ausliest und aussiehst. So n Dashboard mäßig, ne so. Müsst doch noch mal bohren, Burkhard, Ich komm her, bleiben wir bei diesem Energiezähler so, und der hat ja dann einen modbus Ausgang, wo das jetzt kein Aktor ist und mein Sensor und hängt dann direkt an einer SPS. Also. Ich versteh dich, die. Direkte Verbindung zwischen Sensor und SPS.

Du hast, du hast jetzt das Bild im Kopf gemalt, nachdem was ich erzählt hab du, wir haben 123 Komponenten irgendwie Hardware. Steuerung und dann Laptop. Ja und zwischen Steuerung und Laptop sitzt das Modbus. Jetzt sagst du mir wieso das ist so n Smart Meter ist doch nur ein Kasten.

Ja und da kommt aber direkt modbus raus so was erzähl ich hier für n Quatsch stimmt hast ja recht, das ist ja so heute wenn du die modernen Hardwares hast, moderne Sensoren und so weiter da ist halt quasi der das Stück was PLC war früher was immer extra noch da großartig angefertigt wurde sitzt da quasi schon mit drauf also das ist jetzt.

Eine Personalunion, also Aktor oder Sensor modernen Geräten ist halt Personalunion von Steuerung und Hardware sag ich mal ne, also da da ist quasi One to One Mini PLC und dann wird es halt direkt umgesetzt auf Modpus das kannst du machen. Ja, das war früher aus aus hardwaretechnischen Gründen und aus einer Technologie gründen, da konnte man noch nicht so viel was Computing angeht war das meist nicht der Fall, deswegen ist das der klassische Aufbau, dass du, dass du das Trennst.

Und heute fließen die Grenzen zusammen. Und das Gleiche ist dann auch für Aktuatoren der Fall. Ja, weil es auch ich hab gerade mal kurz geguckt, es gibt natürlich irgendwie antriebsmotoren oder sowas mit modbus Interface dann. Das gibt es alles. Ja, und das ist, das ist auch NN Trend, der passiert.

Wenn du also es gibt schon richtig smarte Geräte und Smart, also smarte Aktuatoren oder Sensoren, die die sofort die ganze Steuerung mit drin haben on Board, ja das dann hast du ne andere Architektur auf dem shopfloor sag ich mal, weil dann oft sogar die Dinger schon alleine irgendwie. Wlan können oder Irgendsowas, dann brauchst du halt kein schaltschranke Kabel mehr und so weiter ja.

Meinst du aber du hast doch aber also stell dir also ich stell mir jetzt so ne verpackungs Anlage vor oder sowas.

Ja ja was weiß ich, vorne wird Schokolade auf den Band gekleckst und dann kommt ne Verpackung drum und hinten wird noch n wird die werden die werden die einzelnen Riegel noch in Karton geschmissen aber das hab ich schon mal gesehen in echt dann hast du ja quasi ganz viele kleine Motoren und Sensoren die die diese ganzen kleinen Förderbänder und die die Abfüllung und so weiter Steuern und die die Pappe falten und so

weiter. Und dann hast du das Ding, da sitzt ja keiner und sagt jetzt OK jetzt an, sondern es geht ja die ganze Zeit werden da ja Regel produziert. Ja so, das ist ja Automatisierung.

Ja, und das macht die PLC. Aber da wirst du dir, wenn du dir das anguckst, da hast du ne ne nen ganzen Haufen Kupfer, kleine Kälbelchen von nämlich deinem Förderband und von deinem Motor und von deiner Abfüllungsanlage und dem ganzen Scheiß und die werden die die wenn du denen Hinterherläufst diesen Kabeln die da wirst du irgendein Schaltschrank finden.

Und da, da sind diese ganzen Hutschienen drinne, so blinkende LEDS von Beckhoff oder von da gibt es vielleicht 1000 Firmen ja so und und und diese Hutschienen, die übernehmen quasi dann diese digitalen oder analogen Signale, die dann von den Aktuatoren oder Sensoren, nämlich dann Förderband, dann ne Klecksmaschine und so weiter kommen. Ja und dann gibt es da die, die die die Denkmaschine davon sind, immer die sind auch in Hutschienengröße typischerweise.

Da gibt es dann halt quasi die Processing Units. Das sind die PLCS, da ist das PLC Programm drauf und in dem PLC Programm wenn das nicht eingestellt wird, dann da wird die Automatisierung für diese Echtzeitautomatisierung ist die vorprogrammiert und läuft richtig sauber und

unveränderbar. Das ist ja wichtig auch Tarzan Pasta auch aus dem Personal Safety zu tun soweit dass der dich dass der heiße Schokolade nicht ins Gesicht spritzt oder irgendsowas ja das ist da festgeklemmt, aber das musst du ja trotzdem bis zu einem gewissen Maß willst du es erstens mal überwachen von außen weil du n Dashboard haben willst, ja. Oder du willst dann einfach mal das ganze Ding abschalten oder sowas?

Ja, das kannst du schon wollen, ne, ohne dass du den Strom aus Knopf drückst beim Schaltschrank ja ist oder oder du konfigurieren du hast Rezepte zum Beispiel ganz oft gibt es Rezepte, ja, das ist tatsächlich so n Ding, wo kommen wir vielleicht später noch mal zu wo du n Paar mehr Nüsse hast oder ne wo das die Mischung quasi für den Röhrer festgelegt wird und so n Rezept möchtest du quasi dann in die Steuerung laden damit die sich das da rausnimmt und dann entsprechend die Röhre

bewegt das würdest du dann halt mit Modbus in die Steuerung laden und die gibt es dann weiter. Mhm. OK, aber theoretisch könnte auch diese PLC, die eben in der Hutschiene hängt, auch mit den Aktoren und und Sensoren, die in der Anlage verbaut sind auch mit Modbus sprechen, wenn auf dem jeweiligen Aktor und Sensor halt schon so ne kleine Steuerungseinheit drauf. Ist ja, aber das ist glaub ich eher untypisch. Aber ja. Glaubst du? Ja glaub OK. Hab ich n paar Beispiele

gefunden. OK, dann hast du mich an das besser gelernt, ja. Deswegen frag ich so genau nach, aber theoretisch geht beides. So hast du ja quasi vorher technisch erläutert. Das mag sein, dass das geht. Ja, ich kenne halt Modbus mehr so als die als die Schnittstelle zwischen Halt der der PLC oder SPS und dann der Leitsystemsoftware nach oben raus, aber das es mag sein, dass es Beispiele gibt, dass quasi die die Untersteuerungsverteilung auch über Modbus läuft.

Architektur und Aufbau des Protokolls

Ja will ich mal nicht verneinen, verneinen jetzt hier. Da, wo der, der eigentlich der Feldbus ist oder so, ja genau auf der genau. Normal ist das Feldbussebene genau richtig. Ja, ja. OK, vielleicht hilft es, wenn wir noch mal ganz kurz hier dieses Master Slave architekturmodell, dann noch mal reinbringen. Ich glaube das wird ja auch hier angewendet, ne? Ja, das ist richtig. Genau. Wie sieht es? Damit aus. Und wer ist jetzt froh, da Master on Slave. Ja genau.

Master on Slave ist n altes Wort für das, was ich immer wieder gerne sag im Client und Server und so muss man sich aufpassen, wer ist hier wer, also der Master steht für den Client und der Client ist derjenige der immer die Befehle abschießt. Und der Slave ist der Server. Das ist derjenige, der dir Befehle entgegennimmt und die Antwort formuliert, ja. Witzig. Ich hätte es genau andersrum

gedacht und wenn von der. Ich hätte es auch genau andersrum gedacht und deswegen habe ich heute bei der Vorbereitung noch das 10 mal angeguckt, ob das wirklich stimmt. Aber es ist so ja ich genau, wenn man das das Wort Master on Slave gibt es nämlich eigentlich in der Cloud, gibt es das auch und ich würde sagen, du hast es anders genutzt, da ist es mehr so zentrales Gehirn und Arbeiter, also Master als zentrales Gehirn, da peitscht die Slaves also deswegen ist es auch gar nicht mehr so.

Schick das so zu sprechen, aber das meinen wir natürlich nicht so in der in der Informatik, aber hier ist es tatsächlich so. Ich spreche es noch mal auf den Tonspur ist wichtig, der Master ist der Client und der Slave ist der Server, also sitzt der Slave, der Slave ist quasi die PLC oder der Server ist die PLC und der Master oder der Client ist der Laptop oder derjenige der mit der PLC spricht und der die der quasi sagt ich will mal wissen was es steht im Register irgendwo drin, ja.

Also Master würde sagen Master oder Client würde sagen Hey Slave 3, gib mir mal dein Inputregister 400040001 oder Irgendsowas und der Slave 3 würde als Antwort sagen, jo hier hast du n 16 bit wert. Ja und typischerweise an den Next irgendwie 1234 oder irgendwas ja sieht er aus ja genau OK. Und noch mal das feststellende Laptop jetzt in deinem Beispiel ist ist eigentlich, dass das Leitsystem, wie du es genannt hast von oder die so ne Art Steuerungs. Ebene oder wie auch immer, ja.

Irgend irgendwer, irgendwer, der mit der Steuerung sprechen will, ja. Ja, und unter unserem Rezept bereitstellt oder das ganze Zeug startet und so weiter und sofort. Der irgendwas startet mit dem Skilift, der den ja guten Knopf, der da irgendwas startet, Motor oder Irgendsowas genau o. KOK genau. Wenn man jetzt, wenn man das Master und Slave Konzept verstanden hat, dann muss man im Prinzip als nächsten logischen Schritt sagen, ich muss ja identifizieren, der muss ja

irgendeine Adresse haben. Mein Server ja sowieso wie im Internet Server ne IP Adresse haben.

Ne ich muss ja irgendwo antelefonieren das muss der Client wissen weil der weil der Client, der kann ja typischerweise mit mehreren Sprechen mit mehreren Servern oder Slaves, in diesem Falle übrigens beides fängt das mit S an, so kann man, so kann man es als Eselbrücke zusammenbringen, Server und Slave in für den Modbusfall und das passiert tatsächlich im Modbus auch und es gibt so ne Art, das nennt sich Adress Adresse im Prinzip oder Unit ID im TCP.

TCP Modbus heißt das dann, Unit ID, und das ist quasi die Adresse des des Servers und das ist halt nicht ne IP Adresse, sondern das ist im Prinzip nur ne Nummer. Also wieder ne 16 bit Nummer. Ja die wir einfach durchnummeriert 0123456789 ja so und jetzt kommen wir nämlich n bisschen zum Aufbau des Protokolls, das ist nämlich der erste Teil des Protokolls, wenn wenn wenn nämlich ne Anfrage losgeht, dann steht in dem ersten in dem ersten Feld quasi von dem Brief der geschickt wird.

Erstmal die Adresse an wen geht denn der Brief ja zu zu wem, zu welchem Slave soll ich Ihnen den schicken, zu welchem Server? Ja und als Nächstes kommt der sogenannte Function Code und in der Function Code davon gibt es gar nicht so viele.

Ich glaube es gibt 12345678 standardmäßige und dann beliebig viele Customized Ones, aber im Standard gibt es glaube ich nur 8. Jetzt muss erstmal gucken was ist ein function Code, das ist was sehr spezielles jetzt jetzt sind wir bei Modbus ja und und und seine Spezifika.

Dieses function Code, das kenn ich eigentlich nur von Modbus, das siehst du so nicht bei OBCUA und siehst du auch nicht bei einem QTT und das das Macht auch noch mal so ne Kennung aus, wofür das Modbus spezifisch ist und wo es herkommt, weil es ist nämlich nicht so urgenerisch, sondern es kommt schon aus dieser Industrie, aus diesen analogen und digitalen Dingern, und wenn ich es jetzt vorlese, werdet ihr merken, was dass das wirklich industrienah ist. Denn die function Codes, da gibt

es den. Den die Discrete Outputs, die Coils quasi ja es heißen Coils ja das das erklär ich sogar jetzt gleich. Warum heißt das Coils? Also Coils sind erstmal Werte Two oder false 0 oder 1. Das sind die Dinger digital was ich immer gesagt hab, ich schalte irgendwas an oder aus oder ich lese ist ist angeschaltet oder ausgeschaltet und die function Codes dazu sind

1 und 5 also. Mod Plus wenn ich es lesen will, ob irgendwas an oder aus ist, dann ist es function Code 1 und wenn ich es setzen will ob irgendwas angeht oder ausgeht, ja dann ist es function Code 5. Ja muss ich vorher definieren, danach kommt das Register, danach kommt die Adresse quasi, wo ja im Prinzip ist der function Code so ne Art wenn wenn man jetzt ich hatte ja vorher gesagt so ne Art Memory Map wenn man sich das Memory einfach vorstellt wie ne riesige

Tabelle, ja dann hat die quasi. Strukturen ja, und die fangen schon kurzen Bereiche in dieser Tabelle, die ich lege. Also vorher einmal n Bereich fest und dann darf ich in dem Bereich was schreiben. Ja das macht das hat sich Mod bloß so ausgedacht. Also ich muss nicht jedes jede Adresse selber kennen um da reinzuschreiben und jetzt könnte man sich fragen warum warum ja was ist wieso muss ich das aufteilen und so weiter ja weil weil wir die Zahlen klein halten

wollen hab ich. Also ich, ich hab ja schon n bisschen memory, n bisschen Adressierung.

Ja wenn ich jetzt, wenn ich das jetzt alles in einem adressieren will, dann muss ich halt zählen bis ich weiß nicht, war es ja vielleicht mehr als 65000 irgendwas und dann dann reichen mir meine 16 bitworte aber nicht mehr aus, weil Modbus hat ja aber gesagt, hab ich ganz am Anfang gesagt 16 bit ja das ist meine Wortgröße und damit würd ich alles adressieren können und damit ich das gut tun kann fang ich halt immer wieder bei 0 an

zu zählen, sag aber in welchem Adressbereich ich mich befinde ja. Und dieser function Code ist quasi so ne Art Adressbereich in der PLC und der ist der ist nicht arbiträr gewählt, sondern der hat halt auch n funktionales, funktionales ne funktionale Meinung sag ich mal.

Und da gibt es als ersten Mal diese Coils und in den Coils kann ich halt nur so digitale Werte, also 0 oder 1 setzen quasi und entweder les ich die oder schreib ich die und das Coil kommt tatsächlich von Coil, heißt ja Spule auf Deutsch oder Wicklung. Und tatsächlich kommt das da aus der Idee, dann ganz früher. Hab ich halt, wenn ich was an oder ausgemacht hab, ganz oft im elektromagnetischen Relais einfach also Spannung an, dann zieht sich das an und der

Kontakt wird hergestellt. Ne Spannung aus der Kram geht wieder auf und es ist unterbrochen Coil Coil Coil an Coil aus so ja und deswegen heißt das Coil ja es ist an aus ja. Aus der Praxis inspirierte Namensgebung einfach. Richtig, und das find ich zum Beispiel n bisschen schwierig. Also also.

Das ist ja, wenn du in so n. Also wenn du jetzt so als Informatiker reinkommst und dann sagt dir jemand, das ist irgendwie der FC Keul, sag ich so ja was für n Huhn so ich also das ist halt immer blöd, wenn du so krass, also weil eigentlich n generisches Protokoll hast und dann so ja so sehr komische Namen da dran, das macht es nicht einfacher sag ich mal ja gut und dann haben wir die den zweiten Memory Bereich, das nennt sich die die die Discrete Inputs.

Also das ist quasi zum Auslesen von auch digitalen Werten. Aber jetzt von sensorischen Werten, also von keinen die irgendwas hin und her schalten, sondern wo du sagst ist an oder aus einfach als lesendes Ding. Ja das ist ist FC 2, dann können wir, dann haben wir die sogenannten Holding Registers. Also von diesen Kategorien gibt es 4 sag ich mal ja und dann haben wir noch mehr function Codes, weil die dann sagen, ob ich die lesen kann oder lesen und schreiben oder schreiben

kann. So das wird, das wird auch noch mal unterschieden. Ja also ich hab die Calls, die Descreet Inputs und dann kommen als Nächstes die Holding Registers die Holding Register sind im Prinzip so, das ist so das was wir am meisten kennen, das ist einfach frei definierbares Krams, also da sind einfach 16 bit registereinträge, da kann ich reinschreiben oder lesen. Die machen erstmal nichts und und da Speicher ich typischerweise modbus so Settings ab.

Ja wie irgendwas abläuft ist irgendwas insgesamt n bisschen schneller oder auch hier so rezeptgedöns und so weiter ja wo halt quasi die PLC sich quasi Werte rausnehmen kann um dann die Steuerung zu beeinflussen, ja oder wo sie die Sachen reinschreibt die so konfigurativer Art sind so ja was weiß ich ja und dann hast du noch die die Input Registers als vierte Gruppe, die sind auch noch mal speziell rausgetrennt das sind quasi die analogen Sensoren die.

Die im Prinzip fast ohne PLC Logik durchgeschliffen werden. Ne also direkt der der Wert des Sensors der dann so rauskommt. Ja und dann gibt es noch 2 spezielle wo du dann quasi in in einem Go mehrere mehrere Coils setzen kannst oder mehrere Register Holdings reinbringen kannst, damit du damit du quasi optimierst. Diese request response Dinger, denn jetzt muss man auch noch wissen im Seriellen, das ist ja

alles nicht so schnell. Ja das so, man kennt ja von früher noch diese Modems und so weiter das piepst und piepst und

so weiter und. Mal hier muss aber so ne Steuerung auch n bisschen schneller sein und ich hab ja immer nur ein request Response oder das kann schon mal ne Sekunde dauern oder 2 auch je nach lang wie je nachdem was für ne Hardware ist wie lang das Kabel ist oder was und dann kann es sich lohnen, dass man dann in einem in einem Go quasi mehrere Aktionen sagt wo man sagt OK schalt an alle 6 Motoren jetzt hier gleichzeitig die brauch ich so oder so ja muss ich nicht 6

einzelne Dinge abschicken und auf 6 Antworten warten ne ist quasi zum Badging quasi. 115 Kilobit pro Sekunde kann das sein? Das mag sein Thema weiß ich nicht. Also es ist die sogenannte Boutrate. Ne, das ist noch nicht

festgelegt. Wenn du, wenn du seriell sprichst, dann kannst du die sogenannte Boutrate einstellen, das muss dann halt passen, das hat alles mit Timing zu tun und das das das sagt Halt quasi wieviel Bytes gehen dadurch pro Zeiteinheit übrigens spannend, auch wir haben ja gesagt, das ist ein Message Protokoll, es wird immer eine Nachricht, das ist fast so wie wie http irgendwie noch viel einfacher, aber es werden ja Nachrichten geschickt und antworten und

jetzt muss ja so ein System auch wissen wann ist eine Nachricht zu Ende. Also wann? Wann ist der Brief zugeklebt und wann kommt die nächste

Nachricht? Weil ich schicke ja ziemlich viele Briefe die ganze Zeit hin und her, das wird bei dem RTU Protokoll tatsächlich über n Timing gemacht, also wenn wenn es länger als dreieinhalb mal so lang dauert wie normalerweise Zeichen aufeinander folgen, dann wird erkannt, oh das ist scheint ne neue Nachricht zu sein, ne ist übrigens einer der Kritikpunkte von wenn du so harsche Umgebung hast.

So viel Interferenz ist und so weiter und irgendwie mal was stockt und so weiter dann können die ja schon mal durcheinander kommen, weil es gibt kein Zeichen auf dem Protokoll das

Ende ist. Der Nachricht jedenfalls beim RTU nicht, sondern es geht über ne Zeit ja so und so lange nichts mehr kam über die Leitung, dann wird es wohl ne danach ne neue Nachricht sein, ne also muss man das so programmieren einstellen wie auch immer das alles passiert relativ genau levelig nee das ja die Bibliotheken übernehmen das, aber man muss das schon ab. Ursprünglich müssen wir das mal so programmieren, genau das ist so ja ja.

Beim Aski basierten Seriellen ist es anders, da hast du tatsächlich ne nen nen nen Carriage return und n linefeed als Endzeichen. Das wird ganz oft genommen. Kennst du das und das gibt es ja auch im Windows immer noch ne Carriage Return und New Line dieses Slash R Slash n Backslash r backslash n sind die aski Zeichen dafür. Ich weiß nicht ob du das mal gesehen hast. Das hab ich bestimmt mal gesehen, aber da.

Gibt es ja auch. So ne kleine Anekdote dazu, das ist nämlich, das ist nämlich so, dass es schon immer so war, dass im Windows. Eine neue Zeile, und das gilt jetzt für jedes Word Dokument und jeden textuellen Inhalt tatsächlich beendet wurde mit einem Carriot Return and New Line, also slash r, slash n. Diese 2 hintereinander und wo kommt das her ist auch lustig, das erzähl ich mal, weil das alles diese Modbus das ist diese Zeit ne da kommt das da da

kommen diese Begrifflichkeiten ja auch her, Keule und so weiter passt ja auch, ja und das kommt aus der Schreibmaschine her, du hattest ja auf der Schreibmaschine typischerweise n Schlitten oben drauf wenn du getippt hast bewegt sich ja dieser Schlitten immer weiter, damit das Papier quasi. Also der, der die Schläge von der Schreibmaschine haben wir an die gleiche Stelle gedonnert, so fixiert.

Ja, und mit dem Schlitten hast du das Papier bewegt, ja, und dann bist du halt mit dem Schlitten immer weiter Tipp, Tipp, Tipp, Tipp, Tipp und irgendwo macht es das Kling normalerweise n schönes Kling für den dann war die Zeile zu Ende und jetzt gibt es 2 Aktionen die du machen musst.

Du musst den Schlitten zurückschieben an die Anfangsposition, das ist das Carriage Return, das ist backslash Air was es immer noch gibt in Windows und wenn du jetzt wieder tippst dann überschreibst du aber die Zeile. Die du gerade getippt hast. Das passiert auch echt in der

Informatik noch. Also es gibt so aski Art, manchmal siehst du das so geil auf der Konsole, wo sich der Kram steht irgendwie und es überschreibt sich so ja dann dann machen die immer nur carriereturn aber keine New Line, denn die New Line ist wenn du dann den ganzen den ganzen Blatt Papier an dieser Rolle in der Seite Klick auf die nächste Zeile tackerst ja, das sind nämlich eigentlich 2 Aktionen, Tisch zurück und nächste Zeile. Und Windows dann auch ganz

akribisch und Modbus auch im aski Protokoll. Da sind dies genau diese 2 Zeichen, die auch im Aski Alphabet tatsächlich in diesem Ding dranhängen. Ja, das kommt da her, ja und im Linux haben sie sich immer schon gesagt, diese Scheiße machen wir nicht mit dem Carrier Tweet Turn, das sind ja keine Schreibmaschine, die haben gesagt OK ein Zeichen reicht und die haben einfach nur das New Line gemacht, was implizit den Tisch zurück quasi.

Mit in involviert ja, das das Slash R backslash r gibt es auch im Linux, das heißt dann aber auch tatsächlich nur schieb zurück und mach das ja aber wenn du nen wenn du n alleiniges Zeilenvorschub siehst, dann ist es halt quasi zurück und nächste Zeile ja in einem ne kann man mal ist ne schöne Anekdote muss man wissen, gab früher ganz viel Stress mit dem zwischen Linux und Windows ja Kopierer heute kennen das die Programme alleine

ja das ist aber der Unterschied ist immer noch so und die die die Codeditoren die kriegen das Weggekst ja aber. Und es ist echt lustig, wenn du, wenn du Code source Code in den Repository hinterlegst, dann musst du gucken, ob du das von Windows ausmachst oder vom Linux, weil die Zeilenendungen unterschiedlich sind. Wenn das nicht deine Idee das für dich nicht ausgleicht, ja ja. Spannend. Das sind so Sachen.

Herausforderungen durch 16-Bit

Aber in der. Welt bist du bewusst als Anwender? Ne ja. Hast du gesagt, das willst du eigentlich alles gar nicht wissen? Ja, ja. Ja, aber witzig. Und weil wir über Motto sprechen, müssen wir da eigentlich auch noch n ganz klein bisschen ausruhen. Das hab ich auch vorbereitet. Wenn du Bock hast, Gerrit weil. Aus. Dann haben wir gleich die 45 Minuten. Na ja, dann haben wir es und dann bin ich auch durch. Ja, shit verdammt, ich dachte, wir sind schon wieder da.

OK pass auf, ich hab ja erzählt, dass es, dass es immer nur diese 16 Bitwörter gibt, ja die im Prinzip unzahlend Integers entsprechen und das heißt auch im Umkehrsinn, dass ich also, dass ich schon so bei so einfachen Dingern wie nen

Floating Point value. Also sowas wie 123,456 könnte ja, ich könnte ja ich es könnte ja sein, dass ich das schicken will, als die weiß ja, dann hab ich schon n Problem weil weil weil ich das nicht über das Kabel Krieg ging einfach nicht ja weil weil Floating Point Werte lauter i Triple I halt 32 bit Wörter sind ja bin ich angeflickt also jetzt muss ich jetzt muss ich quasi als Anwender in der Anwendungslogik als Programmierer wenn ich das Modbus habe also.

Der Hardware Hersteller sagt ich schick dir n Float und ich kodiere dir das in 2 Wörter in 2 * 16 bit. Dann werden die 16 bit zusammen 32 Bit und ich muss die zusammen auslesen um logisch den richtigen Floating Point wert zu

kriegen. So und jetzt fängt die Scheiße erst an beim Odbus und das ist tatsächlich das ist wahnsinniger Krieg das aber ich muss das einmal hier auf die Tonspur bringen, weil das ist was was wir Softwareentwickler uns befassen, wir sind mit so einem Schwachsinn, es kommt nämlich aniness und Bibetshopping und Wordshopping und so weiter dazu ich nehm es mal kurz an teasern ja.

Also diese 123,456 was 123.456 ist das, das wird erstmal typischerweise dargestellt in Hex hex ist ja die Darstellungsweise hat n Hex zähl ich einfach bis 16 ja das ist die Basis 16, denn sonst wenn wir dezimal haben wir die Basis 10 hatten wir schon mal ne Folge ganz am Anfang muss ich da mal hören, das will ich jetzt nicht wieder auf Aufrühren so aber in Hex sieht diese Zahl aus 42 f 6 e 979 immer n zweier Päckchen, weil weil 2 zweier Päckchen sind quasi 16 bit.

Und 4 zweier Päckchen sind meine 32 bit, die ich brauche. Ja, so und jetzt ist es überhaupt noch gar nicht klar, in welcher Reihenfolge kommen denn diese zweier Päckchen?

Also ich hab ja quasi 2 vierer Päckchen, also wenn ich 16 bit Wörter hab und hab 2 und 30er Informationen brauch ich ja 2 Wörter richtig jetzt schon die Frage lese ich die Wörter von links nach rechts oder von rechts nach links beides geht beides implementiert beides ist draußen in der Welt und im Feld ja. Das ist so wie arabisch und und und und und andere Sprachen. Manche liest du halt von von links nach rechts, andere vielleicht sogar von oben nach

unten, also weil im Coding ist es wenigstens nur von links nach rechts ja und es heißt andianess, das ist das Stichwort, beschreibt quasi die Leserichtung meiner Wörter, wenn sie mehr als quasi ein Wort haben, dann muss ich ja definieren, lese ich sie von links nach rechts, um den größeren Sinnzusammenhang, hier das Floating Wert auszulesen, ja. Und Big Andian wäre, wenn ich das quasi so lasse, wie ich es, wenn ich es von links nach

rechts lese, quasi 42 f 6 e 979. Das ist Big Andian und Little Andian ist quasi da sind jetzt die Vierer Pakete getauscht, da habe ich also in den letzten in E 979 habe ich zuerst und dann kommt der 42 f 6 so das das ist schon mal die Andiness, die muss mit dokumentiert werden und die kann sogar innerhalb einer Steuerung. Auch pro Ding irgendwie sich sich wechseln, das ist Ungeil, das ist auch sehr selten, aber

kann passieren. Das ist also in, aber dokumentiert in irgend so einer generellen Dokumentation. Das wird jetzt nicht immer mitgeschickt, diese Info über den über den. Das ist Pro PLC und pro Gerät unterschiedlich. Das muss jeder Hersteller quasi mitschicken. Provariable im Notfall ne und das ist also die Herstellerimplementierung dieses Protokolls, das genau aber das Protokoll legt das nicht fest und deswegen gibt es das halt alles ja.

Und dann gibt es quasi noch, jetzt haben wir ja die Viererpakete, die wir entweder von rechts nach links lesen und als das nicht reichen würde, kannst du noch innerhalb der dieser Wörter quasi die Durcheinander swapen und dann auch noch mal von rechts nach links lesen.

So hast du noch 2 Möglichkeiten hast das nennt dann Byte Swaped und Word Byte Swaped, die gibt es auch noch die Variante, das heißt du hast alleine um float darzustellen, da haben wir ja noch nicht viel geschafft, sag ich mal ja so von also heutzutage float wir sicken Jason durch die Gegend ist für Lack ist gefährlich so ja. Aber alleine um float richtig zu interpretieren, musst du die Richtige von den 4 möglichen Kombinationen zum Dekodieren irgendwie wählen.

Ja, also auf dem Level ist Modbus und deswegen werden da auch nicht ganz so viele Daten und schon gar nicht irgendwelche Komplexen hier so von wegen hier irgendwie n Objekt n Key Value und n Array von zahlen oder sowas das wirst du da nicht finden. Ja das ist weil da kriegst du nerven wenn du das irgendwie zurückdekodierst, dafür ist das nie gemacht, man hat also sehr simple simple Daten quasi durch die Gegend geschickt ja und man hält sich zurück, ja.

Und das letzte, was ich sagen will, ist, dass man das war cool bei meiner alten Firma war das immer die das die Aufnahmeprüfung für wenn du anfangen wolltest als Softwareentwickler tatsächlich im Modbus zu optimieren, denn ganz oft hast du Interesse an vielen Registern.

Jetzt hab ich erzählt die es gibt diese Sektion und so weiter und ich hab auch erzählt es ist sehr teuer quasi nen Aufruf zu machen und mir da was zu entgegenzunehmen kannst du modbus immer sagen ich fang irgendwo an und dann lese ich einfach nach rechts alle Bytes die da so kommen ja.

Und jetzt kann man nämlich, und das muss man auch, man muss optimieren, les ich quasi n paar mehr Bytes mit erwischt dann aber 3 von denen, die ich eigentlich sehen will, die restlichen schmeiß ich weg, hab aber nur einen Lesevorgang und n bisschen mehr, quasi ne größere Nachricht ja dafür aber weniger requests und so weiter und das ist n ziemlich schwieriges Problem, tatsächlich gar nicht so einfach das so zu optimieren, dass ich n gutes Mittel hab zwischen nicht zu vielen

Requests und auch nicht zu viel Memory, dass ich nicht brauch, ja. Das heißt, auch diese, dieses dieses Zugreifen auf Modbus muss man auch selber auf der Anwendungsebene steuern. Ne, das zeigt noch mal wie Low Level im Prinzip dieses modbus Protokoll ist. Das ist in anderen später kommenden Industrieprotokollen alles Zweck abstrahiert, da muss ich mich als Entwickler

Sicherheitsaspekte

überhaupt keine Gedanken mehr machen, ne? OK, krass, das sind wieder so Details da, da hätte ich lange recherchieren können, bis da irgendwas zu finde. Das ist ganz cool ich. Ich finde so ich, also ich muss da auch wieder n bisschen recherchieren, ich hab ja auch schon mal modbus gut geschrieben und hab das Gott sei Dank wieder vergessen gehabt. Das ist auch so was was man nicht unbedingt andauernd im Gehirn braucht, aber für so n Podcast kann man uns da mal rauskramen.

Ja mega cool du, ich hab noch ne Frage, dann auch die letzte von meiner Seite. Wie sieht es denn aus mit Security und Sicherheit, also gibt es nicht modbus.

Nicht nicht vorgesehen ist, wie keine Verschlüsselung, gar nichts plain, du brauchst n Port und ne IP Adresse und dann machst du. Du kannst auch im Wireshark, es gibt so n es gibt so n Tool, das heißt Wireshark, da kannst du quasi direkt auf die Netzwerkkarte gucken was fliegen da für Bytes vorbei, da ist Modbus tatsächlich als Filteroption drin, dann kannst du live den Modbus Krams mitlesen und das dekodiert ja auch sowohl das das das Binäre

als auch das Aski und so weiter da ist nichts geschützt, du musst Netzwerksegmentierung machen, du musst andere über VPNS oder irgendsowas, du musst das quasi drumherum schützen, du kannst es intrinsisch nicht schützen, du kannst auch dich die Daten kodieren oder irgendwas und das gibt es alles nicht, das ist einfach, damals war Sicherheit noch kein Thema. Ja, und jetzt gibt es sowohl so n ne Entwicklung, die nennt sich dann modbus TLS, wo tatsächlich NTLS Tunnel aufgeht.

Ja und sich dann Geräte gegenseitig per Zertifikat irgendwie authentifizieren oder sowas vorstellbar, oder? Total vorstellbar gibt es bei OPCUA ja dann auch schon, die haben das quasi mit eingebaut in ihren Standard.

Das ist n Klassiker, das ist also OPCUA kannst du komplett absichern über Zertifikate jetzt kann man nachträglich auch so n modbus einhängen, aber das ist also im Standard nie vorgesehen gewesen, ne und also ich kenne also das mag es geben, ich hab es noch nie gehört, vielleicht jetzt bei den ganz modernen Devices, aber ich würd sagen alles was normalerweise modbus ist hat nichts mit TLS, das geht einfach so ich. Hab n bisschen geguckt, das sind wohl also n paar Geräte die

sowas ermöglichen. Ne. Also Zertifikatsmanagement ist einfach muss dann. Im Feature Set des Geräts vorhanden sein. Ja, genau, und das musst du dann vorbereiten. Ne, das kann das geht auch nicht von alleine, da musst du quasi ja vorher so n ja die Zertifikate quasi hinterlegen, austauschen und so weiter und dann dann sind wir noch mal der

ganzen. Ach Entschuldigung, aber. Dafür hättest du ja wirklich dann die Frage, ob man da nicht dann vielleicht was anderes nehmen sollte, wenn sowieso n neues Gerät ist, was entwickelt wird, ne, aber wer weiß, die die ganzen Automatisierer kennen sich halt aus mit dem Kram. Ne, das ist wahrscheinlich aus dem Hintergrund. Ne, das heißt ja nicht, dass es also. Das es ist zwar unsicher an der Stelle oder nicht gesichert, das heißt ja aber nicht, dass du es nicht sicher machen kannst.

Ja, also es gibt ja Mittel und Wege, vielerlei ja, also wenn du es, wenn du das halt tunnelst zum Beispiel über NVPN oder wenn du das Netzwerk quasi absegmentierst und da keiner dran kommt und n Gateway hast und so, da kannst du schon n paar Sachen machen. Ja und normalerweise wie gesagt, es ist ja n Protokoll, da werden ja jetzt auch nicht gigantische Daten übertragen und es ist Client Server, du sprichst halt auch nicht mit der ganzen Factory, sondern.

Ja, mit 12 1517 PLCS, es kann schon n Mist sein so man muss, man muss, man muss das wissen, dass Modbus nicht sicher ist. Man muss das Absichern, aber das ist ja deswegen trotzdem kein Grund würd ich sagen um es zu verdrängen. Ja, das ist schon OK, ja es hat seine, es hat seine

Integration von Modbus in Heisenware

Anwendungsdinger. Du dann tu mir noch einen Gefallen und sag noch n bisschen was dazu, wie wir Integration von Modbus bei Heiseware möglich machen. Ich glaube wer jetzt noch dabei ist hat auch Bock sich das noch mal ganz kurz anzuhören, vielleicht in einer Minute oder so. Was was kann man mit Modbus Devices und und Heisenware einstellen?

Ja, also wenn wenn man modbus device hat, dann kann man sich den den Heisenware Edge Connector raus unter das sprechende Protokoll. Wir unterstützen ne ganze Menge von diesen Industrieprotokolls, also auch OPCOA und MQTT und Siemens s 7 und so weiter und modbus hat 1 davon und über TCP sowieso gar kein Problem. Dann bin ich ja quasi auf dem Internet Stack, dann kann ich mein modbus Gerät direkt damit konfigurieren, auslesen und so weiter und natürlich ohne dass

ich es coden muss, weil. Und ich kann es auch live angucken, was da ankommt auf dem Kabel. Das ist immer ganz schick bei uns.

Manchmal weiß man ja nicht ganz genau, passt die, oft passt auch die Dokumentation nicht ganz zu dem, wie die Hardware reagiert, dann kann ich mir das aber alles anzeigen lassen und wie gesagt, seriell geht auch cool, das mach ich dann immer über so n die die kann man kaufen die Dinger, das ist einfach so USB zu seriell und dann kann man auch mal wenn man irgendwas serielles ganz altes noch mal hat erstmal über den Laptop das Auslesen testen

oder aber und dann gibt es ja so diese ganzen Gateway Dinger. Die ja auf zig Kommunikationskabel dann können.

Dann stell ich mir halt so n kompetentes Gateway hin, dann mach ich quasi PLC oder Hardware direkt, je nach dem Gerät wie es aufgebaut ist steck ich das Kabel quasi in so n Gateway von da und von da angeht es weiter Richtung Internet über TCP Protokoll, aber in diesem Gateway kann zum Beispiel der Eisenverage Connector drinne sein, der dann quasi dieses über das serielle Kabel kommende Verbindung aufbaut und versteht und dann schicken wir das direkt in die in die Cloud und dann

kann man ja, dann kann man das so wie man das hat, so schön kann bei uns. Einfach direkt in so einer Backend Logik mit einem möglichen Mannheim verknoten und coole Sachen bauen, ne. OK, gut, Burkhard, dann lass ich dich in den Feierabend, den wohlverdienten. Ich schneid jetzt noch n bisschen du armer alles cool. Ja dann danke Euch fürs Zuhören und wir hören uns in 2 Wochen wieder bei einfach komplex macht es gut tschau. So sieht es aus. Tschüss aus Hamburg.

Einfach komplex wird präsentiert und produziert von Heiseware. Wir freuen uns auf deine Fragen und deinfeedbackanpodcast@heiseware.com vielen Dank fürs Hören dieser Folge bis Dienstag in 2 Wochen und Tschüss aus Hamburg.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android