CE039 RS232-Relaismodul: Vollständiger Hex-Befehlsleitfaden mit Python-Beispielen und Antwortframes

Steuern Sie 4 unabhängige Relaiskanäle von einem PC, einer Python-Anwendung oder einem eingebetteten System mit echten Hexadezimalbefehlen.

Das Eletechsup CE039 ist ein 4-Kanal-RS232-Relaissteuerungsboard, das für computergesteuerte Schaltvorgänge, Laborautomatisierung, Elektroniktests und die Fernsteuerung von Geräten entwickelt wurde.

Für Entwickler ist die wichtigste Funktion das einfache serielle Befehlsformat. Anstatt Relais manuell zu schalten, kann die Software einen 8-Byte-Hexadezimalbefehl senden, einen Antwortrahmen empfangen und den gemeldeten Relaisstatus überprüfen.

Dieses Tutorial behandelt die tatsächlichen von Eletechsup veröffentlichten CE039-Befehlsbeispiele, einschließlich Befehlen zum Ein-/Ausschalten der Relais, aller vier Kanäle, Antwortrahmen, Statusabfragen und einer Python-Implementierung.

Offizielle Produktseite:
https://eletechsup.com/products/ce039-dc-12v-4ch-rs232-relay-board-scm-pc-usb-uart-db9-remote-control-switch-plc-motor

Offizielle technische FAQ:
https://eletechsup.com/blogs/news/ce039-faq

1. CE039-Hardware- und Kommunikationsspezifikationen

Parameter Spezifikation
Modell Eletechsup CE039
Relaiskanäle 4
Kommunikationsschnittstelle RS232-Seriell
Standard-Baudrate 9600 bps
Datenbits 8
Parität Keine
Stoppbits 1
Datenrahmenlänge 8 Bytes
Stromversorgung des Boards DC 12V, spezifizierter Bereich 8,5–13,5V
Relaiskontakte COM, NO und NC für jeden Kanal
Anzeige Leuchtdioden für Stromversorgung und Relaisstatus
Boardabmessungen 90 × 47 × 19 mm

Jedes Relais verfügt über einen Wechslerkontakt. Bei Aktivierung verbindet COM mit NO; bei Deaktivierung trennt sich COM von NO und verbindet sich mit NC.

Das CE039 benötigt eine eigene, spezifizierte DC-Stromversorgung. Die von seinen Relaiskontakten geschaltete Spannung ist ein separater Stromkreis und muss innerhalb der geltenden Kontaktbewertungen bleiben.

2. Verbinden Sie das CE039 mit Ihrem PC

Eine typische Konfiguration ist:

PC oder Laptop → USB-auf-RS232-Adapter → CE039 → externer Stromkreis

Wenn Ihr Computer keinen nativen RS232-Port hat, verwenden Sie einen kompatiblen USB-auf-RS232-Adapter. Verwechseln Sie einen RS232-Adapter nicht mit einem TTL-UART-Adapter: ihre elektrischen Signalpegel sind unterschiedlich.

Konfigurieren Sie das serielle Terminal wie folgt:

  • Baudrate: 9600

  • Datenbits: 8

  • Parität: Keine

  • Stoppbits: 1

  • Befehlsformat: Roh-Hexadezimalbytes

  • Befehlslänge: 8 Bytes

Wichtig: Geben Sie den Befehl als Binärbytes ein, nicht als ASCII-Zeichen, die Hexadezimalziffern darstellen. Zum Beispiel muss die Hex-Zeichenfolge 55 56 als zwei Bytes übertragen werden, 0x55 und 0x56, anstatt als vier ASCII-Zeichen.

In den veröffentlichten 8-Byte-Befehlsbeispielen ist kein zusätzlicher Zeilenumbruch oder Zeilenumbruch erforderlich.

3. Verständnis des CE039-Befehlsrahmens

Ein typischer Relaissteuerungsbefehl hat diese Struktur:

Byteposition Beispiel Bedeutung
1 55 Befehlsrahmen-Header
2 56 Befehlsrahmen-Header
3–5 00 00 00 Reservierte Felder in den veröffentlichten Beispielen
6 01 Kanalnummer
7 01 Betriebscode
8 AD Prüfsummenbyte in diesem Beispiel

Bei den veröffentlichten Beispielen entspricht das letzte Byte den niedersten 8 Bits der Summe der sieben vorangegangenen Bytes.

Zum Beispiel:

55 + 56 + 01 + 01 = 0xAD

Die reservierten Nullbytes ändern die Summe nicht.

Verwenden Sie bei der Erstellung von Befehlen die vom Hersteller dokumentierte Rahmenstruktur; gehen Sie nicht davon aus, dass dieses Protokoll mit anderen seriellen Relaisboards kompatibel ist, nur weil diese ebenfalls Acht-Byte-Rahmen verwenden.

4. Tatsächliche Hexadezimalbefehle für alle vier Kanäle

Die folgenden Befehlsbytes sind in der offiziellen Eletechsup CE039-Produktdokumentation veröffentlicht.

4.1 Ein Relais einschalten

Betriebscode: 01

Dies aktiviert das Relais und verbindet COM mit NO.

Kanal Befehl (HEX)
Relais 1 55 56 00 00 00 01 01 AD
Relais 2 55 56 00 00 00 02 01 AE
Relais 3 55 56 00 00 00 03 01 AF
Relais 4 55 56 00 00 00 04 01 B0

4.2 Ein Relais ausschalten

Betriebscode: 02

Dies deaktiviert das Relais, trennt COM von NO und verbindet COM mit NC.

Kanal Befehl (HEX)
Relais 1 55 56 00 00 00 01 02 AE
Relais 2 55 56 00 00 00 02 02 AF
Relais 3 55 56 00 00 00 03 02 B0
Relais 4 55 56 00 00 00 04 02 B1

4.3 Ein Relais umschalten

Betriebscode: 03

Umschalten kehrt den aktuellen Zustand des Relais um.

Kanal Befehl (HEX)
Relais 1 55 56 00 00 00 01 03 AF
Relais 2 55 56 00 00 00 02 03 B0
Relais 3 55 56 00 00 00 03 03 B1
Relais 4 55 56 00 00 00 04 03 B2

Umschalten ist nützlich für einen manuellen EIN-/AUS-Schalter, aber ein expliziter EIN- oder AUS-Befehl ist im Allgemeinen vorzuziehen, wenn ein Programm einen vorhersehbaren Zielzustand benötigt.

4.4 Momentary-Relaisbetrieb

Betriebscode: 04

Das veröffentlichte Protokoll beschreibt dies als Verbinden von COM mit NO und erneutes Trennen nach etwa 200 ms.

Kanal Befehl (HEX)
Relais 1 55 56 00 00 00 01 04 B0
Relais 2 55 56 00 00 00 02 04 B1
Relais 3 55 56 00 00 00 03 04 B2
Relais 4 55 56 00 00 00 04 04 B3

Diese Funktion kann für Anwendungen nützlich sein, die einen kurzen Schaltimpuls erfordern, wie z. B. das Auslösen eines kompatiblen Testeingangs oder das Simulieren eines Tastendrucks. Überprüfen Sie vor der Verwendung die Anforderungen des Zielgeräts.

4.5 Verriegelungsbetrieb

Betriebscode: 05

Die veröffentlichten Befehlsbeispiele sind:

Kanal Befehl (HEX)
Relais 1 55 56 00 00 00 01 05 B1
Relais 2 55 56 00 00 00 02 05 B2
Relais 3 55 56 00 00 00 03 05 B3
Relais 4 55 56 00 00 00 04 05 B4

Verriegelung ist für Anwendungen vorgesehen, die einen sich gegenseitig ausschließenden Relaisbetrieb erfordern. Bestätigen Sie das genaue Verhalten und die Kanalinteraktion in der Produktdokumentation, bevor Sie es in einem tatsächlichen Steuerkreis verwenden.

6. Tatsächliche Antwortrahmen: So überprüfen Sie den Relaisstatus

Die CE039-Dokumentation veröffentlicht Antwortrahmen, die mit 33 3C beginnen. Das siebte Byte identifiziert den gemeldeten Relaisstatus in den dokumentierten Antwortbeispielen.

6.1 Antwort, wenn ein Relais eingeschaltet ist

Das Antwort-Betriebs-/Statusbyte ist 01.

Kanal Antwort (HEX)
Relais 1 33 3C 00 00 00 01 01 71
Relais 2 33 3C 00 00 00 02 01 72
Relais 3 33 3C 00 00 00 03 01 73
Relais 4 33 3C 00 00 00 04 01 74

6.2 Antwort, wenn ein Relais ausgeschaltet ist

Das Antwort-Betriebs-/Statusbyte ist 02.

Kanal Antwort (HEX)
Relais 1 33 3C 00 00 00 01 02 72
Relais 2 33 3C 00 00 00 02 02 73
Relais 3 33 3C 00 00 00 03 02 74
Relais 4 33 3C 00 00 00 04 02 75

6.3 Beispiel: Relais 1 einschalten und die Antwort lesen

Senden:

55 56 00 00 00 01 01 AD

Die dokumentierte EIN-Antwort für Relais 1 ist:

33 3C 00 00 00 01 01 71

Eine Host-Anwendung kann den Antwort-Header, die Kanalnummer, das Statusbyte und die Rahmenprüfsumme überprüfen, bevor sie die Antwort als gültig behandelt.

Eine empfangene Antwort bestätigt den gemeldeten Relaisstatus des Moduls. Sie beweist nicht unabhängig, dass die externe Last mit Strom versorgt wird oder korrekt funktioniert; dafür kann zusätzliche elektrische Rückmeldung erforderlich sein.

7. Relaisstatus auslesen

Die offizielle CE039-Dokumentation listet diesen Befehl zum Auslesen des Relaisstatus:

55 56 00 00 00 00 00 AB

Dies ist der veröffentlichte Statusabfragebefehl. Die Produktdokumentation beschreibt auch das Antwortformat und das Relaisstatusbyte.

Verwechseln Sie diese Abfrage nicht mit den einzelnen Kanal-EIN-/AUS-Befehlen. Wenn Sie den Zustand jedes Kanals bestimmen müssen, analysieren Sie den zurückgegebenen Rahmen gemäß der Protokolldokumentation des Herstellers, anstatt von einem nicht überprüften Antwortlayout auszugehen.

8. Python-Beispiel: Steuerung des CE039 mit echten Befehlen

Installieren Sie die Python-Serienbibliothek:

pip install pyserial

Das folgende Beispiel verwendet die tatsächlich veröffentlichten EIN- und AUS-Befehlsbytes für alle vier Kanäle.

import serial
import time

PORT = "COM3"  # Auf Ihren tatsächlichen Port ändern

relay_on = {
    1: bytes.fromhex("55 56 00 00 00 01 01 AD"),
    2: bytes.fromhex("55 56 00 00 00 02 01 AE"),
    3: bytes.fromhex("55 56 00 00 00 03 01 AF"),
    4: bytes.fromhex("55 56 00 00 00 04 01 B0"),
}

relay_off = {
    1: bytes.fromhex("55 56 00 00 00 01 02 AE"),
    2: bytes.fromhex("55 56 00 00 00 02 02 AF"),
    3: bytes.fromhex("55 56 00 00 00 03 02 B0"),
    4: bytes.fromhex("55 56 00 00 00 04 02 B1"),
}

def send_command(ser, command):
    ser.reset_input_buffer()
    ser.write(command)
    ser.flush()

    # Die dokumentierte Antwort ist ein 8-Byte-Rahmen.
    response = ser.read(8)
    print("TX:", command.hex(" ").upper())
    print("RX:", response.hex(" ").upper())

    if len(response) != 8:
        print("Warnung: unvollständige Antwort oder serielle Zeitüberschreitung")
        return response

    # Überprüfen Sie den veröffentlichten Antwort-Header und die Prüfsumme.
    expected_checksum = sum(response[:7]) & 0xFF

    if response[:2] != bytes.fromhex("33 3C"):
        print("Warnung: unerwarteter Antwort-Header")
    elif response[7] != expected_checksum:
        print("Warnung: Antwort-Prüfsummenfehler")
    else:
        print("Antwortrahmenformat und Prüfsumme: OK")

    return response

with serial.Serial(
    port=PORT,
    baudrate=9600,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    timeout=1
) as ser:

    # Relais 1 einschalten.
    send_command(ser, relay_on[1])
    time.sleep(0.2)

    # Relais 1 ausschalten.
    send_command(ser, relay_off[1])

Vor dem Ausführen: Setzen Sie PORT auf den richtigen seriellen Port und verbinden Sie das CE039 über eine kompatible RS232-Schnittstelle. Das Programm geht davon aus, dass innerhalb des konfigurierten Timeouts eine Antwort mit acht Bytes eintrifft. Wenn Ihre Anwendung einen robusten Betrieb erfordert, fügen Sie Rahmenpufferung, Antwortvalidierung, Wiederholversuche und die Behandlung unerwarteter oder verzögerter Antworten hinzu.

Das Beispiel validiert den dokumentierten Antwort-Header und die Prüfsumme. Für eine Anwendung, die den Zustand eines bestimmten Kanals überprüfen muss, prüfen Sie auch, ob die zurückgegebenen Kanalnummer und das Statusbyte mit dem gesendeten Befehl übereinstimmen.

8. Praktische Anwendungen

PC-basierte automatisierte Tests

Ein Testprogramm kann die Stromversorgung oder den Reset-Kreis eines Geräts schalten, auf eine Messung warten, das Ergebnis aufzeichnen und mit der nächsten Testphase fortfahren.

Fernsteuerung von Geräten

Verwenden Sie einen seriellen Befehl, um eine kompatible elektrische Last von einem Computer aus zu betreiben. Dies kann für Laborgeräte und die Verwaltung von Geräten ohne sicherheitskritische Bedeutung nützlich sein.

Elektronikentwicklung

Schalten Sie ausgewählte Stromkreise während der Prototypenevaluierung, der Produktionsprüfung oder wiederholter Experimente, ohne einen Schalter manuell zu betätigen.

Eingebettete Steuerung

Ein Controller mit einer geeigneten RS232-Schnittstelle kann dieselben Befehlsrahmen aus eingebetteter Software senden, was das CE039 zu einer praktischen Option für benutzerdefinierte Steuerprojekte macht.

Simulation von Tasten und Auslösern

Die dokumentierte Momentanfunktion kann einen kurzen Relaisimpuls an einen kompatiblen externen Eingang liefern. Überprüfen Sie vor der Implementierung die elektrischen Anforderungen und Anforderungen an die Schaltzeiten des Eingangs.

9. Häufige Fragen zur Fehlerbehebung

Warum reagiert das Relais nicht?

Überprüfen Sie die 12-V-DC-Versorgung, die Auswahl des seriellen Ports, die RS232-elektrische Schnittstelle, die Verkabelung und die Einstellungen 9600 8N1. Stellen Sie sicher, dass Ihr Programm rohe Bytes anstelle von ASCII-Zeichen sendet.

Warum scheint der Befehl korrekt zu sein, aber die Antwort fehlt?

Überprüfen Sie die Befehllänge, die Kanalnummer, den Funktionscode und die Prüfsumme. Überprüfen Sie außerdem, ob der Adapter kompatibel ist und ob die Anwendung die Antwort korrekt ausliest.

Kann das CE039 mit Python gesteuert werden?

Ja. Ein Python-Programm kann die dokumentierten achtbaitigen Befehlsrahmen über einen seriellen Port mit pyserial senden.

Kann das Relais eine andere Spannung als die Versorgungsspannung der Platine schalten?

Die Relaiskontakte sind elektrisch von der 12-V-DC-Versorgung der Platine getrennt, aber der externe Stromkreis muss innerhalb der Nennwerte der Relaiskontakte bleiben. Induktive Lasten können zusätzliche Unterdrückung erfordern.

Garantieren Sie eine Antwort, dass die externe Ausrüstung funktioniert?

Nein. Eine gültige Antwort zeigt den vom Modul gemeldeten Relaiszustand an. Zusätzliches Feedback kann erforderlich sein, um den Zustand des externen Stromkreises oder der Ausrüstung zu überprüfen.

10. Fazit

Das Eletechsup CE039 ermöglicht die Steuerung von vier Relaiskanälen über eine einfache serielle Schnittstelle. Seine dokumentierten achtbaitigen Hexadezimalbefehle unterstützen ON-, OFF-, Toggle-, Momentan- und Verriegelungsoperationen, während die Antwortrahmen es der Software ermöglichen, den gemeldeten Relaiszustand zu überprüfen.

Durch die Kombination des CE039 mit einer kompatiblen RS232-Schnittstelle und einer kleinen Python-Anwendung können Entwickler computergesteuerte Schaltsysteme für Testgeräte, Laborexperimente und allgemeine Automatisierung aufbauen.

Entdecken Sie das Eletechsup CE039 4-Kanal-RS232-Relaisboard:
https://eletechsup.com/products/ce039-dc-12v-4ch-rs232-relay-board-scm-pc-usb-uart-db9-remote-control-switch-plc-motor

#Eletechsup #CE039 #RS232 #Relaisboard #HexBefehle #Python #PySerial #SerielleKommunikation #AutomatisierterTest #PCgesteuertesRelais #EingebetteteSysteme #Elektroniktechnik #Fernschaltung #Hardwareintegration

Zurück zum Blog

Hinterlasse einen Kommentar