Hoe xLogic Micro PLC te verbinden met een MQTT-broker voor externe monitoring

Vraag een PLC-verkoper naar MQTT en je krijgt een routekaart: "volgend jaar, misschien, op het premium model." Dan kijk je naar de kleine lettertjes en vind je een gateway, een converter of een cloudabonnement dat achter de functie verstopt zit. De MQTT-ondersteuning op de xLogic Ethernet CPU's heeft dat allemaal niet — het zit al in de firmware sinds de 1.04 revisie, en het publiceert rechtstreeks vanuit de controller.

Dat verandert wat een budgetmachine kan doen, en de meeste integrators hebben het niet opgemerkt.

Waarom MQTT voor eenMicro PLC

MQTT is precies voor deze situatie gebouwd: een apparaat op een onbetrouwbaar netwerk, dat kleine berichten naar een broker publiceert, met abonnees die komen en gaan. Een machine in een fabriek, een pompstation in een veld, een kas twee uur van het kantoor — elk publiceert zijn status; het clouddashboard, de telefoon-app en de laptop van de ingenieur abonneren zich allemaal op hetzelfde onderwerp. Geen polling, geen open poorten naar de fabriek, geen SCADA-server die de verbinding in de gaten houdt.

De broker beheert de chaos. De PLC publiceert gewoon.

Wat je daadwerkelijk configureert

De verbindingsblokken leven in het programma: stel het brokeradres in, het onderwerp, het publicatie-interval en map welke waarden in de payload gaan. De CPU beheert de levenscyclus van de verbinding — opnieuw verbinden na een onderbreking, opnieuw publiceren na een gat — wat het deel is dat handmatige implementaties doodt.

Koppel het aan de webserver en de alarm-SMS en je hebt drie onafhankelijke externe kanalen op één controller. Clouddashboard voor het kantoor, browserpagina voor de operator, SMS voor de dienstdoende ingenieur. Kies je kanaal per doelgroep.

Echte case: Externe kasmonitoring

Een kwekerij met vier compartimenten wilde cloudzichtbaarheid zonder het site-netwerk opnieuw op te bouwen. Elke compartimentcontroller publiceerde temperatuur, luchtvochtigheid en klepstatus naar een broker op een gehuurde VPS; een eenvoudig dashboard abonneerde zich en toonde alle vier de compartimenten op één scherm. Toen de internetverbinding een middag uitviel, bleven de controllers publiceren in een lokale wachtrij en de waarden haalden in bij het opnieuw verbinden.

De samenvatting van de kweker, vertaald vanuit enthousiasme: "Ik keek naar de temperatuurgrafiek vanaf mijn telefoon terwijl ik op vakantie was. Het was beter dan daar zijn."

Waar MQTT het verkeerde antwoord is

Wees eerlijk over limieten. MQTT is evenement- en telemetriegericht — het is geen deterministische regelkring. Als je gegarandeerde levering en milliseconde-respons nodig hebt, gebruik dan Modbus TCP lokaal. MQTT is voor supervisie en rapportage, niet voor veiligheidsvergrendeling. Ontwerp het zo en het zal je jaren van dienst zijn.

En houd de brokerreferenties recht. Een PLC die publiceert naar een openbaar onderwerp is een PLC die zijn zaken uitzendt. Privéonderwerpen, een lokale broker, of op zijn minst TLS op de broker — de opstartkosten zijn minuten, en de vermijding van schaamte is echt.

Het Patroon Waard om te Stelen

Onderwerp Ontwerp Dat Schaalbaar Is

MQTT is alleen zo schoon als je onderwerpstructuur, en onderwerpstructuur is waar kleine projecten stilletjes onbeheerbaar worden. De naïeve benadering — één onderwerp per apparaat, één payload met alles erin — werkt voor één machine en stort in bij tien. Elke abonnee herinterpreteert elke payload, elke wijziging in de payload breekt elk dashboard, en debuggen wordt een zoektocht per onderwerp.

Ontwerp de hiërarchie voordat je de eerste publicatie doet. Een patroon dat me goed heeft gediend:site/apparaat/categorie/waarde. Dusplant1/pump1/status/run, plant1/pump1/sensor/level, plant1/pump2/alarm/high-level. De wildcard-abonnees — een dashboard voor plant1, een pagina voor pomp1, een alarmluisteraar voor alles — abonneren zich precies op de schijf die ze nodig hebben. Nieuwe apparaten passen in zonder de oude onderwerpen aan te raken, en de payloads blijven klein en getypeerd.

Houd de payloads eenvoudig: een waarde en een tijdstempel. Geen geneste JSON-blobs met elf velden, tenzij je ze echt nodig hebt. Eenvoudige payloads zijn te debuggen — je kunt er één lezen in de brokerconsole en meteen weten of het goed is. En stel de retain-vlag in op statusonderwerpen zodat een nieuwe abonnee onmiddellijk de laatst bekende staat ziet in plaats van te wachten op de volgende publicatie. Behouden staat is het verschil tussen een dashboard dat klaar opengaat en een dat minutenlang leeg staart.

De laatste regel is degene waar mensen zich tegen verzetten: versie het onderwerp wanneer het payloadformaat verandert.plant1/pump1/status/v2. Het is lelijk. Het voorkomt dat je vijf abonnees in productie met één wijziging breekt. Lelijke onderwerpen die werken, verslaan schone onderwerpen die exploderen.

De Gegevens Waard om te Publiceren

Alles publiceren is net zo slecht als niets publiceren — het overspoelt de broker, bloat de log en begraaft de waarden die ertoe doen. Begin met de vraag die de abonnee zal stellen, niet met de lijst van registers. Een operator wil status, alarmen en de lopende totalen. Een ingenieur wil trends: temperatuur, druk, draaiuren. Een manager wil uptime en tellingen. Publiceer die, en alleen die.

Tarieven zijn ook belangrijk. Alarmovergangen: publiceer onmiddellijk, altijd. Status: bij verandering plus een heartbeat. Analoge waarden: op het interval dat daadwerkelijk het proces laat zien — tien seconden voor een trage kas temperatuur, één seconde voor een machinegereedschap. Elk snel onderwerp dat je niet nodig hebt, is verspilde brokerbelasting en verspilde SIM-gegevens op de draadloze modellen.

En log de belangrijke ook lokaal. De datalogging van de CPU plus de behouden berichten van de broker geeft je twee kopieën van de kritieke geschiedenis. Wanneer de broker een slechte dag heeft — ze hebben allemaal — is het logboek aan de machinezijde de bron van waarheid, en het herstelgesprek is kort.

Lokale controle op de CPU, cloudzichtbaarheid via MQTT, en de twee interfereren nooit. Die scheiding is de architectuur van moderne kleine automatisering, en het past op een DIN-rail. De routekaart van de verkoper is niet aangekomen. De firmware is al verzonden.