Contents Up Previous Next

CMD GET DIO (0xE9)

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-LenCmdParam
M->S0x010xE9Typ1: Alle Eingänge lesen
S->M0x050xE90x01 0x02 0x04 0x08Typ 1: Eingang 1, 10, 19 und 28 sind gesetzt, alle anderen Eingänge sind gelöscht

Beispiel 2: Typ 2
D-LenCmdParam
M-> S0x050xE90x21 0x4e 0x00 0x00Typ 2: Eingang 20001 lesen (MCS-P4: Software I/O)
S-> M0x020xE90x01Typ 2: Eingang 20001 ist gesetzt (0x01)

Beispiel 3: Typ 3
D-LenCmdParam
M-> S0x060xE90x02 0x00 0x00 0x00 0x04Typ 3: Ausgänge 2 bis 5 (4 Stk.) lesen (MCS-P4: ,,local, general outputs, Bank 0'')
S-> M0x020xE90x0fTyp 3: Ausgänge 2 bis 5 sind gesetzt (0x0f)