CE039 RS232-Relaismodul: Vollständiger Hex-Befehlsleitfaden mit Python-Beispielen und Antwortframes
Teilen
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