De sleutel tot Internet of Things (IoT)-technologie is communicatie, en verschillende protocollen spelen een belangrijke rol bij het verbinden van het enorme aantal "dingen" met het internet. Dit artikel introduceert twee complementaire IoT-protocollen: Message Queuing Telemetry Transport (MQTT), een schaalbaar internetprotocol dat wereldwijde communicatie in het IoT ondersteunt, en Modbus, een lokaal protocol voor apparaatverbindingen op korte afstand, en geeft een gedetailleerd inzicht in de verschillen tussen beide. het verschil.
MQTT-protocol
MQTT is een open, lichtgewicht machine-to-machine protocol ontworpen voor IoT-interacties. Het MQTT-netwerk bevat een MQTT-broker, die verantwoordelijk is voor het coördineren van interacties tussen MQTT-brokers. Agenten zijn uitgevers die verantwoordelijk zijn voor het publiceren van informatie voor gebruik door gebruikers.
MQTT stelt weinig eisen omdat het is ontworpen voor ingebedde apparaten met beperkte middelen. Naast de kleine footprint biedt MQTT uitstekende communicatie-efficiëntie (zelfs over netwerken met lage bandbreedte) en zeer weinig overhead (vergeleken met protocollen zoals HTTP). In 3G netwerken is de doorvoersnelheid van MQTT 93 keer sneller dan Representational State Transfer (REST) via HTTP.
MQTT implementeert een publish/subscribe-patroon door minimale methoden te gebruiken om de uit te voeren bewerkingen op een specifiek onderwerp aan te geven. Agenten maken verbinding met brokers voordat ze onderwerpen publiceren of zich erop abonneren. Eenmaal voltooid, verbreekt de agent de verbinding met de broker. MQTT methode definitie:
- Verbinden - Een verbinding tot stand brengen met de MQTT broker.
- Verbinding verbreken - Verbinding verbreken met de MQTT broker.
- Publiceren - Publiceer een onderwerp op de MQTT broker.
- Abonneren - Abonneren op een onderwerp van een MQTT broker.
- Afmelden - Afmelden van het onderwerp op de MQTT broker.
MQTT staat het definiëren van quality of service (QoS) toe. Er zijn drie niveaus van QoS in MQTT:
QoS 0: Dit niveau vertegenwoordigt "at-most-once" aflevering (best case scenario). Het bericht wordt niet bevestigd, dus dit is een eenmalige aanpak.
QoS 1: Dit niveau geeft "minstens één keer" levering aan. Gebruikers kunnen berichten meer dan eens ontvangen, maar de ontvanger mag de ontvangst bevestigen.
QoS 2: Het traagste maar meest gegarandeerde niveau van servicekwaliteit is niveau 2. QoS2 staat voor "just once" en bestaat uit een leveringshanddruk in vier fasen. Dit niveau is het traagst, maar het veiligst.
Het QoS-niveau dat je kiest, hangt af van het belang van de gegevens en de levering ervan.
Modbus-protocol
Modbus is een serieel communicatieprotocol dat zich heeft ontwikkeld tot een uitgebreide reeks protocollen die meerdere fysieke verbindingen (zoals RS-485) ondersteunen. De kern van Modbus is een serieel communicatieprotocol dat gebruik maakt van master-slave modus. De master stuurt een verzoek naar de slave en de slave antwoordt. In een standaard Modbus-netwerk is er één master en maximaal 247 slaves (als echter 2-byte adressering wordt gebruikt, kan deze limiet aanzienlijk worden verhoogd).
MQTT Bij RS-485 verloopt de communicatie tussen master en slave in frames die functiecodes aangeven. Deze functiecode identificeert de uit te voeren functie, zoals het lezen van een onafhankelijke ingang, het lezen van een first-in-first-out wachtrij of het uitvoeren van een diagnosefunctie. De slave reageert dan op basis van de ontvangen functiecode, wat een eenvoudig antwoord is dat wordt aangegeven door een reeks bytes. Daarom kunnen slaves slimme apparaten zijn of eenvoudige apparaten met slechts één sensor.
Uit deze beschrijving kun je opmaken dat het Modbus-protocol heel eenvoudig is, maar dat het door zijn openheid als protocol het de facto communicatieprotocol is voor hele industrieën of SCADA-systemen.
MQTT en Modbus kunnen elkaar aanvullen om de prestaties van het internet der dingen te verbeteren. Modbus gebruiken als lokale interface om apparaten te beheren en MQTT gebruiken als globaal protocol om het bereik van het apparaat uit te breiden spelen beide een belangrijke rol.