MAX! Daten an Beckhoff CX8090

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

Vorheriges Thema - Nächstes Thema

Brette

Ja danke, hatte heute auch unerwartet etwas mehr Zeit.

Ich hänge schon noch an den Basics fest, ganz so einfach ist das im Moment noch nicht.
Aber ich muss schon sagen, FHEM und dessen Möglichkeiten sind schon nicht schlecht!  :o
Im Moment versuche ich noch die Ist- und Solltemperaturen zu übertragen, irgendwo muss ich ja den Wert mit 10 multiplizieren.  ::)
Geh wohl besser ins Bett jetzt.  :P

Joachim

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

Die IST-Temperaturen werden nur bei Ventilstellungsänderung oder Sollwertänderung übertragen.
http://www.fhemwiki.de/wiki/MAX!_Temperatur-Scanner

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

Brette

Ja danke, das war mir bekannt und ist auch zunächst nicht das Problem.

Ich kommen mit der Formatierung der Temperaturwerte noch nicht zurecht.
Irgendwie muss ich den Temperaturwert ja mit 10 multiplizieren können, um auch die Kommastelle auf das Wort zu bekommen.
Den Scanner schaue ich mir später noch genauer an.

Joachim

schau Dir mal "userreadings" in der comandref an:
http://fhem.de/commandref_DE.html

attr meinMAXThermostat userReadings temperaturmal10 { ReadingsVal("meinMAXThermostat","temperature",0)*10}

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

ChrisD

#19
Hallo,

Du musst die Zahl nicht unbedingt mit 10 multiplizieren, du kannst auch Floats über Modbus übertragen. Dazu musst du zuerst testen ob dies auf der SPS funktioniert:
mfIstTemp AT %MD8 : REAL;

Wenn ja kannst du in FHEM folgende Definition verwenden:
define cx8090_IstTemp ModbusRegister 1 12292
attr cx8090_IstTemp plcDataType REAL
attr cx8090_IstTemp disableRegisterMapping 1
attr cx8090_IstTemp event-on-change-reading .*


Danach sollteset cx8090_IstTemp 10.2dazu führen dass der Wert 10.2 direkt auf der SPS ankommt.

Grüße,

ChrisD

Brette

#20
Super!

@Joachim: Danke für den Tipp, werde mir das noch genauer anschauen (wie noch so Vieles).
@ChrisD: ja warum denn in die Ferne schweifen, ich hatte das gestern nicht gefunden  :-[
Aus irgendeinem Grund war ich der Meinung beim ModBus ist mit "Word" Feierabend.

Kurz getestet -> funktioniert   8)

Vielleicht noch als Hinweis für Andere:
Bei der Übertragung von Realwerten werden 2 Register und 4 Worte belegt.

12288 - MW0 - Realwert 1
12290 - MW4 - Realwert 2
12292 - MW8 - Realwert 3
usw.

ChrisD

Hallo,

Bei Modbus ist die kleinste Einheit das Wort (16 Bit). Durch das Zusammenfassen mehrerer Worte lassen sich aber auch größere Datentypen übertragen. Viele Geräte verwenden 32 Bits zur Darstellung von Floats (meistens IEEE 754 single precision), die Datentypen REAL und REAL_BE wandeln die 32 Bits passend um.

Bei REAL werden auf der SPS nur 2 Worte benötigt, die von dir beobachteten Merkeradressen sind durch das von Beckhoff gewählte Speicherlayout bedingt.

Beckhoff verwendet eine Byte-orientierte Nummerierung, die Zahl hinter MB/MW/MD gibt immer die Adresse des 1. Bytes an. So liegt MB20 auf Byte 20, MW20 auf Byte 20/21 und MD20 auf Byte 20-23. Da die Daten immer 'aligned' im Speicher liegen, gibt es bei der Nummerierung kein MW1 oder MD1, die Wortadressen müssen immer Vielfache von 2 sein, die Doppelwort-Adressen immer Vielfache von 4.

Wago dagegen nummeriert die einzelnen Datentypen unabhängig voneinander durch, dadurch liegt MB20 auf Byte 20, MW20 auf Byte 40/41 und MD20 auf Byte 80-83.

Kannst du noch schauen welche Version von 98_Update du hast, ich versuche noch herauszufinden wieso die Installation der Module über 'update' nicht funktioniert hat ?

Grüße,

ChrisD


Brette

Hi,

Danke für die Erklärung  :)

Meinst Du die 98_Update.pm im FHEM Ordner?
Wie kann ich da nach der Version schauen?
Wenn ich die Datei mit dem Editor öffne steht da folgendes: $Id: 98_update.pm 8329 2015-03-29 15:40:33Z

Hoffe das hilft Dir schon weiter.

der-Lolo

Ja, das sind die Infos die ChrisD brauch...
Wenn Du ein klein wenig Zeit hast könntest Du mal in der Comandref und / oder im Einsteiger PDF ein bisschen schmökern, FHEM hat ja die Eingabezeile, viele Informationen die man ab und an mal brauch kann man mit einfachen Befehlen darüber abrufen...

Wenn Du dort z.b. version eingibst bekommst du den stand aller Module aufgelistet...
Du kannst z.b. auch ein update check eingeben - die Antwort zeigt dann alle Module für die ein update verfügbar ist.

Brette

#24
Stimmt schon, muss mich bei Zeit noch mehr mit dem Thema beschäftigen.
Nur im Moment werde ich vor Infos noch fast erschlagen, das dauert einfach seine Zeit, bin ja auch keine Zwanzig mehr und die Synapsen brauchen etwas mehr Zeit um sich neu zu sortieren und verlinken. :P
Bei so vielen verschiedenen (SPS und Visu-) Programmen mit denen ich die letzten Jahre zu tun hatte......da vergisst man auch leicht wieder etwas.
Auch ist das Handling hier komplett anders als das was ich bisher so kenne, von daher tue ich mir noch etwas schwer.

Bin normalerweise nicht der Typ welcher sich alles auf dem Silbertablett präsentieren lässt, hier hat es mir zum Einstieg aber sehr geholfen.
Das erste Erfolgserlebnis ist da, nun bin ich motiviert!  ;D

Danke dafür!

PS: Wenn ich in der Eingabezeile "Version" eingebe, wird keine 99_Update Version angezeigt.
Vielleicht ist hier der Hund begraben und ich habe schon bei der Installation Mist gebaut!?!

# $Id: fhem.pl 8320 2015-03-29 10:49:31Z rudolfkoenig $
# $Id: 01_FHEMWEB.pm 8288 2015-03-26 13:53:13Z rudolfkoenig $
# $Id: 92_FileLog.pm 8264 2015-03-22 13:56:50Z rudolfkoenig $
# $Id: 10_MAX.pm 8011 2015-02-16 20:21:49Z mgehre $
# $Id: 00_MAXLAN.pm 7005 2014-11-16 20:57:09Z mgehre $
# $Id: 37_ModbusRegister.pm 0016 $
# $Id: 36_ModbusTCPServer.pm 0015 $
# $Id: 99_SUNRISE_EL.pm 6765 2014-10-14 18:24:29Z rudolfkoenig $
# $Id: 99_Utils.pm 7914 2015-02-08 11:14:10Z rudolfkoenig $
# $Id: 98_autocreate.pm 8138 2015-03-02 19:26:54Z rudolfkoenig $
# $Id: 91_eventTypes.pm 8136 2015-03-02 19:09:18Z rudolfkoenig $
# $Id: 91_notify.pm 8165 2015-03-07 14:35:16Z rudolfkoenig $
# $Id: 98_telnet.pm 8229 2015-03-17 09:00:27Z rudolfkoenig $



der-Lolo

Ja, das klingt als ob das was nicht in Ordnung ist...
Was sagt denn ein update check?
Wenn Du ein update force absetzt wird FHEM komplett neu geladen - das sollte helfen, aber erschreck Dich nicht, je nach Internetverbindung dauert das einen weile...
Achja - es gibt auch das komanndo backup

Brette

OK, Backup funktioniert auch nicht :P ;D

Ich mache mal alles neu, nicht zur Strafe........

der-Lolo


Brette


Brette

#29
Habe nochmal alles neu gemacht, aber die gleichen Probleme.
Perl als Dienst Installiert.

Backup funktioniert nicht.

Achso, den leeren backup- Ordner hatte ich hier mal zum Test selbst angelegt

2015.04.02 11:48:17 4: HTTP FHEMWEB:127.0.0.1:49499 GET /fhem&cmd=backup
2015.04.02 11:48:17 5: Cmd: >backup<
2015.04.02 11:48:17 5: Loading ./FHEM/98_backup.pm
2015.04.02 11:48:17 4: backup include: 'D:/FHEM/fhem-5.6/fhem.cfg'
2015.04.02 11:48:17 4: backup include: './log/fhem.save'
2015.04.02 11:48:17 4: backup exclude: './backup'
2015.04.02 11:48:17 4: backup include: './c'
2015.04.02 11:48:17 4: backup include: './CHANGED'
2015.04.02 11:48:17 4: backup include: './configDB.pm'
2015.04.02 11:48:17 4: backup include: './contrib'
2015.04.02 11:48:17 4: backup include: './COPYING'
2015.04.02 11:48:17 4: backup include: './cpan'
2015.04.02 11:48:17 4: backup include: './data'
2015.04.02 11:48:17 4: backup include: './demolog'
2015.04.02 11:48:17 4: backup include: './DISTRIBUTIONS.txt'
2015.04.02 11:48:17 4: backup include: './docs'
2015.04.02 11:48:17 4: backup include: './FHEM'
2015.04.02 11:48:17 4: backup include: './fhem.cfg'
2015.04.02 11:48:17 4: backup include: './fhem.cfg.demo'
2015.04.02 11:48:17 4: backup include: './fhem.pl'
2015.04.02 11:48:17 4: backup include: './licenses'
2015.04.02 11:48:17 4: backup include: './log'
2015.04.02 11:48:17 4: backup include: './MAINTAINER.txt'
2015.04.02 11:48:17 4: backup include: './Makefile'
2015.04.02 11:48:17 4: backup include: './perl'
2015.04.02 11:48:17 4: backup include: './portable.perl'
2015.04.02 11:48:17 4: backup include: './portableshell.bat'
2015.04.02 11:48:17 4: backup include: './README.SVN'
2015.04.02 11:48:17 4: backup include: './README.txt'
2015.04.02 11:48:17 4: backup include: './README_DEMO.txt'
2015.04.02 11:48:17 4: backup include: './restoreDir'
2015.04.02 11:48:17 4: backup include: './unused'
2015.04.02 11:48:17 4: backup include: './win32'
2015.04.02 11:48:17 4: backup include: './www'
2015.04.02 11:48:17 2: Backup with command: tar -cf - D:/FHEM/fhem-5.6/fhem.cfg ./log/fhem.save ./c ./CHANGED ./configDB.pm ./contrib ./COPYING ./cpan ./data ./demolog ./DISTRIBUTIONS.txt ./docs ./FHEM ./fhem.cfg ./fhem.cfg.demo ./fhem.pl ./licenses ./log ./MAINTAINER.txt ./Makefile ./perl ./portable.perl ./portableshell.bat ./README.SVN ./README.txt ./README_DEMO.txt ./restoreDir ./unused ./win32 ./www |gzip > ./backup/FHEM-20150402_114817.tar.gz
2015.04.02 11:48:17 1: backup Der Befehl "tar" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
2015.04.02 11:48:17 4: 5952:FHEMWEB:127.0.0.1:49499: /fhem&cmd=backup / RL:1020 / text/html; charset=UTF-8 / Content-Encoding: gzip


und das passiert beim Update der ModBus Module

2015.04.02 11:53:08 5: Cmd: >update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt<
2015.04.02 11:53:08 4: HttpUtils url=https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt
2015.04.02 11:53:09 4: Can't load 'D:/FHEM/fhem-5.6/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at D:/FHEM/fhem-5.6/perl/lib/DynaLoader.pm line 193.
at D:/FHEM/fhem-5.6/perl/vendor/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at D:/FHEM/fhem-5.6/perl/vendor/lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at D:/FHEM/fhem-5.6/perl/vendor/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at (eval 31) line 2.
BEGIN failed--compilation aborted at (eval 31) line 2.

2015.04.02 11:53:09 4: https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt: HTTP response code 400
2015.04.02 11:53:09 4: HttpUtils https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/controls_modbus.txt: Got data, length: 362
2015.04.02 11:53:09 4: Got remote controlfile with 10 entries.
2015.04.02 11:53:09 4: HttpUtils url=https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/mb/CHANGED
2015.04.02 11:53:09 4: Attempt to reload IO/Socket/SSL.pm aborted.
Compilation failed in require at (eval 33) line 2.
BEGIN failed--compilation aborted at (eval 33) line 2.



Hmm....

Habe ich vielleicht das falsche Strawberry Perl Releases installiert.
Muss ich die Version mit extra PDL und related libs nehmen?