MAX! Daten an Beckhoff CX8090

Begonnen von Brette, 29 März 2015, 21:42:07

Vorheriges Thema - Nächstes Thema

Brette

Hallo Forum,

ich habe im Winterurlaub meine alte Heizungssteuerung durch einen Beckhoff CX8090 ersetzt.
Zur Visualisierung und fürs Logging läuft ein Win- Netbook mit der Beckhoff Visu, dafür ist das ausreichend.

Als Raumregler habe ich das MAX! System im Einsatz, damit bin ich auch soweit ganz zufrieden.
Zur weiteren Optimierung meiner Anlage wäre eine Raumaufschaltung natürlich ideal.
Dazu würde ich die Soll- und Istwerte vom MAX! im Beckhoff CX benötigen.

Bei der Suche im Netzt bin ich dabei natürlich auf FHEM gestoßen.

Soooo, nur wie packe ich das jetzt an?

Ich hatte mir überlegt die Logfiles der einzelnen Komponenten zu lesen.
Das würde ich in TwinCat irgendwie gebacken bekommen.
Vielleicht lerne ich noch wie man die Logfiles in FHEM entsprechend anpassen könnte.

Zweite Überlegung: Modbus.
Hierüber habe ich im Forum schon ein bisschen gelesen.
Das kommt mir im Moment doch etwas aufwendig und Beta vor, oder habe ich da einen falschen ersten Eindruck bekommen?
Verstanden habe ich jedenfalls noch nicht wirklich viel, habe über den Modbus aber auch noch keine Kenntnisse.

Natürlich fehlt mir auch noch das komplette Handling mit FHEM, aber ehrlich gesagt.....soooo tief möchte ich da im Moment auch gar nicht einsteigen....wenns geht.

Also ich möchte FHEM im Moment nur als Bindeglied von MAX! und Beckhoff nutzen.
Was wäre eurer Meinung nach der richtige und auch einfachste Weg zum Ziel?

Danke fürs Lesen und das Interesse.

Gruß Brette

der-Lolo

Da ist guter Rat schwierig - wenn man sich mit FHEM nicht auseinandersetzt macht es wenig sinn es einzusetzen. Max einzusetzen wie du es dir vorstellst bedeutet schon etwas tiefer ins FHEM zu schauen, stichwort MaxScanner.
Ich teste derzeit mit einer Wago und dem TCP/Modbus - ich habe ein sehr gutes gefühl bei der sache, Beta ist das nicht mehr und ChrisD ist sehr hilfsbereit.
Ich glaube um Max Daten in die Beckhoff zu bekommen brauchst du nur dafür zu sorgen das die Max daten an das Modbus device übergeben werden...
Plug and play ist es aber trotzdem nicht.

Brette

Hi, Danke für die schnelle Antwort!

Das es kein Plug&Play sein wird ist mir schon klar, habe mich da vielleicht auch etwas falsch ausgedrückt.
Der MaxScanner ist nicht so interessant, da mich hauptsächlich die Ventilstellungen interessieren.
Auch werde ich noch die restlichen Räume mit Wandthermostaten ausrüsten, in den Haupträumen sind schon welche installiert.

Das Thema Modbus werde ich mir mal genauer ansehen.

Kann mir jemand einen Tipp geben wie ich das Thema auf der Seite FHEM am besten angehe?
Ich finde da gerade den Einstieg nicht.

der-Lolo

Max ist von Haus aus nicht gerade gesprächig - die ventile arbeiten einfach so vor sich hin, du brauchst den Scanner um änderungen in FHEM zu aktualisieren.
Im Wago Modbus thread ist beschrieben wie du das Modul herunterladen und definieren kannst. Das Modul ist noch kein offizieller FHEM bestandteil deswegen musst du es seperat herunterladen.

Ich würde an deiner stelle jetzt erst mal Max in FHEM zum laufen bringen - inklusive Scanner, da du ja sonst nicht mitbekommst wenn Ventilstellungen sich verändert haben.
Wenn das läuft den Modbus hinzu, und über notify die Max Ventilstellungen an jeweils ein ModbusRegister weitergeben. Die Modbusregister kannst du dann im Sps programm verarbeiten...

Edit: ich bin nicht sicher ob das so funktioniert, würde es aber so versuchen.

Brette

#4
OK, Danke für die Tipps.

Aber ich muss nochmal auf den Scanner zurückkommen.
Ich ginge davon aus das die neuen Ventilstellungen immer sofort übertragen werden.
Das Problem sind doch die aktuellen Isttemperaturen, welche nur bei einer Änderung der Ventilstellung übertragen werden.
So konnte ich das auch mit MaxBuddy beobachten.
Das wäre für meine Anwendung nun kein Beinbruch.
Trotzdem werde ich den Scanner mal testen.

Zitat von: der-Lolo am 29 März 2015, 23:24:57
Wenn das läuft den Modbus hinzu, und über notify die Max Ventilstellungen an jeweils ein ModbusRegister weitergeben.

Ganz grob verstanden.......aber nur ganz grob. ;D

Den Modbus Thread werde ich mir die Tage mal genauer ansehen und die Modbusdatei in FHEM einspielen und testen.

Joachim

Ventilstellungen werden sofort übertragen, da liegst Du richtig.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

der-Lolo

Oh - sorry, dann war meine aussage wohl falsch.. Das wusste ich nicht...

ChrisD

Hallo,

Da der Wago-Thread relativ umfangreich ist, ist hier eine kleine Zusammenfassung für die 1. Schritte:

1. Modbus-Module installieren:
update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt

2. FHEM neu starten (eventuell 'save config' nicht vergessen)
shutdown restart

3. Verbindung zur SPS konfigurieren (IP anpassen)
define cx8090 ModbusTCPServer 192.168.88.99

4a. Register anlegen, beim CX8090 scheint nach diesem Dokument der Speicherbereich ab MW0 wie bei Wago ab Adresse 12288 ansprechbar zu sein
define cx8090_MW0 ModbusRegister 1 12288
attr cx8090_MW0 disableRegisterMapping 1
attr cx8090_MW0 event-on-change-reading .*

Die 1 nach ModbusRegister gibt die UnitId an, diese muss bei Beckhoff wahrscheinlich immer auf 1 stehen.
Das Attribut disableRegisterMapping legt fest dass es keine Umsetzung von Registernummern zu Modbus-Adressen gibt und muss auf 1 gesetzt werden. Das Attribut event-on-change-reading sorgt dafür dass nur bei Änderung ein Event ausgelöst wird und sollte gesetzt werden da durch das permanente Pollen die Readings aktualisiert werden.

4b. 2. Register anlegen
define cx8090_MW1 ModbusRegister 1 12289
attr cx8090_MW1 disableRegisterMapping 1
attr cx8090_MW0 event-on-change-reading .*


5. Zum Testen im SPS-Programm%MW1:=%MW0;eingeben.

6. Auf cx8090_MW0 schreiben:
set cx8090_MW0 50
Der Wert sollte sich in der SPS ändern und durch Schritt 5 in cx8090_MW1 angezeigt werden.

Wenn es nicht funktioniert kannst du verbose auf 5 setzen
attr cx8090 verbose 5und den Inhalt des Logs posten.

Wenn es funktioniert kannst du wie von der-Lolo beschrieben mit Hilfe von notify die Daten vom Max zum Modbus übertragen, z.B.:
define n_MAX_cx8090 notify MAXThermostat:valveposition.* set cx8090_MW0 $EVTPART1

Grüße,

ChrisD


Brette

Hey Klasse!!!  :)

Damit werde ich mich mal die nächsten Tage bzw. nächstes Wochenende beschäftigen.
Hatte gestern noch den Wago - Modbus Thread überflogen......Bahnhof-Abfahrt-Kofferklauen.  ::)
War wohl doch zu spät gestern.
Aber das wird mir den Einstieg in FHEM / Modbus schon deutlich erleichtern, DANKE!

Bis zur nächsten Heizsession sollte es dann schon funktionieren.   :o :P

Brette

Habe heute schon ein bisschen probiert, leider komme ich gerade nicht weiter.

FHEM auf Win Rechner als Service installiert.
MAXLAN installiert - funktioniert.

Als nächsten Schritt wollte ich die Modbus Module installieren.
Dabei bleibe ich leider bei Schritt 3 hängen: "Unknown module ModbusTCPServer"
Also scheint die Installation der Modbus Module nicht geklappt zu haben.

Auch habe ich die Installation der Module so probiert.....

update 36_ModbusRTU https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt
update 36_ModbusTCPServer https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt
update 37_ModbusCoil https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt
update 37_ModbusRegister https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt

....leider auch ohne Erfolg!?!

Achso, in der Log steht "nothing to do..." :)

Brette

OK, bin einen Schritt weiter.
Ich habe nun die Module direkt reinkopiert, nun kann ich den Modbus definieren.
Schluss für heute.

Gruß Brette

ChrisD

Hallo,

Wenn 'update all...' nicht funktioniert kannst du alternativ
update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txtverwenden. Damit sollte auf jeden Fall die aktuelle Version heruntergeladen werden.

Grüße,

ChrisD

Brette

Danke, aber das hatte ich auch probiert, leider ohne Erfolg.

Brette

So, den Ventilstaus habe ich nun schon komplett in TwinCat eingebunden, funktioniert einwandfrei!

Danke....Danke für den tollen Support hier! Das wäre ansonsten nicht so "einfach" von der Hand gegangen.

Die Merkerworte müssen hier allerdings in Zweierschritten hochgezählt werden, also:

12288 - MW0
12289 - MW2
12290 - MW4
usw.

Als nächstes sind die Temperaturen an der Reihe, da muss ich wohl noch etwas lesen.


der-Lolo

Gratuliere - war ja dann doch etwas einfacher als gedacht.
;) Vielleicht findest du ja doch auch noch Spass an FHEM und den weiteren möglichkeiten Hardware einzubinden und eine Visualisierung zu gestalten.