eletechsup_RelayBoard - MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor GitHub Wiki

eletechsup N4D8B08 - 8I50 Multifunction RS485 Relay Board

Allgemeines

Für die Kommunikation mit dem Modul wird Modbus-RTU Verwendet.

Für Informationen über die einzelnen Befehle empfehle ich https://www.simplymodbus.ca/FAQ.htm. Diese Seite enthält detaillierte Informationen über die einzelnen Befehle.

Konfiguration

Baud 9600
Data 8
Stop 1
Parity None

Für die aufgeführten Befehle wird angenommen, dass das Modul die Adresse 0x01 besitzt.

Register

Register address Register contents Number of bytes Register value
0x0001 - 0x0008
Output port
status
2
0x0000 Relay Close
0x0001 Relay Open
0x0081 - 0x0088
Input port
status
2
0X0000 Input Off
0X0001 Input On
0x00FD
I/O Linking
2
0x0000 Unrelated
0x0001 Self-locking relationship (default)
0x0002 Interlocking relationship
0x0003 Momentary relationship
Other values are the same as 0
0x00FE
Baud rate
2
0:1200
1:2400
2:4800
3:9600(default)
4:19200
5: Factory reset

Bekannte Befehle für das Modbus Modul

Die hier aufgelisteten Befehle sind ohne CRC. Sollten Sie diese manuell über ein Terminalprogramm senden wollen, so müssen sie noch den 16 bit CRC manuell berechnen.

0x01 Read Coil Status

Scheint nicht unterstützt

0x02 Read Input Status

Scheint nicht unterstützt

0x03 Lese Register

Nachricht Aufbau:

[1 Byte Adresse] [1 Byte Funktion] [2 Byte Register Start] [2 Byte Register anzahl]

[1 Byte Adresse] Die Adresse des Moduls --> 0x01
[1 Byte Funktion] die Funktion --> 0x03
[2 Byte Register Start] Das erste Register welches ausgelesen werden soll
[2 Byte Register anzahl] Die Anzahl der zu lesenden Register

Aufbau der Antwort:

[1 Byte Adresse] [1 Byte Funktion] [2 Byte Mystery] [2 Byte Register] 

[1 Byte Adresse] Die Adresse des Moduls --> 0x01
[1 Byte Funktion] die Funktion --> 0x03
[2 Byte Mystery] ??? immer 0x02 0x00
[2 Byte Register] ??? --> An: 0x01 0x79 | Aus: 0x00 0xB8

Relais Status

Register 0x00 0x00 bis 0x00 0x08

Input Register:

Register 0x00 0x81 bis 0x00 0x87

Spezielles:

Name Register Start Registeranzahl
I/O Linking 0x00 0xFD 0x00 0x01
Baud Lesen
0x00 0xFE
0x00 0x01

Beispiele:

Lese Status Relais 1
Tx: 0x01 0x03 0x00 0x01 0x00 0x01

Rx Wenn Relais 1 An:
0x01 0x03 0x02 0x00 0x01 0x79

Rx Wenn Relais 1 Aus:
0x01 0x03 0x02 0x00 0x00 0xB8

0x04 Read Input Registers

Scheint nicht unterstützt

0x05 Force Single Coil

Scheint nicht unterstützt

0x06 Set Register

Nachricht Aufbau:

[1 Byte Adresse] [1 Byte Funktion] [2 Byte Register] [2 Byte Wert]

[1 Byte Adresse] Die Adresse des Moduls --> 0x01
[1 Byte Funktion] die Funktion --> 0x06
[2 Byte Register] Auswahl des Relais 0x00 0x01 bis 0x00 0x08 für Relais 1 bis Relais 8

[2 Byte Wert]

Name Bytes Bemerkung
Anschalten 0x01 0x00 Relais bestromen
Ausschalten 0x02 0x00 Relais spannungsfrei
Toggle 0x03 0x00 Toggle
Latch 0x04 0x00 Nur dieses Relais
Momentary 0x05 0x00 Puls für ~1 Sekunde
Puls für n Sekunden
0x06 [1 Byte Sekunden als hex]
    5s  --> 0x06 0x05
    10s --> 0x06 0x0A

Spezielles

Name Register Bytes Bemerkung
Alle Relais An 0x00 0x00 0x07 0x00 Alle Relais bestromen
Alle Relais Aus 0x00 0x00 0x08 0x00 Alle Relais Spannungsfrei
I/O Unrelated
0x00 0xFD
0x00 0x00

I/O Toggle
0x00 0xFD 0x00 0x01
I/O Latch 0x00 0xFD 0x00 0x02
I/O Momentary 0x00 0xFD 0x00 0x03
Baud 1200
0x00 0xFE
0x00 0x00

Baud 2400 0x00 0xFE 0x00 0x01
Baud 4800 0x00 0xFE 0x00 0x02
Baud 9600 0x00 0xFE 0x00 0x03
Baud 19200 0x00 0xFE 0x00 0x04
Factory Reset
0x00 0xFE 0x00 0x05 Factory Reset

Beispiele:

Relais 1 Ein:
0x01 0x06 0x00 0x01 0x01 0x00

Relais 1 Aus:
0x01 0x06 0x00 0x01 0x02 0x00

Relais 8 Ein:
0x01 0x06 0x00 0x08 0x01 0x00

Relais 8 Aus:
0x01 0x06 0x00 0x08 0x02 0x00

0x0F Force Multiple Coils

Scheint nicht unterstützt

0x10 Schreibe Mehrere

Scheint nicht unterstützt

Quellen / Weitere Referenzen

https://www.mikrocontroller.net/topic/465944 Enthält einige Informationen, jedoch sind nicht alle Punkte funktional auf dem Bord welches ich in verwendet habe.

⚠️ **GitHub.com Fallback** ⚠️