ASCII-Befehlsprotokoll
Die MFR-Module kommunizieren über ein standardisiertes ASCII-Protokoll. Dies gilt für alle Schnittstellen (USB, RS232, Ethernet).
Verbindungsparameter
- Baudrate: 9600 Baud
- Datenformat: 8N1 (8 Datenbits, No Parity, 1 Stoppbit)
- Handshake: Keines
Befehlsstruktur
Die Kommunikation folgt dem Request-Response-Schema, wobei das Modul bei Statusänderungen auch automatisch sendet. Jeder Befehl endet mit einem Carriage Return (CR, 0x0D).
Daten-Codierung (Nibble-zu-ASCII)
Ein Byte (8 Bit) wird in zwei 4-Bit-Hälften (Nibbles) zerlegt. Zu jedem Wert (0..15) wird 0x40 addiert (@..O).
| Wert | 0 | 1 | 2 | 3 | ... | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|
| Zeichen | @ | A | B | C | ... | M | N | O |
Steuerbefehle (Operativ)
O - Ausgänge setzen (Gruppe)
Setzt alle 8 Ausgänge gleichzeitig.
- Befehl:
O [DataHigh] [DataLow] ([MaskHigh] [MaskLow]) [CR] - Maskierung: (ab Firmware V1.10) Optional können zwei weitere Bytes gesendet werden, um nur bestimmte Bits zu ändern (
1=Ändern,0=Ignorieren). - Beispiel:
O@O(Setzt Ausgänge 0-3 auf AN, 4-7 auf AUS).
o - Ausgang setzen (Einzel-Bit)
(ab Firmware V1.10) Setzt genau einen Ausgang, ohne die anderen zu beeinflussen.
- Befehl:
o [Bit-Adresse] [Bit-Status] [CR] - Adresse:
@=Kanal 0 ...G=Kanal 7. - Status:
@=Aus,A=An.
I - Eingänge lesen / Simulation
Fragt die Eingänge ab oder simuliert Eingangssignale.
- Lesen:
I [CR]Antwortet mit dem echten Status. - Simulation:
I [DataHigh] [DataLow] [CR]Führt eine logische ODER-Verknüpfung mit den physischen Eingängen durch. - Einsatzzweck: Nur für Testzwecke, um Eingänge per Software zu "forcen".
D - Watchdog (Dialogüberwachung)
(ab Firmware V1.10) Sicherheitsfunktion. Schaltet alle Ausgänge ab, wenn für Zeit
- Befehl:
D [ZeitHigh] [ZeitLow] [CR] - Einheit: 100ms Schritte (z.B. Wert 50 = 5 Sekunden).
- Deaktivierung:
D@@(Zeit = 0).
X - Reset
Führt einen Neustart (Soft-Reset) durch.
- Antwort: Das Modul sendet seine Kennung (z.B.
XSP01R...).
Automatische Events
Das Modul sendet unaufgefordert Daten, wenn sich ein Zustand ändert.
- Bei Eingangsänderung:
I [High] [Low] [CR] - Bei Ausgangsänderung:
O [High] [Low] [CR]
Wichtig für Programmierer
Stellen Sie sicher, dass Ihre Empfangsroutine diese asynchronen Nachrichten verarbeiten kann. Leeren Sie vor dem Senden eines Befehls ggf. den Eingangspuffer (Buffer Flush).
System- & Konfigurationsbefehle
Diese Befehle dienen der Verwaltung und Identifikation des Moduls.
U - Modul-Identifikation
Fragt die Hardware-Konfiguration (Ausgangstyp und Schnittstelle) ab.
- Befehl:
U [CR] - Antwort:
[Ausgang][Schnittstelle] [CR] - Rückgabewerte:
- Zeichen (Ausgang):
L= Halbleiter (Logic / Low-Side)R= Relais
- Zeichen (Schnittstelle):
E= EthernetU= USBR= RS-232
- Zeichen (Ausgang):
- Beispiel: Antwort
LRbedeutet L-Serie (Halbleiter) mit RS-232 Schnittstelle.
V - Firmware-Version
Liest die aktuelle Firmware-Version des Mikrocontrollers.
- Befehl:
V [CR] - Antwort:
[Version].[Kompilation] [CR](z.B.1.10)
S - Seriennummer
Liest die eindeutige Seriennummer des Moduls.
- Befehl:
S [CR] - Antwort: Hexadezimaler String (Baustein-Typ, Nummer, Prüfsumme BCC).
N / n - Modul-Name
Liest oder schreibt den benutzerdefinierten Namen des Moduls.
- Lesen:
N [CR]Liefert den Namen (max. 20 Zeichen). - Schreiben:
n [Name] [CR]Setzt den Namen (z.B. nMaschine1).
Q - Alle Infos lesen
Liefert eine kombinierte Liste aller oben genannten Parameter (Name, Version, Seriennummer, ID) in einem Block zurück.
- Befehl:
Q [CR]
Z / z - Logik-Konfiguration
Liest (z) oder schreibt (Z) den 16-Byte-Parameterblock für die MFR-Zeitfunktionen eines Kanals.