|
||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MQTT - EleLa FernsteuerungMit MQTT lässt sich EleLa fersteuern. Darüber können:
werden. Die Aktionen werden im Log protokolliert. Konfiguriert wird die MQTT Funktion in der INI Datei. Somit kann man ein EleLa Programm starten, das MQTT Client aufgaben erledigen kann, die man ansonsten nur umständlich lösen kann. Um diese Funktion nutzen zu können ist dennoch ein grundlegendes Wissen über die EleLa Datenbank und deren Zusammenhänge der Tabellen und Daten erforderlich. EleLa unterstütz das MQTT Protokoll V3.1.1. MQTT wurde in EleLa integriert, da EleLa bereits das komplette Handling der Daten beinhaltet, incl. Protokollierung. Beispiel:Produktion von Geräte, automatisches Generieren eines Test-Protokolls und Eintrag in die Projekt-Historie. Die Daten können von einer SPS Steuerung oder einem Prüfrechner erstellt werden und das Ergebnis wird mit MQTT übermittelt und EleLa trägt die Daten in der EleLa Datenbank ein. Lager Menge manipulieren, um andere Lagersystem an EleLa anbinden zu können. Handbuch öffnen: Bei der Nutzung von externen Programmen, die nicht direkt das Handbuch von EleLa öffnen können, kann dies EleLa übernehmen. Wie funktioniert es:EleLa verbindet sich mit einem MQTT Broker, dem Server bei dem sich alle Clients des MQTT Netzwerks anmelden müssen. Dieser "Mosquitto" Server muss zu erst installiert werden, wenn er nicht bereits vorhanden ist. Mosquitto ist ein Dienst, der im Hintergrund läuft. Clients verbinden sich mit diesem Server und können Variablen gegenseitig austauschen. EleLa empfängt über die MQTT Variable, die man bei der INI Datei in "ControlEleLaRx" deklariert hat, einen Befehl und führt diesen aus. Anschließend, nachdem der Befehl ausgeführt wurde, wird die Antwort auf die MQTT Variable "ControlEleLaTx" gesendet. Die Daten sind mehrzeilige Texte in einer Übertragung, wobei die das Zeilenwechselzeichen ein CR oder CRLF sein kann. Wenn Datensätze über MQTT geschrieben werden, so geschieht dies im Hintergrund. Daher werden die Ansichten in EleLa nicht automatisch aktualisiert. Mit Rechtsklick in die jeweilige Tabelle können die Daten aktualisiert werden. Dies ist absichtlich so gemacht um effizienter die Daten mit MQTT austauschen zu können. Warnung Sicherheitsrisiko!Mit MQTT können Daten in der Datenbank manipuliert werden Sobald MQTT aktiviert ist kann jeder, der Zugriff auf den MQTT Server hat, die Daten von EleLa lesen und schreiben! Es ist unbedingt darauf zu achten dass MQTT nur in einer geschützten IT Umgebung genutzt wird und keinesfalls offen über das Internet. Wenn man MQTT bei EleLa nicht aktiviert hat, so besteht dieses Sicherheitsrisiko natürlich nicht. Siehe ReadOnly Parameter in der INI Datei. Tipp:Um die MQTT Funktion zu testen kann man die bestehende Datenbank exportieren und EleLa mit dem Backup als SQLite verbinden. Damit kann man die MQTT Befehle testen bevor man diese mit der echten Datenbank verwendet. Befehlsübersicht:
Antwort:
Datentyp Deklaration:
Befehl WR - Aufbau MQTT Datentelegram zum schreiben oder erstellen von einem Datensatz:Mit diesem Befehl kann man einen Datensatz erstellen oder überschreiben. Es können nicht mehrere Datensätze gleichzeitig bearbeitet werden. Zeile 1: der Befehl "WR" In EleLa gibt es Felder, die zwingend beschrieben werden müssen.
Beispiel: Um ein Historien Datensatz an zu legen muss zwingend die "Projekt_ID"
und die "Bezeichnung" gesetzt werden. Beispiel:
Wenn der Befehl ordentlich ausgeführt wurde, so wird die Antwort
"IO" mit der ID des betroffenen Datensatzes gesendet. Beispiel der Antwort:
Wenn es bei einzelnen Feldern einen Fehler gab, so wird der Datensatz dennoch erzeugt und mit der "IO" Rückmeldung diese Info dazu gezeigt. Hinweis: Die Tabellen Foto, Param und Recht können nicht beschrieben werden. Befehl RD - Aufbau MQTT Datentelegram zum lesen von einem Datensatz:Mit diesem Befehl kann man einen Datensatz von der EleLa Datenbank lesen. Es kann nur 1 Datensatz abgefragt werden. Zeile 1: der Befehl "RD" In Zeile 3 kann beispielsweise der eindeutige Datensatz mit ID=<Zahl> die eindeutige Datenzeile ausgewählt werden. Man kann auch mit anderen eindeutigen Bezeichnern einen Datensatz wählen, Beispiel: Tabelle "bauteilvariante", Feld "ArtikelNr" mit dem Wert. In Zeile 4 werden alle Felder mit Komma getrennt übergeben. Wenn Zeile 4 nicht existiert so werden alle Felder zurück gegeben. Beispiel:
Wenn der Befehl ordentlich ausgeführt wurde, so wird die Antwort
"IO" gesendet, in den weiteren Zeilen die Daten. Beispiel der Antwort:
ID=<Datentyp>;<Wert> Befehl Lager - Aufbau MQTT Datentelegram zum ändern der Lagermenge:Mit diesem Befehl kann man die Lagermenge von einem Lagerplatz ändern. Bei der Änderungsmenge von 0 wird die aktuelle Lagermenge abgefragt. Zeile 1: der Befehl "Lager" In Zeile 3, "Menge" kann bei einer negativen Zahl = Lagermenge
abziehen, bei einer positiv Zahl = Lagermenge hinzugefügt werden.
Bei Menge = 0 wird keine Lagermenge manipuliert. Beispiel:
Wenn der Befehl ordentlich ausgeführt wurde, so wird die Antwort
"IO" gesendet, in der zweiten Zeile der aktuelle Lagerbestand. Beispiel der Antwort:
Befehl LagerPlatz - Aufbau MQTT Datentelegram zum Abfragen von Lagerplätze:Mit diesem Befehl kann man die Lagerplätze von einem Bauteil abfragen. EleLa unterstützt mehrere Lagerplätze je Bauteil, mit diesem Befehl kann man diese erfahren. Zeile 1: der Befehl "LagerPlatz" In Zeile 2 kann man mit unterschiedlichen Methoden den Datensatz finden. Wenn man nach "ArtikelNr" sucht, so muss das Ergebnis genau einen Datensatz liefern, ansonsten wird EleLa mit einem Fehler antworten, da die Lagerpositionen nicht mehr einem eindeutigen Gehäuse/Variante Datensatz zuordenbar ist. Beispiel:
Wenn der Befehl ordentlich ausgeführt wurde, so wird die Antwort
"IO" gesendet, ab der zweiten Zeile die Daten aus der Tabelle
Gehäuse/Variante und ab der dritten Zeile die Lagerplätze. Die
einzelnen Felder sind mit einem "|" getrennt, alternativ kann
in der Abfrage das Trennzeichen (1 Zeichen) gewählt werden. Wenn
in dem Text das Trennzeichen vorhanden ist, so wird automatisch der Text
in " eingeschlossen. Beispiel der Antwort:
Gewicht Felder:Zeile 2, BauteilVariante: Das Gewicht eines einzelnen Bauteils. Befehl OpenHandbuch - Öffnen von einem PDF Dokument oder eines Weblink:Mit diesem Befehl kann auf dem PC, auf dem EleLa läuft, ein PDF Dokument oder ein Weblink geöffnet werden. Zeile 1: der Befehl "OpenHandbuch" Beispiel:
Wenn der Befehl ordentlich ausgeführt wurde, so wird die Antwort
"IO" gesendet. Beispiel der Antwort:
Quellcode Beispiel einer Base64 Codierung Wandlung in ein Byte Array in SCL (SPS Steuerung):Empfang von Daten im Format "Base64", Wandlung der Daten in ein Array of Byte. Dieser Quellcode ist in der Sprache SCL geschrieben, die meisten modernen SPS Steuerungen unterstützen diese Programmiersprache.
Diagnose von MQTTMit Client Tools können die MQTT Datentelegramme vom MQTT Broker abgefragt werden. Damit lässt sich der Datenverkehr zwischen 2 Programmen mit hören. Auf der EleLa Homepage, unter neueste Builds, kann man sich unter Tools > MQTT ein einfacher Client für Windows oder Linux laden. |
||||||||||||||||||||||||||||||||||||||||
|