Modbus lesen eines Read Only Register scheitert

Hallo,
nachdem jetzt bei meinem 6-fach Relais ((ICPDAS PET 7060)) mit der Modifikation von Paresy alles super klappt, wollte ich jetzt unsere Rauchmelder an selbigen Kasten an die Eingänge anschließen.
Klappt auch soweit vom PET 7060 aus. Der Rauchmelder sendet ein zyklisches 9V Signal. Das kann der Kasten auch auflösen. Da das Signal allerdings nur ein paar Millisekunden lang ist, kann ich die Änderung mittels Modbus natürlich nicht direkt abfragen. Dafür kann der PET 7060 sog. high / low latched status speichern (off / latched). Diese Register will ich nun per Modbus abfragen.
PET 7060 hat 6 Eingänge, folgende Modbus Adressen sind angegeben:

(1xxxx) DI address
Begin address | Points | Description | Registers per Point | Range | Access Type
0 | 0~5 | Digital Input | 1 | 0=off 1=on | R
32 | 0~5 | Digital latched status (high) | 1 | 0=no 1=latched | R
64 | 0~5 |Digital latched status (low) | 1 | 0=no 1=latched | R

Wenn ich jetzt z.B. eine neue Modbus-Instanz anlege und Leseadresse 10032 angebe, bekomme ich immer als Value off geliefert. Ich kann den Status über ein Webinterface kontrollieren: Hier stimmt der Status - je nachdem ob der Rauchmelder ein Signal gesendet hat oder nicht.
Sieht für mich so aus, als kann IPS kein Register/Coil lesen - nur schreiben? Wie klappt dann aber die Abfrage der Relais-Zustände - da funktioniert alles prima. Vielleicht hat ja Paresy oder jemand mit Zugriff auf das Modbus Modul eine Idee.
Danke & Grüße
Axel

Ich habe mich mal hingesetzt und alle mgl. Einstellungen verändert.
Mir ist dabei aufgefallen, dass IPS immer nur Function Code 01 zum Auslesen versendet:
Function 01 (01hex) Read Coils
Reads the ON/OFF status of discrete coils in the slave.

zum ändern der Coils
Function 05 (05hex) Write Single Coil
Writes a single coil to either ON or OFF.

  • das funktioniert soweit gut.

Da ich aber die Modbus Adressen 10032-10037 auslesen möchte (boolean-read-only), müßten diese als Read Discrete Inputs ausgelesen werden:

Function 02(02hex) Read Discrete Inputs
Reads the ON/OFF status of discrete inputs in the slave.

Ich habe in allen Debug Fenstern immer nur function 01/05 gesehen.
Hat jemand eine Erklärung/ Lösung oder bin ich auf dem HOlzweg.
Danke!

IP-Symcon unterstützt das Auslesen/Schreiben dieser beiden Varianten noch nicht

Im nächsten Update jedoch schon :wink:

paresy

Bin jetzt endlich mal dazugekommen, die Veränderung auszuprobieren.
Wenn man Read-Only aktiviert, wandelt IPS automatisch die zu adressierende Adressgruppe um: d.h. wenn ich ModBus Register 10032 auslesen möchte (Digital Input - Discrete (1 Bit)), dann muss ich in IPS ReadOnly aktivieren und als Leseadresse 32 eingeben - dann funktioniert es bei mir!

Vielen Dank & Grüße,
Herr-W