PoKeys57E 55 - Digitale Ein und Ausgänge, div Fühler via ModbusTCP an LOXONE koppeln.

Der PoKeys57E ist ein Modul mit div I/O's, Fühlern incl der Möglichkeit einer Speicherprogrammierbaren Steuerung (SPS) mit Ethernet Anschluss, dieses Bord wird von PoLabs entwickelt.
Er ist für Loxone Optimal da ModbusTCP schon an Bord ist.

Die Key- Features:

  • 55 Digitale In und Outputs
  • Eingänge 5V Tolerant, d.h. Ein Eingang kann wie üblich statt 3.3 Volt auch direkt mit 5 V Beschaltet werden ohne Schaden zu nehmen.
  • 7 Analoge 0-3,3 Volt 12 Bit Eingänge (0- 3,3V entspricht 0 bis 4094 Bit).
  • I2C Bus an Bord.
  • PoBus an Bord (Ähnlich den Loxone Extensions).
  • mehrere 1-wire 18x20-Bus-Pin und DHT2x Feuchte/Temperatur Anschlüsse möglich.
  • diverse Sensoren schon implementiert zB. DHT21, Lichtsensor, analoge IC's
  • RTC (real-time clock) Echtzeituhr (Batteriegepuffert 3 Volt CR1220).
  • Spannungsausfall sichere- Funktionen (Batteriegepuffert 3 Volt CR1220).
  • grafisch programmierbare SPS mit zB PID-Reglern, Limiter, Multiplexer, Bit-Byte, Byte-Bit ... Ram-Speicherstellen, "Merker" über Modbus TCP
  • und vieles anderes...

     


Bild 1. Quelle: https://www.poscope.com/PoKeys57E

HINWEIS!

Durch derzeitige Software- Änderungen seitens Loxone wird dingend abgeraten den PoKey als
günstige Lösung für viele Ein oder Ausgänge zu nutzen.
Loxone hat mit der neunen Parametrierungs Software oder auch Firmware dafür gesorgt das oftmals
MINDESTENS 5 Sekunden vergehen können bis die Ein oder Ausgänge Ihren Status an den Miniserver
weiterleiten bzw. gelesen werden.


Edit: es gibt eine Lösung mit UDP Sender und UDP Empfang-Funktion im mSek-Bereich, PoKeys57E 55 - Digitale Ein und Ausgänge, div Fühler via UDP an LOXONE koppeln


Es wird auch abgeraten bei bereits realisierten Projekten mit dem PoKey, die Tasterabfragen oder andere zeitkritische Zustände erfassen
seinen Miniserver mittels "LOXONE CONFIG 8.1.11.11" zu updaten. Temperaturen Fühlerdaten sind meist nicht zeitkritisch.
Ältere Versionen wie die
Version 8.0 (erschienen am 07.2016) sind von dieser Änderung nicht betroffen!

Sollten zeitkritische Anwendungen (wie Lichtschalter) benutzt werden ist Modbus TCP hier nicht die richtige Wahl.
Derzeit bleibt nur die Möglichkeit ohne weiteren Aufwand bei der vom Hersteller gefertigten Hardware zu bleiben.

Hierzu ist Helmuts UDP Vorschlag im Forum gemeint:

https://www.loxforum.com/forum/hardware-zubeh%C3%B6r-sensorik/77483-5-sekunden-modbus-tcp-problem-mit-pokeys57e
Alle anderen Anwendungen können auch Problemlos mit der neuen Loxone Config realisiert werden. 

 

Warum Modbus TCP?

Das Modbus- Protokoll ist ein Kommunikationsprotokoll, das auf einer Master/Slave- bzw. Client/Server-Architektur basiert. Es wurde 1979 von Gould-Modicon für die Kommunikation mit seinen speicherprogrammierbaren Steuerungen ins Leben gerufen. In der Industrie hat sich der Modbus zu einem De-facto-Standard entwickelt, da es sich um ein offenes Protokoll handelt. Seit 2007 ist die Version Modbus TCP Teil der Norm IEC 61158.
Quelle: Wikipedia

Wie aus Wikipedia zu entnehmen ist Modbus eine Art "Knochen" der fast immer Funktioniert und mehr als weniger gut bei allen Herstellern implementiert ist.
Für Loxone ist ModbusTCP optimal da keine Extension gekauft werden muss und der Miniserver sowieso via Ethernet (TCP/IP) irgendwo angebunden ist.
Siehe Hinweis zu Anfang des Textes. 

In der Konstellation PoKey und Loxone werden die Rollen so vergeben:

ModbusTCP Master/Client: LOXONE Miniserver
ModbusTCP Slave/Server: PoKeys
(Stand Dez.2015 Es ist derzeit aufgrund der in den Geräten laufenden Software nicht anders möglich).

Die Ankopplung ist auch von unbedarften Nutzer einfach zu realisieren und funktioniert sehr zuverlässig.

 


Bild 2. Schematischer Aufbau der Kopplung.

Wie kann ein PoKey Moduls mittels Modbus TCP gekoppelt werden?

Folgende Arbeitsschritte können für eine erfolgreiche Ankopplung ausgeführt werden:

  1. PoKeys Konfigurationssoftware herunterladen (zu finden unter Downloads).
  2. PoKeys Software: starten - Netzwerkeinstellungen anpassen.
  3. Pokeys Software: Ein und Ausgänge des PoKeys den eigenen Wünschen anpassen.
  4. Mittels Handbuch Pokeys die Register herausfinden.
  5. Loxone Konfigurationssoftware Starten - Einführung.


Schritt 1 bis 3 - PoKeys für ModbusTCP fit machen.

Um den PoKey so zu Konfigurieren dass er mit dem Loxone Miniserver mittels ModbusTCP spricht sind nur wenige
Schritte auszuführen.

  • Die Software zum Konfigurieren des PoKeys vom Hersteller herunterladen:
    Link zur Produktseite zu finden unter "Downloads" die Software heißt ähnlich so:
    "PoKeys v3.1.55, PoBlocks, Mach3 plugin (30.4.2015).exe" auch zu erkennen an der Dateigröße.

  • PoKey mit Spannung versorgen und mit dem eigenen Ethernet verbinden.
    Sollte ein DHCP Server im eigenen Netz vorhanden sein,
    lässt sich der PoKey eine IP zuweisen und kann mittels PoKeys Software gefunden werden.

Nach dem Auf starten des Programms sollte der PoKey gefunden werden.
Anschließend einfach auf "Connect" klicken.

Durch klicken auf "Configure" kann hier auch schon eine feste IP für
Das eigene Netzwerk vergeben werden.
Das Gateway ist nur wichtig sofern eine Kommunikation über mehrere Netzwerke
entstehen soll (Zum Beispiel Heimnetzwerk -> Internet).

  • Jetzt ist alles vorbereitet und nun können die Digitalen Inputs/ Outputs konfiguriert werden.
    Dazu innerhalb der PoKeys Konfigurationssoftware unter folgendem Reiter:
    Device -> Modbus configuration ->
    Den Dialog im unterstehenden Bild aufrufen und die "Digital inputs and outputs" und was man gerade braucht aktivieren.
    Der "Modbus port number" ist mit dem Port 502 Standard und kann so belassen werden.
    Modbus connection timeout > 3 Sekunden setzen

Zum Einlesen und Setzen der Möglichkeiten zB. Ein und Ausgänge, Sensors, Poil-Funktionen (SPS und Speicher)usw.
des PoKeys müssen Diese vorher für ModbusTCP aktiviert werden.

  • Jetzt kann der 1 PIN des PoKeys innerhalb der PoKey Software konfiguriert werden.
    Zu beachten ist dabei: den PIN in der Software zu invertieren, da er sonst einen Ruhepegel = high hat (Pullup)
    soll heißen, ist der PIN in der Software nicht invertiert, wird er im Normalzustand (un- beschaltetet) als aktiv angezeigt.

Hier zu sehen: Der erste PIN des PoKeys als Eingang mit einer Invertierung.
Ist der PIN so eingestellt, wird er von LOXONE als Normalzustand inaktiv angezeigt.
Natürlich kann man den PIN auch nicht Invertieren und hätte dann eine "Drahtbruchüberwachung".

 

  • Nun haben wir den PoKeys zum Auslesen des ersten PIN´s Konfiguriert und können mit
    der Konfiguration mittels LOXONE Konfiguration fortfahren.

 


Schritt 4 - Welche Modbus Adressen muss ich einstellen?

Wie im folgendem Bild zu sehen benötigen wir zum setzen und abfragen der Ein und Ausgänge die Register- Nummern.
Jeder Hersteller vergibt diese nach eigenem Gusto, auch wenn es eigentlich nicht so sein
sollte liefert das Handbuch hier immer wertvolle Informationen.

Auszug aus den ModbusTCP Registern


Bild 3. Auszug aus den PoKey verwendeten ModbusTCP Registern.

Was heißt das für Uns?
Wie kann man Eingänge Abfragen?

Achtung: Was ist ein Offset?

Es kommt oft vor das ein Offset (engl. offset für Versatz, Absatz) besteht.
Das liegt daran das die Hersteller beim Erstellen der Steuerung entweder von 0 oder von 1 anfangen zu zählen!

Konkret bedeutet das:
LOXONE              zählt von 0
PoLabs/PoKeys   zählt von 0

Daher muss innerhalb der Software kein Offset eingestellt werden.
Zu beachten gilt aber das innerhalb des PoKeys die PINS wie in Bild 3 von 0-54 gezählt werden.

PIN 1 auf der Platine entspricht also PIN 0 innerhalb der Konfigurationssoftware/ Modbus Register.

 

Wie in Bild 3 zu sehen gibt PoLabs (Hersteller des PoKeys) an, dass die on- Bord PIN´s auf den ModbusTCP Registern 0-55 liegen.
Das Register ist in den "Read coils" angelegt.

 

Möchte man also den 1 PIN des PoKeys abfragen, muss man innerhalb der Read coils den 0 Eingang abfragen. (Siehe Bild 4)

Beispiel:

PIN PoKeysAbzufragende ModbusTCP Register
Nr. 1 (als Input)IO Adresse Nr. 0 - Read coil status (0x)
Nr. 2 (als Input)IO Adresse Nr. 1 - Read coil status (0x)
Nr. 3 (als Input)IO Adresse Nr. 2 - Read coil status (0x)
und so weiter... 

 


Bild 4. Möchte der erste PIN (PIN1) abgefragt
werden so muss dies in der Loxone- Konfiguration eingestellt werden.

Schritt 5 - Loxone Konfigurationssoftware Starten - Einführung.

Endlich können wir mit dem Konfigurieren der Loxone Config beginnen.
Anbei einige Screenshots und die Erklärung direkt unter dem Bild.

  • Schritt 1:
    Im Konfigurationsbaum auf "Miniserverkommunikation" klicken.Anschließend kann
    Punk 1 (Siehe Bild) geklickt werden.Nun haben wir einen ModbusTCP Server erstellt -
    jetzt benötigen wir noch einen Client den wir auslesen können.

    Zwischenschritt:

Sobald man auf den "Modbusserver" klick bekommt man auf der
Linken- Eigenschaftsseite/ Parameter folgende Maske zu sehen.
Hier können die IP -Adresse sowie mit einem Komma folgend der Port eingestellt werden.
IPADRESSEPOKEYS:PORT
"Wartezeit nach Start" und "Timeout ms" haben sich in der Praxis als praktikabel erwiesen.

  • Schritt 2:
    Jetzt kann der ModbusTCP Client hinzugefügt werden.
    Dieser wird benötigt um unterhalb dessen die Digitalen Ein und Ausgänge zu initialisieren.

  • Schritt 3:
    Hier finden wir später unsere Digitalen Eingänge unseres PoKeys.

 

Damit wir auch einen "Digitalsensor" haben wird hier gezeigt wie dieser angelegt werden kann:

 

  • Schritt 1:
    Im Konfigurations- Baum auf das "Modbus Gerät 1" klicken.
    Anschließend (wie im Bild markiert unter 1) auf "Digitalsensor" klicken.

  • Schritt 2:
    Nun kann wie im Parameter Menü zu sehen das ModbusTCP Register unter "Befehl" eingestellt werden.
    Für den ersten PIN 1 des PoKeys muss hier "-1 Read coil status (0x)" eingestellt werden.
    Wie schon beschrieben ist der erste PIN aufgrund der Definition (siehe Offset) unter der "IO- Adresse" 0 zu finden.

    Weitere Eingänge (sofern in der Konfigurationssoftware von PoKeys definiert) sind folgend.
    Beispiel: Eingang PoKeys PIN 2 - IO- Adresse 1

 


Fertig!

Nun sind die Anfänge gemacht.
Wir können die Eingänge des PoKeys auslesen.
Natürlich können auch Ausgänge gesetzt werden, dazu einfach die dafür von PoKeys vorgegebenen
ModbusTCP Register nutzen, zuvor müssen sie aber in der Config des Pokeys konfiguriert sein.

Viel Spaß beim Ausprobieren!

 


Quellen und Links:

https://www.poscope.com/PoKeys57E
https://www.loxforum.com/forum/faqs-tutorials-howto-s/1037-pokeys57e-das-intelligente-modul-bis-99-f%C3%BChler-bis-zu-55-i-o-s-u-anderes

https://helmutspokeysseite.wordpress.com/

Referenz:
http://forum.loxone.com/dede/hardware-zubehar-and-sensorik/kompatible-gerate-sensorik-and-aktorik/sensorik-and-aktorik/8736-pokeys57e-intelligente-modul-99-fahler-55-s-u-anderes.html
http://forum.loxone.com/dede/software/faqs-tutorials-and-howtos/6070-50-ioas-diverse-sensoren-pokeys56e.html
https://www.poscope.com/index.php?route=product/product/download&download_id=73&product_id=76
https://de.wikipedia.org/wiki/Modbus

https://www.gossenmetrawatt.com/resources/me/sineax_cam/modbus_basics_d.pdf
http://www.wachendorff-prozesstechnik.de/fileadmin/wp/fileserver/technical_notes/TN_0302_Grundlagen_Modbus.pdf


Software zum ModbusTCP Testen für den Computer:

Name/ LinkBeschreibung

ModbusTool

https://modbustool.codeplex.com/releases/view/101146

ModbusTCP

Master und Slave Testsuite.

CAS Modbus Scanner
http://freemodbus.com/download/
Modbus Scanner für
RS232, RS485 und TCP

ShortBus Modbus Scanner
http://sourceforge.net/projects/shortbusmodbusscanner/

Use ShortBus Modbus Scanner
to test communications with Modbus RTU and TCP/IP slave devices.