CAROA04 CAROB08 CAROC16 CAN-Protokolldokumentation RSA85-Relais Modbus für CAN-BUS
Teilen
Eletechsup CAROC16 CAN-Protokolldokumentation
================================================
ÜBERSICHT
--------
Das CAROC16 ist ein 16-Kanal-Digital-Ein-/Ausgangs-Relaismodul, das über den CAN-Bus mit Standard- oder erweiterten Rahmenformaten kommuniziert. Standardkonfiguration: Adresse 0x01, Baudrate 250Kbps.
WERKSEINSTELLUNGEN WIEDERHERSTELLEN
-------------
Schließen Sie den RES-Jumper für 5 Sekunden kurz, um die Werkseinstellungen wiederherzustellen.
CAN-RAHMENFORMATE
-----------------
Standard-Rahmenformat:
- Rahmen-ID: 11-Bit (Funktionscode << 8 | Adresscode)
- Daten: 8 Bytes
Erweitertes Rahmenformat:
- Rahmen-ID: 29-Bit (0x00AA gefolgt von Funktionscode und Adresscode)
- Daten: 8 Bytes
CAN-ID-STRUKTUR (Standard-Rahmen)
---------------------------------
Bits 10-8: Funktionscode
Bits 7-0: Adresscode (Knoten-ID)
Beispiel: Funktion 0x01, Adresse 0x01 → CAN-ID = 0x101
FUNKTIONSCODES
--------------
0x01 - Digitalausgänge (Relais) schreiben
0x02 - Digitalausgänge (Relais) lesen
0x03 - Digitaleingänge lesen
0x07 - Parametereinstellungen
DATENFORMAT
-----------
Alle Funktionen verwenden eine 8-Byte-Datenlast:
- Byte 0: Niedriges Byte (Kanäle 1-8)
- Byte 1: Hohes Byte (Kanäle 9-16)
- Bytes 2-7: Reserviert (0x00)
Kanalzuordnung:
- Byte 0: bit0=CH1, bit1=CH2, ..., bit7=CH8
- Byte 1: bit0=CH9, bit1=CH10, ..., bit7=CH16
FUNKTION 0x01: RELAIS SCHREIBEN
---------------------------
Zweck: Relaisausgänge steuern
Befehl: Gewünschte Relaiszustände in den Datenbytes 0-1 festlegen
Antwort: Echo des gesendeten Befehls
Beispiel - Relais 1, 8 und 16 einschalten:
Senden: CAN-ID 0x101, Daten: 81 80 00 00 00 00 00 00
Empfangen: CAN-ID 0x101, Daten: 81 80 00 00 00 00 00 00
FUNKTION 0x02: RELAIS LESEN
--------------------------
Zweck: Aktuelle Relaiszustände auslesen
Befehl: Senden mit Datenbytes 0-1 als 0x00
Antwort: Aktuelle Relaiszustände in den Datenbytes 0-1
Beispiel - Relaiszustände auslesen:
Senden: CAN-ID 0x201, Daten: 00 00 00 00 00 00 00 00
Empfangen: CAN-ID 0x201, Daten: 82 20 00 00 00 00 00 00
(Relais 2, 8 und 14 sind EIN)
FUNKTION 0x03: EINGÄNGE LESEN
--------------------------
Zweck: Digitaleingangszustände auslesen
Befehl: Senden mit beliebigen Daten (werden ignoriert)
Antwort: Aktuelle Eingangszustände in den Datenbytes 0-1
Beispiel - Digitaleingänge auslesen:
Senden: CAN-ID 0x301, Daten: 00 00 00 00 00 00 00 00
Empfangen: CAN-ID 0x301, Daten: 85 81 00 00 00 00 00 00
(Eingänge 1, 3, 9 und 16 sind aktiv)
FUNKTION 0x07: PARAMETEREINSTELLUNGEN
---------------------------------
Zweck: Gerätedaten konfigurieren
CAN-ID: 0x701 (Funktion 0x07 + Adresse 0x01)
Befehle:
- 0xA1: Adresscode lesen
- 0xA2: Baudrate-Code lesen
- 0xB1: Adresscode schreiben (Byte 1 = neue Adresse)
- 0xB2: Baudrate-Code schreiben (Byte 1 = Baudrate-Code)
Baudrate-Codes:
0x00 = 5Kbps 0x06 = 200Kbps
0x01 = 10Kbps 0x07 = 250Kbps (Standard)
0x02 = 20Kbps 0x08 = 400Kbps
0x03 = 50Kbps 0x09 = 500Kbps
0x04 = 100Kbps 0x0A = 800Kbps
0x05 = 120Kbps 0x0B = 1000Kbps
Beispiel - Baudrate auf 500Kbps einstellen:
Senden: CAN-ID 0x701, Daten: B2 09 00 00 00 00 00 00
Empfangen: CAN-ID 0x701, Daten: B2 09 00 00 00 00 00 00
ERWEITERTER RAHMEN
---------------------
Für erweiterte Rahmen 0xAA vor den Standard-Rahmen setzen:
Standard: CAN-ID 0x101, Daten: 81 80 00 00 00 00 00 00
Erweitert: CAN-ID mit 0xAA-Präfix, Daten: AA 01 01 81 80 00 00 00
PRAKTISCHE BEISPIELE
------------------
1. Nur Relais 1 einschalten:
CAN-ID: 0x101, Daten: 01 00 00 00 00 00 00 00
2. Relais 2, 7, 11, 15 einschalten:
CAN-ID: 0x101, Daten: 42 44 00 00 00 00 00 00
3. Prüfen, ob Eingang 5 aktiv ist (Antwort zeigt 10 hex = Bit 4):
CAN-ID: 0x301, Daten: 00 00 00 00 00 00 00 00
Antwort: 10 00 00 00 00 00 00 00
4. Gerätedadresse auf 0x03 ändern:
CAN-ID: 0x701, Daten: B1 03 00 00 00 00 00 00
SPEZIFIKATIONEN
--------------
- Kanäle: 16 Digitaleingänge, 16 Relaisausgänge
- CAN-Standard: ISO 11898
- Standardadresse: 0x01
- Standard-Baudrate: 250Kbps
- Rahmentypen: Standard (11-Bit) und erweitert (29-Bit)
Noch eine Frage an Ihren Ingenieur. Mit MODBUS kann man pro Nachricht ein einzelnes Relais aktivieren/deaktivieren (0x05), bei CANBUS kann ich dazu keine Dokumentation finden und 0x05 hat nicht funktioniert. Könnten Sie fragen, wie man ein einzelnes Spulenelement/Relais über CANBUS steuert? Was sind die Nachrichten-ID und die Daten?
1 MODBUS-Befehle und CAN-Befehle sind völlig unterschiedliche Befehle.
2 CAN-Befehle haben keine 0X05-Befehle
3 CAN-Befehle steuern alle Kanäle gleichzeitig, und es gibt keine Befehle zur Steuerung eines einzelnen Kanals.