Netzwerkvariablen (Zugriff auf sich schnell ändernde Werte über Netzwerk)

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
KoBraSoft
Beiträge: 57
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: Winux (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Netzwerkvariablen (Zugriff auf sich schnell ändernde Werte über Netzwerk)

Beitrag von KoBraSoft »

Hallo,
ich habe eine Applikation erstellt die Daten über Modbus RTU von verschiedenen Geräten (Janitza UMG96, selbst programmierten Arduinos, ...) im Sekundentakt holt und jede Viertelstunde in eine Firebird Datenbank schreibt.

Nun möchte ich die aktuellen Messwerte (die die im Sekundentakt herein kommen) auf anderen Rechnern im lokalen Netzwerk visualisieren.
Meine Überlegungen sind
- die Daten sekündlich in eine kleine Binär Datei zu (über)schreiben und die Datei zyklisch lesen lassen
- die Daten sekündlich in einer Datenbanktabelle mit einem Datensatz zu updaten den Datensatz zyklisch lesen lassen
- einen Modbus TCP Slave mit (https://github.com/coassoftwaresystems/delphi-modbus) auf zu setzen und mit mehreren Modbus TCP Mastern zu lesen
oder
- etwas ähnliches wie Netzwerkvariablen (ähnlich denen die es bei SPSen zB CoDeSys gibt)

Habt Ihr schön ähnliches gebaut? Wie würdet Ihr das lösen?

Konrad
Konrad

www.KoBraSoft.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Netzwerkvariablen (Zugriff auf sich schnell ändernde Werte über Netzwerk)

Beitrag von af0815 »

Ich sehe da sonst noch 2 Ansätze:

A ) Mit SPS-Emulation mittels SNAP7 http://snap7.sourceforge.net/ das geht gut und wird von mir gerne verwendet (Win,Linux-x84 und Linux-arm).
B ) MQTT Siehe auch https://github.com/bkeevil/mqtt.git habe ich auch schon verwendet um Messdaten von einem Messgerät aus zu verteilen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Netzwerkvariablen (Zugriff auf sich schnell ändernde Werte über Netzwerk)

Beitrag von charlytango »

KoBraSoft hat geschrieben:
Di 24. Aug 2021, 08:18
Wie würdet Ihr das lösen?
Ohne deine tieferen Strategien zu kennen (zb wie zeitkritisch die Visualisierung ist)...

Sofern du Firebird netzwerkfähig installiert hast, würde ich gar nix dergleichen tun.
Schreib die Daten in die DB und gut ists.

Die Visualisierung würde ich per Webserver und Dashboard-Framework machen.
Da gibt es sicher einige (mit DB-Anbindung) bei denen man deine Anforderungen quasi zusammenklicken kann. zB hier eine Auswahl
Damit ersparst du dir die Installation und Updates auf den Zielrechnern.
Das schlimmste was passieren kann ist, dass du von Firebird auf eine andere (vom gewählten Framework unterstützte) DB wechseln müsstest.

So etwas (Datenbank, Webserver samt Framework) läuft mitttlerweile sehr stabil und performant auch auf einem Raspi4.

Have Fun

KoBraSoft
Beiträge: 57
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: Winux (L 2.2.4 FPC 3.2.2)
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: Netzwerkvariablen (Zugriff auf sich schnell ändernde Werte über Netzwerk)

Beitrag von KoBraSoft »

af0815 hat geschrieben:
Di 24. Aug 2021, 09:27
A ) Mit SPS-Emulation mittels SNAP7 http://snap7.sourceforge.net/ das geht gut und wird von mir gerne verwendet (Win,Linux-x84 und Linux-arm).
Das kannte ich noch nicht. Ich werde es mir noch näher anschauen.
B ) MQTT Siehe auch https://github.com/bkeevil/mqtt.git habe ich auch schon verwendet um Messdaten von einem Messgerät aus zu verteilen.
Davon habe ich schon gehört, aber irgendwie wieder aus den Augen verloren. Ich werde es mir auch noch näher anschauen.
Konrad

www.KoBraSoft.de

Antworten