MQTT voor IoT
Weer volop in de belangstelling
Tijdens het Industrial Ethernet event 2020 (nieuwe datum 17 juni) gaat het natuurlijk om datacommunicatie op de werkvloer, over automatisering van machines en fabrieken en natuurlijk Industrie 4.0 en IoT. Hierbij is niet alleen de fysieke netwerkstructuur van belang maar ook de manier waarop deelnemers binnen het netwerk met elkaar communiceren. Welke taal wordt er gebruikt en welke afspraken zijn er zodat niet iedereen door elkaar aan het praten is. Hebben we het over IoT dan horen we de laatste tijd weer heel vaak de term MQTT als methode waarmee berichten heen en weer gestuurd worden. Tijdens het Industrial Ethernet event gaat één van de lezingen hier speciaal over. Vandaar dat we nu alvast een blik vooruit werpen en de vraag gaan beantwoorden wat is ook al weer MQTT.
Diederick Nab van WAGO zal u in één van de laatste lezingen bij gaan praten over Message Queue Telemetry Transport afgekort als MQTT. Dit is een communicatie protocol dat vaak wordt genoemd in combinatie met IoT. Waarom is dat het geval en voor welke industriële netwerkuitdagingen kan MQTT een uitkomst zijn. Hij gaat het u allemaal vertellen.
Waarvoor
WAGO heeft een serie PLC’s waarmee een open en veilig automatiseringsplatform te maken is dat wordt ondersteund door de meest gangbare veldbusprotocollen en Ethernet-standaarden. Voor monitoring en analyse in de Cloud, zijn deze PLC’s eenvoudige en veilig te verbinden met de buitenwereld. Via het MQTT-protocol vindt data-uitwisseling plaats tussen de controller en de Cloud-services van bijvoorbeeld Microsoft Azure, Amazon Web Services, IBM Cloud, SAP Cloud of het kant-en-klaar platform WAGO Cloud genaamd. Deze kan gebruikt worden voor een breed scala aan toepassingen. In de WAGO Cloud kunnen gegevens direct zonder IT-kennis worden geanalyseerd en kan de gebruiker onmiddellijk worden geïnformeerd over bijvoorbeeld machine-storingen.
Wat is MQTT
Dit is een protocol dat al ruim 20 jaar geleden bedacht is en waarbij de netwerkdeelnemers niet rechtstreeks met elkaar communiceren, maar altijd via een tussenstation, de broker genaamd. De broker moet u zien als een digitale krant waar netwerkdeelnemers hun data naar toe sturen. De broker maakt deze data openbaar en verstuurt de gegevens naar iedereen die zich geabonneerd heeft op de data van de bewuste bron.
Met een voorbeeld zullen we dit duidelijk proberen te maken. Stel we hebben een verwarmingsinstallatie die de temperatuur in huis moet regelen. Wanneer alle radiatoren in het gebouw voorzien zijn van elektronische regelkranen en elke ruimte zijn eigen thermostaat heeft, dan is dat een vrij complex geheel, want de Cv-ketel moet gaan branden als één of meer thermostaten een warmtevraag signaleren. Tegelijkertijd moeten de radiatorkranen in de desbetreffende ruimte geopend worden zodat de ruimte kan opwarmen. Nog ingewikkelder wordt het als we ook via internet de temperatuur willen regelen en een registratiesysteem mee willen laten lopen voor bijvoorbeeld de afrekening van de verbruikte energie. Alle thermostaten moeten dan met heel veel netwerkdeelnemers communiceren waarbij goed in de gaten gehouden dient te worden wie, wanneer welke data moet ontvangen. Simpeler wordt het als de thermostaten alleen maar hun temperatuurwaarden publiceren in de broker. Zij hoeven zich dan niet bezig te houden met welke netwerkdeelnemers hun meetgegevens moeten ontvangen. Wie de meetgegevens wel moeten ontvangen, regelt de broker. Hij stuurt de data naar de netwerkdeelnemers die zich op de desbetreffende data geabonneerd hebben. Dat wil dus zeggen dat elke radiatorkraan zich geabonneerd moet hebben op de data van de thermostaat in de eigen ruimte en dat de Cv-ketel zich geabonneerd moet hebben op de data van alle thermostaten. Dit alles maakt dat het netwerkverkeer heel simpel is. De berichten zijn ook kort, hetgeen maakt dat dit protocol voor IoT heel gunstig is. Ook is het geheel zeer flexibel. Wordt bijvoorbeeld een muur uitgebroken en komt er een thermostaat te vervallen, dan hoeven er alleen een aantal radiatorkranen aangepast te worden. Zij moeten immers naar een andere thermostaat gaan luisteren. Voor de Cv-ketel verandert er niets. Hij krijgt simpelweg geen warmtevraag meer van de thermostaat die vervallen is.
Een stapje meer
Het voorgaande beschrijft de basis van MQTT waarbij we te maken hebben met netwerkdeelnemers die data publiceren en een broker die als tussenstation fungeert en de gepubliceerde data verstuurt naar de abonnees die iets met de data willen doen. Omdat de verzender van de data niet direct in contact staat met de uiteindelijke ontvanger (hij hoeft zelfs niet eens te weten wie de data allemaal krijgt) weet hij dus ook niet of de data ook daadwerkelijk ontvangen wordt. Een aantal verschillende systemen is dan ook ingebouwd die deze taak moeten regelen. Het kan immers hinderlijk zijn als door een netwerkstoring cruciale data verloren gaat.
Ook hebben we het nog niet gehad over beveiliging van de data, want zoals we het omschreven hebben, kan alles en iedereen data publiceren op de broker of zich abonneren op de data die naar de broker gestuurd wordt. Voor een netwerk dat niet met de buitenwereld verbonden is, kan dat, maar voor IoT is dit zeer gevaarlijk. De broker kan zich dan ook in de Cloud bevinden. Ongewenste gasten kunnen daardoor heel gemakkelijk toegang krijgen tot het dataverkeer.
Hoe het basisprotocol van MQTT gebruikt kan worden in een omgeving die voor alles en iedereen veilig is, zal Diederick Nab uitgebreid vertellen tijdens het Industrial Ethernet event. Voor iedereen die zich bezig houdt met IoT en Industrie 4.0 is dit dan ook een lezing die meer dan de moeite waard is om te bezoeken.
Voor meer informatie:
www.fhi.nl/industrialethernet