ELX-Software

ELX-MODBUS

Dokumentation

Von der Installation des Pakets bis zum Auslesen eines Geräts, das nicht in der Bibliothek steht.

Installation

Laden Sie das Paket für Ihre Architektur und installieren Sie es. apt ist dpkg vorzuziehen, weil es auflöst, was das Paket benötigt.

Installieren
sudo apt install ./elxmodbusmqtt_1.2.38_amd64.deb
systemctl status elxmodbusmqtt
xdg-open http://localhost:8080

Welches Paket Sie brauchen, sagt uname -m: x86_64 ist amd64, aarch64 ist arm64, armv7l ist armhf.

Dienst und Protokoll
systemctl status elxmodbusmqtt
journalctl -u elxmodbusmqtt -f
sudo systemctl restart elxmodbusmqtt

Ein Gateway anlegen

Ein Gateway ist der physische Weg zum Bus. Alles darunter — Geräte und Register — wird darüber abgefragt, eine Anfrage nach der anderen.

ArtWas einzutragen ist
Modbus TCPAdresse und Port des Geräts, üblicherweise 502
RTU über TCPAdresse und Port des Ethernet-nach-RS-485-Wandlers
Serielles RTUDie Schnittstelle (/dev/ttyUSB0), Baudrate, Parität, Daten- und Stoppbits
Rechte an der seriellen SchnittstelleUnter Linux gehört die Schnittstelle meist der Gruppe dialout. Zeigt das Terminal nichts als Zeitüberschreitungen und ist die Verkabelung richtig, prüfen Sie, ob der Dienstbenutzer das Gerät öffnen darf.
Zwei Gateways statt einesGeräte an getrennten physischen Bussen gehören zu getrennten Gateways: Dann werden sie parallel abgefragt statt abwechselnd, und ein Gerät, das nicht mehr antwortet, bremst die übrigen nicht.

Geräte und Register

Ein Gerät hat eine Busadresse, einen Namen, ein MQTT-Präfix und eine Registerliste. Eine Vorlage aus der Bibliothek füllt die Liste; ein eigenes Gerät beginnt leer.

FeldBedeutung
RegisterartHolding und Coil sind beschreibbar; Input und Discrete nur lesbar
AdresseDie Registernummer wie im Datenblatt — achten Sie auf den Anfang, manche Hersteller zählen ab eins
Datentypint16, uint16, int32, float32, Zeichenkette oder ein einzelnes Bit
WortreihenfolgeWelche Hälfte eines 32-Bit-Werts zuerst kommt; die übliche Ursache unglaubwürdiger Zahlen
Faktor und VersatzMachen aus einem rohen Zählwert eine Einheit: 0,1 macht aus 245 den Wert 24,5
BitmaskeHolt ein einzelnes Kennzeichen aus einem gepackten Statuswort
IntervallWie oft genau dieses Register abgefragt wird, falls es vom Gerät abweichen soll
Ein Wert um einen Faktor daneben oder verdrehtFast jeder solche Fall hat eine von drei Ursachen: falscher Faktor, vertauschte Wortreihenfolge oder ein vorzeichenbehafteter Wert, der vorzeichenlos gelesen wird. Das Terminal zeigt den rohen Rahmen und klärt die Frage in Sekunden.

Der Broker

  • Adresse und Port. Host und Port des Brokers; TLS steht dort zur Verfügung, wo der Broker es anbietet.
  • Zugangsdaten. Benutzername und Kennwort, falls der Broker sie verlangt.
  • Basis-Topic. Das Präfix, unter dem alles erscheint, was dieser Dienst veröffentlicht — etwa home.
  • Retain. Ob der Broker den letzten Wert jedes Topics behalten soll.
  • Befehls-Topics. Die Endung, die Schreibvorgänge annimmt, standardmäßig /set.

Das vollständige Topic setzt sich als {Basis}/{Gerätepräfix}/{Registerschlüssel} zusammen, weshalb es sich allein aus der Konfiguration vorhersagen lässt — das Abonnement in Home Assistant kann geschrieben sein, bevor das Gerät überhaupt verdrahtet ist.

Welcher BrokerJeder gewöhnliche. Falls Sie noch keinen haben: ELX-MQTT Broker steht auf dieser Website und installiert sich ebenso leicht.

Das Protokollterminal

Das Terminal zeigt jede Anfrage und jede Antwort als rohen Rahmen, mit Zeit und Fehlern. Es ist das Werkzeug für die beiden schwersten Momente: ein Gerät in Betrieb zu nehmen, das niemand beschrieben hat, und zu erklären, warum etwas, das lief, nicht mehr läuft.

Was zu sehen istWas es meist bedeutet
Zeitüberschreitung bei jeder AnfrageFalsche Schnittstelle, falsche Baudrate, vertauschte A- und B-Adern oder keine Spannung am Gerät
Zeitüberschreitung nur bei einem GerätFalsche Busadresse oder dieses Gerät hängt nicht am Bus
Ausnahme 02Diese Registeradresse gibt es an diesem Gerät nicht
Ausnahme 03Der geschriebene Wert liegt außerhalb dessen, was das Gerät annimmt
CRC-Fehler unter LastZu langes Kabel, fehlende Abschlusswiderstände oder eine Baudrate, die die Leitung nicht trägt

Sicherung und Wiederherstellung

Die gesamte Konfiguration — Gateways, Geräte, Registerkarten und Broker-Einstellungen — lässt sich in eine JSON-Datei ausgeben und daraus wiederherstellen. Diese Datei ist auch der richtige Weg, eine laufende Einrichtung auf eine zweite Maschine zu bringen oder die Konfiguration einer Anlage unter Versionsverwaltung zu stellen.

Wenn etwas nicht stimmt

ErscheinungWo zu suchen ist
Die Weboberfläche öffnet sich nichtsystemctl status elxmodbusmqtt; der Dienst konnte Port 8080 womöglich nicht belegen
Werte stehen in der Oberfläche, aber nicht in MQTTVeröffentlichen ist abgeschaltet oder die Broker-Zugangsdaten stimmen nicht — das Ereignisprotokoll sagt, was davon
Ein Befehl in /set ändert nichtsDer Kanal ist nur lesbar oder das Register ist ein Input- statt eines Holding-Registers
Werte aktualisieren sich viel zu langsamZu viele Register an einem Gateway mit einem Intervall; erhöhen Sie es für die, die sich nicht ändern
Zahlen springen zwischen plausibel und absurdWortreihenfolge oder zwei Master am selben Bus, die einander überschreiben

In derselben Rubrik