Design Hilfe, Beckhoff Modbus evtl. Multithreading

Begonnen von Vertical, 16 Januar 2019, 07:09:40

Vorheriges Thema - Nächstes Thema

Vertical

Hallo Zusammen.

Dies hier ist mein erster Eintrag.
Anfangen möchte ich mit einer kurzen Einleitung was ich bis jetzt gemacht habe und über mein Vorhaben berichten.

Ich habe eine CNC Fräse gebaut bei der ich die Servocontroller über Ethercat angesteuert habe und von Beckhoff den EK1100 und Diverse IO Klemmen verwendet habe.
Da ich auch beruflich Sondermaschinen baue bin ich auch mit diversen Feldbussen in vertraut und von den Beckhoff IO Klemmen doch recht begeistert.
Da Beckhoff auch einen Modbuskoppler EK9000 auf die Klemmen bietet ist mein Plan diese als DI/DO/AI/AO zu verwenden.

Bei einem Kumpel haben wir erst letztes Jahr das gesamte Haus renoviert und hier Loxone verwendet.
Hierbei wird die komplette Heizung wie auch Licht und Rolläden über Loxone gesteuert.
Allerdings Hat Loxone hier die Modbuss-poll-Zeit von 100ms auf 5 Sekunden angehoben, so das Modbus hier keine Option mehr ist um einen Doppelklick zu erkennen. Er verwendet die Loxone eigene Hardware.

Mein Vorhaben:
Ich möchte die Fußbodenheizung / Stellmotoren über Ausgänge über den Modbuskoppler schalten
Ich möchte die Temperaturen/Luftfeuchtigkeit über einen Modbus/1Wire Gateway einlesen
Ich möchte "kompliziertere" Lichter (Treppenhausschaltung, Dimmer) über den Modbuskoppler schalten. Über Relais und Analogdimmer. (Hier ist der Grund für das "schnelle" Poll Intervall von 100ms für die Erkennung von Doppelcklicks")
Ich möchte Rolläden Zeitgesteuert über den Modbuskoppler verfahren.

Meine aktuellen Tests:
Da ich bis jetzt noch keine Hardware gekauft habe und ich micht überhaupt mit FHEM erst einmal vertraut machen wollte habe ich auf den RP3 FHEM installiert.
Hier dann über mein Windowsnotebook einen Modbusclient simuliert und mit FHEM die Rohwerte abgeholt. Funktioniert soweit wunderbar.

Software Konzepte:
Da ich wie eingangs erwähnt Software für/mit Echtzeitumgebungen entwickle habe ich diverse Gedanken zu der Verarbeitung der gelesenen Daten und dem Schreiben der Sollwerte.
Mir ist durchaus bewusst, dass es sich hier nicht um eine harte Echtzeitanwendung handelt und man hier auch kein RTAI oder Kithara verwenden wird. Ich möchte nur sicherstellen, das meine Tasteingaben nicht durch das generieren eines Webinterfaces oder generieren irgendwelcher Plots plötzlich nicht mehr funktionieren oder verzögert werden.
Ich lagere Zeit kritischere Verarbeitungen normalerweise in Threads aus die somit mit der normalen Zeit unkritischen Verarbeitung nicht kollidieren.

Ist es in FHEM möglich Module zu priorisieren oder in Threads auszulagern?
Ist mein Vorhaben generell zu empfehlen oder seht ihr hier Probleme die ich eventuell übersehen habe?

Vielen Dank für eure Hilfe

Prof. Dr. Peter Henning

ZitatIst es in FHEM möglich Module zu priorisieren oder in Threads auszulagern?
Nein.
ZitatIst mein Vorhaben generell zu empfehlen
Nein. Dafür ist Perl vollkommen ungeeignet.

LG

pah

Vertical

Hallo

Danke für die schnelle Antwort.
Gibt es ein openSource System das für mein Vorhaben empfehlenswert ist? Wie zum Beispiel IOBroker oder OpenHAB?
Ich würde ganz gerne auf ein weiter verbreitetes System setzen um nicht ein eigenes System zu bauen.

Prof. Dr. Peter Henning

Weder, noch.

Das Problem ist immer die unkontrollierbare Reihenfolge der Events und die relativ langsamen Geräte. MQTT als Protokoll ist vielleicht brauchbar - aber auch da ist eine sequenzielle Abarbeitung der Nachrichten drin.

Mein Tipp: Nicht auf eine High-Level Hausautomatisierung setzen, sondern Low-Level arbeiten (etwa mit MQTT). Und an MQTT möglicherweise verschiedene spezialisierte Server andocken.

Loxone, ist, nun ja, Loxone. Teuer vor allem - und ich lese mit Genuss, welche Nachteile das Zeug hat.

LG

pah