# Modbus Relaiskarte ansprechen



## Gerdchen03 (29 Juni 2019)

Hallo,

ich habe mir diese Karte besorgt und möchte sie über Modbus ansteuern. Manuals kann ich gerne online stellen, wenn ich das gem. Forenregeln darf. Um Relais Nummer 3 zu schließen wäre folgernder Befehl notwendig: 02 06 00 03 02 00 D9 9A
02=Modbusadresse
06=Funktion, hier ansteuern der Relais
0003= Relais Nummer 3
02=Close
00=Delay Time
D99A=CRC Check

In der Software meines Smarthomes (Loxone) habe ich Modus (Adresse 2, Baudrate etc. eingestellt) passend konfiguriert. Anschließend wird ein Digitalaktor angelegt, dem die Funktion (hier 6) und die Adresse zugewiesen wird. Die Adresse setzt sich aus 0x0003 und 0x02 zusammen. Die Adresse muss aber Dezimal eingegeben werden. Nun dachte ich, das ist ja ganz einfach und habe mir die Hex-Zahl in Dezimal umgerechnet. Dabei habe ich aber scheinbar einen Fehler gemacht, den ich nicht sehe. Ich habe die Zahl 000302 (ergibt 770) und die Zahl 32 (ergibt 50) probiert und kann damit das Relais 3 leider nicht ansprechen. Die Status-LED blinkt, wenn ich den Befehl schicke, aber das war es auch. 

Hat jemand eine Tip für mich, wie ich die Adressierung richtig mache?


----------



## Mobi (30 Juni 2019)

Die Adresse ist 2 und bleibt auch so. Das Register ist 3. Und wichtig ist auch die Parität. Um die CRC musst du dich eigentlich nicht kümmern, dass müsste ja von der Client Firmware erledigt werden.


----------



## Mobi (30 Juni 2019)

Bitte doppelten Post löschen.


----------



## Gerdchen03 (30 Juni 2019)

Hallo Mobi,

danke für deine Antwort. 



So sieht meine Eingabemaske aus. Das Register 3 kann ich nirgendwo einstellen.


----------



## Mobi (30 Juni 2019)

Bei IO kommt das Register hin. Die Adresse kommt bei Modbus-Adresse hin, zwei Ebenen zurück beim Gerät.


----------



## Gerdchen03 (30 Juni 2019)

Ich dachte bei Modbussadresse kommt die 2 hin, da das doch die Slave-ID der Relaiskarte ist, oder?


----------



## Mobi (30 Juni 2019)

Ganz genau. Und bei IO das Register 3.


----------



## Gerdchen03 (30 Juni 2019)

bei Modbusadresse habe ich die 2, weil das ja die Slave-ID ist. Bei IO habe ich die 3, als Register. Aber was mache ich mit der 2 bzw. 1 um das Relais zu öffnen bzw. zu schließen? 
Sorry, wenn ich auf dem Schlauch stehe.


----------



## Mobi (30 Juni 2019)

Im Programm musst du doch dann den Wert zuweisen.


----------



## Gerdchen03 (30 Juni 2019)

Ich hab das jetzt mal einem Analogaktor erstellt, und das übergeben der Wertes wie folgt probiert. Der Statusbaustein gibt den Wert 1 aus, wenn ich "Aus" klicke, und den Wert 2, wenn ich "Ein" klicke.



Klappt so aber nicht ;-)


----------



## Mobi (30 Juni 2019)

Du hast aber 16 Bit und nicht 32, also nur 1 Register. Ein Byte für close oder open und ein Byte für Delay.


----------



## Mobi (30 Juni 2019)

DIP-Schalter 6 (A5) ist an?


----------



## Gerdchen03 (30 Juni 2019)

Nun klappt es, vielen Dank!!

Hier meine Einstellungen, für alle, die das gleiche Problem haben:

Um diesen Befehl abzusetzen "02 06 00 03 02 00 D9 9A", welcher folgende Bedeutung hat:
02=Slave-ID
06=Funktion, hier ansteuern der Relais
0003= Relais Nummer 3
02=Close
00=Delay Time
D99A=CRC Check

muss folgendes eingestellt werden:
bei Modbusadresse habe ich die 2, weil das ja die Slave-ID ist. Bei IO habe ich die 3, als Register für das jeweilige Relais.
Der Analogaktor bekommt von dem Statusbaustein den Wert 256, wenn "Aus", und den Wert 512, wenn "Ein" geklickt wird.

Hier meine Einstellungen in der Software:


----------



## Mobi (30 Juni 2019)

Das Lowbyte ist für den Delay wenn es genutzt wird.


----------

