Zum Inhalt springen

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).

Wert0123...131415
Zeichen@ABC...MNO

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 t keine Kommunikation erfolgt.

  • 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.

  1. Bei Eingangsänderung: I [High] [Low] [CR]
  2. 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:
    1. Zeichen (Ausgang):
      • L = Halbleiter (Logic / Low-Side)
      • R = Relais
    2. Zeichen (Schnittstelle):
      • E = Ethernet
      • U = USB
      • R = RS-232
  • Beispiel: Antwort LR bedeutet 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.