# EnOcean - Beckhoff KL6021-23 - BK9050 - Modbus/TCP möglich?



## benmao (14 Mai 2019)

Hallo,

ich benötige EnOcean-Daten, die derzeit mittels einer Beckhoff-Klemme KL6021-23 an einem Koppler BK9050 angebunden sind und von dort weiter zu einem CX-Controller gelangen, der diese auswertet. Vielleicht kann mir jemand helfen. 
Ist es möglich, die EnOcean-Daten im Prozessabbild des BK9050 mittels Modbus/TCP abzugreifen? Hat jemand schon so was realisiert.
Ich habe leider momentan keinen Zugang. Aber laut Beckhoff Doku werden die 12 bytes des enOcean-Protokoll im Prozessabbild eingeblendet, ob das auch für das Prozessabbild von Kopplern gilt (oder nur Controller?). Wenn ja, bleiben die Daten stehen, bis der nächste Sensor sendet? Laut Beschreibung holt der Controller auch die Daten ab, damit der Buffer nicht überläuft. Was passiert, wenn man den Controller CX... wegnimmt - kann man die EnOcean-Daten dann immer noch auslesen (für den Fall dass es überhauput vorher funktioniert).


----------



## Guga (15 Mai 2019)

Einen Zugriff auf EAs ohne den Controller CX ist möglich 
Aus der Erinnerung wird es jetzt aber mit EnOcean etwas trickreich/schwierig da wie du es schon sagst die Daten nicht 1 zu 1 im EA-Bereich vorhanden sind sondern "serilisert bzw gemultiplext" abgeholt/angezeigt werden. D.h. man müsste vermutlich eine Logik stricken die lesend + schreibend im Falle das keine übergeordnete Instanz vorhanden ist die Daten abholt. Keine Ahnung wie komplex das wird... 

Mapping:
Eingangsdaten fangen mit Modbusaddresse 0 an
Ausgangsdaten fangen mit einem Offset von 0x800 an

Dann muss man noch sortieren wie die Daten jeweils abgelegt sind. Hier sollte man die Doku der jeweiligen Klemme zu Rate ziehen!

E.g. Bei Word-Klemmen gibt es Padding-Bytes (im High-Byte.)z.B. KL3204: 
	- Status und Control Byte werden in ein Wort gemappt.
	- Reihenfolge ist kanalweise: Erst Status, dann Daten


----------



## benmao (16 Mai 2019)

Ich habe jetzt was testen können:

Im Prozessabbild steht:
0b01
0007
955E
000F
AE03
00C2
0015

Ich kriege also mindestens 13 bytes, laut Beckhoff sind es 12 (1 byte Status plus 11 Daten). 
Es handelt sich um einen Thermokon SR04rH (eventuell mit Zusatzoption) mit der ID 0x0003AEC2

01: ?
0B: ?
07: EnOcean ORG7: 4 Byte Daten
00: unbenuetzt
5E: Temperatur: 0x5E = 94, Temperatur = (250-94)/250*40 = 25 °C
95: Feuchtigkeit: 0x95 = 149; Feuchtigkeit = (250-149(250*100 = 40 % rF
0F: Drehpoti oder Taster?
00: höhchstwertiges Byte der ID
03
AE
C2: niedrigstwertiges Byte der ID
15: ?



Ob das Prozessabbild auch aktualisiert wird, wenn der Datenbuffer überläuft, wenn die Daten nicht mehr vom CX abgeholt werden?


----------

