Modbus Relaiskarte ansprechen

Gerdchen03

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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?
 
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.
 
Zuletzt bearbeitet:
Hallo Mobi,

danke für deine Antwort.

Bildschirmfoto 2019-06-30 um 09.05.52.png
So sieht meine Eingabemaske aus. Das Register 3 kann ich nirgendwo einstellen.
 
Bei IO kommt das Register hin. Die Adresse kommt bei Modbus-Adresse hin, zwei Ebenen zurück beim Gerät.
 
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.
 
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.
Bildschirmfoto 2019-06-30 um 11.24.55.png

Klappt so aber nicht ;-)
 
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.
 
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:

Bildschirmfoto 2019-06-30 um 11.43.25.png
 
Zurück
Oben