artikel

Modbus nog steeds populair

elektrotechniek

Modbus is al 30 jaar oud. Maar als industrieel netwerk telt het nog steeds mee. Zo constateert industrieel-netwerk-guru Rob Hulsebos. Tijd voor een handboek Modbus.

Modbus nog steeds populair

Door Rob Hulsebos

 

Dat Modbus nog steeds zo populair is, is opvallend voor een vrij eenvoudig protocol waarin we met bits en bytes werken. De concurrerende protocollen zijn al heel wat versies verder, of alweer van de markt verdwenen. Wat verklaart deze populariteit? En tegen welke problemen lopen we desondanks aan?

Serieel

De eerste Modbus-varianten stammen uit de vorige eeuw, en zijn typerend voor het soort netwerkprotocollen dat we destijds zagen: serieel (RS232/RS485), master/slave, bit/byte georiënteerd, langzaam. We hadden nog niet de CPU-rekenkracht en de technologie (elektronica, bekabeling) om op hoge snelheden complexe protocollen te kunnen uitvoeren.

Snelheid fors omhoog

Modbus is sindsdien wel verder geëvolueerd, onder andere met de Ethernet-variant Modbus/TCP, maar de functionaliteit die het protocol biedt is gelijk gebleven. Wie 30 jaar geleden eerst Modbus/ASCII aan de slag ging, hoeft maar weinig nieuws te leren om met Modbus/TCP te kunnen werken. Zelfs voor applicatiesoftware is de wijziging minimaal; alleen het kabeltje is anders. Maar de snelheid ging wel fors omhoog.

Protocolspecificatie is klein

Ik denk dat een van de belangrijkste oorzaken van de populariteit van Modbus zijn eenvoud is. De protocolspecificatie zelf is vrij klein. Alle commando’s (‘functiecode’ geheten in Modbus-jargon) werken op losse bits of (16 bits) registers. De bits komen overeen met digitale I/O, en de registers met analoge I/O of gewoon geheugen. Dat is een concept dat weliswaar niet modern is (object-gebaseerd bijvoorbeeld) maar wel makkelijk te begrijpen is en ook precies past bij hoe gewerkt wordt op veel PLC’s.

Moderne concepten schieten door

Er zit geen abstractielaag tussen, dus als iets niet werkt zoals gewenst dan is de oorzaak daarvan ook makkelijk te vinden. Niet iedereen is IT-geschoold, soms denk ik dat we wel eens te ver doorschieten met moderne concepten in netwerkland. Maar hier heeft Modbus dus geen last van.

Modbus in gebouwbeheerssystemen

Omdat in Modbus een bit een bit is, kan elk soort applicatie er mee aangestuurd worden. Wat er aan elektrotechniek achter dat bit zit, kan van alles zijn. Modbus komen we dus ook overal tegen; in de machinebouw, procesautomatisering, gebouwbeheerssystemen, veiligheidssystemen, en natuurlijk ook in IOT-toepassingen.

Modbus is goedkoop

Voor leveranciers van apparatuur biedt Modbus ook zijn voordelen. Het toevoegen van een seriële Modbus-poort is erg goedkoop, er zijn geen speciale onderdelen voor nodig en software is eenvoudig te schrijven. Mijn eerste Modbus-slave implementatie, die op een (destijds in 1992 snelle!) 10 MHz CPU moest werken, moest alle zeilen bijzetten om een snelheid van 19200 bit/s aan te kunnen. Maar het is sindsdien alleen maar makkelijker geworden; CPU’s zijn veel sneller en dankzij internet is veel open-source software te vinden, dus zelf schrijven is vaak niet meer nodig.

Modbus/TCP is ook eenvoudig

Ook voor Modbus/TCP is steeds eenvoudiger geworden: een Ethernet-interface is meestal standaard aanwezig, kost ook bijna niets extra. Idem voor TCP/IP-ondersteuning in het OS; men hoeft niets meer te kopen. Een leverancier kan dus met weinig investering Modbus-ondersteuning voor zijn apparatuur toevoegen. Ik heb dit zelf diverse malen gedaan en tegenwoordig kan ik dit binnen enkele dagen maken. Het meeste werk gaat zitten in de koppeling naar de overige firmware.

Modbus/TCP is geen industrieel ethernet

Interessant aan Modbus/TCP is dat het eigenlijk helemaal geen industrieel Ethernet variant is, alhoewel het vaak wel zo wordt gezien. Modbus/TCP werkt op basis van TCP/IP en kan werken op elke infrastructuur die TCP/IP aan kan. Dat is inderdaad meestal wel Ethernet, maar het zou ook kunnen werken op basis van telefoonlijnen, ADSL, GSM, WiFi, Bluetooth en zelfs internet.

Integratie met ProfiNet, Ethernet/IP en Ethercat

Technisch gezien zou het een fluitje van een cent zijn om te communiceren tussen een besturing hier in Nederland en een apparaat op de zuidpool.  Verder kan Modbus geïntegreerd worden in andere industrieel Ethernet-protocollen zoals ProfiNet, Ethernet/IP, Ethercat etc. die gebruik van TCP/IP toestaan voor niet-realtime gebruik. Ik ken geen enkel ander protocol met zoveel flexibiliteit.

 

Cybersecurity

Eén aspect dat belangrijk is om in de gaten te houden is dat Modbus/TCP niet zomaar aan internet gekoppeld moet worden. Modbus heeft op het gebied van cybersecurity geen goede reputatie, dat komt deels door het protocol zelf, maar ook door slechte implementaties. Diverse leveranciers bieden daarom speciale ‘Modbus firewalls’ aan, die – in tegenstelling tot gebruikelijke firewalls – kennis hebben van het protocol en het gebruik ervan.

Beveiliging Modbus

Het kopen van extra firewalls is natuurlijk niet goedkoop, en daarom werd er al lang gesproken over betere beveiligingsmogelijkheden in Modbus. Die kwamen er in 2018, toen Schneider de specificatie voor ‘Modbus/TCP Security’ publiceerde. Deelnemers op het netwerk kunnen elkaar nu authenticeren met digitale handtekeningen, zodat inkomende commando’s van onbekende partijen (hackers?) genegeerd kunnen worden. Maar ik heb deze nieuwe Modbus-variant nog niet in de praktijk gezien, en het zal nog heel lang duren voordat iedereen om is. Als dat al gaat gebeuren.

Gevaren Modbus

Daarom moet goed gekeken worden naar beveiligingsmaatregelen rondom Modbus/TCP. Wie met de aloude seriële Modbus-varianten ASCII en RTU werkt denkt misschien ‘dit is voor mij niet nodig’. Maar zodra zo’n netwerk via een Ethernet-converter toch aan het LAN hangt, dreigen dezelfde gevaren.

Ondanks felle competitie is de toekomst voor Modbus/TCP zonnig

Rozengeur en maneschijn?

Maar gaat de aanleg van elk netwerk nu van een leien dakje? Helaas niet altijd. Modbus schrijft niet voor hoe de bekabeling van het netwerk er uit moet zien en zegt ook niets voor de applicatie-interface. Elke leverancier vindt het wiel dan dus zelf uit. In tegenstelling tot de moderne industriële protocollen is het dus geen ‘plug & play’; bekabelings-technisch moet het goed aangelegd worden en daarna volgt het applicatieprogramma.

Juiste meetapparatuur

Zonder de juiste meetapparatuur is het moeilijk om de fouten op te sporen. Dan moet je met ‘trial and error’ verder en dat is vaak tijdrovend. Complicerende factor is dat de leveranciersdocumentatie soms niet al te duidelijk is en dan moet de gebruiker het maar uitpluizen. Probleem is dat een leverancier niet kan voorzien met welk ander apparaat zijn apparaat moet communiceren.

Leveranciersafhankelijk

De volgende hindernis is dat de juiste ‘functiecodes’ (Modbus-jargon voor: commando’s) ondersteund moeten worden. In de Modbus-specificatie zijn die netjes opgesomd, maar elke leverancier kan hier zijn eigen subset uit kiezen. Het komt dus wel eens voor dat men te laat tot de ontdekking komt dat de gewenste functiecode niet beschikbaar is voor de applicatie, dan moet er omheen geprogrammeerd worden.

Processorarchitecturen

Tot slot moet de data die men terugkrijgt of gaat zenden nog in het juiste formaat staan. Modbus is ooit ontworpen in de tijd dat een 16-bit CPU het toppunt van rekenkracht was, maar tegenwoordig zijn 32 en 64-bits CPU’s gebruikelijk. Ook bestond destijds nog geen floating-point. Dat moet dus op de een-of-andere manier afgebeeld worden op de 16-bit registers die in Modbus het grootste datatype zijn. Omdat ook hier niets over is vastgelegd, zien we in de praktijk veel verschillen tussen leveranciers. deze plooien moeten door het applicatieprogramma worden recht gestreken. Het helpt dan wel als men kennis heeft van de gebruikelijke processorarchitecturen.

Toekomst Modbus

Ondanks de felle competitie op de industrieel Ethernet markt zie ik de toekomst voor Modbus/TCP zonnig in. In industrieel Ethernet wordt nu ingezet op TSN (Time-Switched Networking), wat nog lang niet klaar is. Het bij TSN geschetste voordeel dat men IT- en OT-omgevingen aan elkaar kan koppelen is voor Modbus niet relevant, want dankzij TCP/IP kan men al twee decennia naadloos die grens over. En als TSN er eenmaal wel is, kan Modbus daar ongewijzigd gebruik van maken. Uiteraard zijn met Modbus/TCP geen snelle realtime toepassingen te maken. Maar dat is in veel toepassingen ook helemaal niet relevant. Modbus gaat nog jaren mee!

 

Handboek over Modbus

De meeste gebruikers lopen steeds tegen dezelfde problemen op met Modbus: bekabeling, configuratie, applicatiesoftware. Ook op webfora komen steeds dezelfde vragen terug. Er is echter geen kant-en-klare documentatie te vinden over hoe problemen aan te pakken. Uiteraard is er op internet genoeg te vinden over RS-232 / 485, seriële netwerkconfiguratie en over Modbus. Maar het zijn steeds losse stukken. Over Modbus zijn wel twee kleine publicaties verschenen, maar niemand heeft er ooit een boek over geschreven waarin alle onderdelen aan bod kwamen. Daarom heeft industrieel-netwerk-guru Rob Hulsebos deze lacune opgevuld. In ‘Modbus the Manual’ behandelt hij alle aspecten van Modbus, gebaseerd op zijn ervaring in bijna drie decennia, zowel als leverancier, als gebruiker en als troubleshooter. Daarnaast komen ook onderwerpen als het OSI-model, snelheidsberekeningen, protocolconversies en protocolimplementaties aan bod, aangevuld met uitleg over RS-232 en RS-485.

Modbus the Manual, door Rob Hulsebos (engelstalig)

ISBN 978-946-386-7641

https://www.mijnbestseller.nl/ of via elke boekhandel, prijs circa € 40

 

Verder lezen:

 

 

Reageer op dit artikel