Kommando Code: 0xE9
Beschreibung: Digitale Ein- / Ausgänge können gelesen werden.
Parameter (Master -> Slave) :
Es sind 3 Typen von Anfragen möglich, welche sich in der Anzahl der übergebenen Parameter und der Art und Anzahl der angefragten digitalen Ein- Ausgänge unterscheiden. Abhängig vom Typ (1-3) der Anfrage werden auch unterschiedliche Antworten vom Modul zurückgeschickt.
Typ 1: Es wird der aktuelle Zustand aller digitalen Eingänge als Bit-Vektor gelesen. (Die Ausgänge können mit Typ 1 Anfragen nicht gelesen werden.):
Parameter (Master -> Slave):
Antwort (Slave -> Master):
Typ 2: Ein bestimmter digitaler Eingang oder Ausgang wird gelesen. Welcher Eingang oder Ausgang gelesen werden soll wird durch den Parameter ,,Adresse'' bestimmt. Der ,,Zustand'' des adressierten digitalen Ein- oder Ausgangs wird in Bit 0 des übertragenen Datenbytes der Antwort übermittelt:
Parameter (Master -> Slave):
Antwort (Slave -> Master):
Typ 3: Eine aufeinanderfolgende Reihe von digitalen Eingängen oder Ausgängen wird gelesen. Welche Eingänge oder Ausgänge gelesen werden sollen wird durch die Parameter ,,Adresse'' und ,,Länge'' bestimmt. Beginnend mit dem Ein- oder Ausgang an ,,Adresse'' werden soviele Ein- Ausgänge gelesen wie der Parameter ,,Länge'' angibt. In der Antwort wird der Zustand der adressierten digitalen Ein- oder Ausgänge als Bit-Vektor in den übertragenen n Datenbytes ,,Zustände'' übermittelt. Die Anzahl der übermittelten Datenbytes hängt von der angefragten ,,Länge'' ab und berechnet sich wie folgt: ,,(Länge + 7) / 8'', wobei ,,/'' die Integerdivision (Division ohne Rest) bezeichnet. Für ,,Länge'' von 1..8 wird also mit einem Byte geantwortet, für ,,Länge'' von 9..16 wird mit zwei Bytes geantwortet, usw.:
Parameter (Master -> Slave):
Antwort (Slave -> Master):
Bemerkungen
Beispiele:
Beispiel 1: Typ 1
| D-Len | Cmd | Param | ||
| M->S | 0x01 | 0xE9 | Typ1: Alle Eingänge lesen | |
| S->M | 0x05 | 0xE9 | 0x01 0x02 0x04 0x08 | Typ 1: Eingang 1, 10, 19 und 28 sind gesetzt, alle anderen Eingänge sind gelöscht |
Beispiel 2: Typ 2
| D-Len | Cmd | Param | ||
| M-> S | 0x05 | 0xE9 | 0x21 0x4e 0x00 0x00 | Typ 2: Eingang 20001 lesen (MCS-P4: Software I/O) |
| S-> M | 0x02 | 0xE9 | 0x01 | Typ 2: Eingang 20001 ist gesetzt (0x01) |
Beispiel 3: Typ 3
| D-Len | Cmd | Param | ||
| M-> S | 0x06 | 0xE9 | 0x02 0x00 0x00 0x00 0x04 | Typ 3: Ausgänge 2 bis 5 (4 Stk.) lesen (MCS-P4: ,,local, general outputs, Bank 0'') |
| S-> M | 0x02 | 0xE9 | 0x0f | Typ 3: Ausgänge 2 bis 5 sind gesetzt (0x0f) |