opcBIO: Lese digitale Eingänge / schreibe digitale Ausgänge

<< Click to Display Table of Contents >>

Navigation:  MscDll Referenzhandbuch > Opcodes und Parameter > Opcodes: Messung >

opcBIO: Lese digitale Eingänge / schreibe digitale Ausgänge

Über diesen Opcode können die digitalen Eingänge eingelesen und die digitalen Ausgänge gesetzt werden.

 

Übersicht


Opcode:        0x42

Name:          opcBIO

Funktion:      Lese digitale Eingänge / schreibe digitale Ausgänge (Bit I/O)

Parameter-Typ: Binär

 

DLL-Funktion


Die digitalen Ein-/Ausgänge können kontinuierlich über MSC_SetupStaticChannel und MSC_ReadStatic übertragen werden. Sobald die Binärdaten der digitalen Ausgänge geändert wurden, muss die Funktion MSC_RefreshChannel aufgerufen werden, damit die DLL diese Daten auch übernimmt.

Alternativ ist auch eine Übertragung mit MSC_WriteCommand möglich.

 

Anfragedaten zum Irinos-System


Byte 0        Digitale Ausgänge 1..8

Byte 1        Digitale Ausgänge 9..16

Byte 2        Digitale Ausgänge 17..24

usw.

 

Antwortdaten vom Irinos-System


Byte 0        Ist-Zustand der digitalen Ausgänge 1..8

Byte 1        Ist-Zustand der digitalen Ausgänge 9..16

Byte 2        Ist-Zustand der digitalen Ausgänge 17..24

usw.

Byte x+0        Zustand der digitalen Eingänge 1..8

Byte x+1        Zustand der digitalen Eingänge 9..16

Byte x+2        Zustand der digitalen Eingänge 17..24

usw.

 

Kommentar


In den Antwortdaten werden immer zunächst die Ausgangs-Bytes zurückgespiegelt. Die Datenlänge der digitalen Ausgänge ist immer identisch zur Datenlänge der digitalen Eingänge. D.h.

oWerden 8 Ausgangsbytes in den Anfragedaten geschrieben, dann werden in den Antwortdaten 8 zurückgespiegelte Ausgangsbytes plus 8 Eingangsbytes zurückgegeben.

oWerden 16 Ausgangsbytes in den Anfragedaten geschrieben, dann werden in den Antwortdaten 16 zurückgespiegelte Ausgangsbytes plus 16 Eingangsbytes zurückgegeben.

 

Die Anzahl der Ein-/Ausgangs-Bytes bzw. –Bits ist unabhängig von der tatsächlichen Anzahl an verfügbaren Ein-/Ausgängen:

oWerden mehr Ausgangs-Bits geschrieben, als Ausgänge verfügbar sind, dann werden die nicht zugeordneten Bits ignoriert.

oWerden weniger Eingangs-Bits gelesen, als Eingänge verfügbar sind, dann bleiben die weiteren Eingänge unberücksichtigt.

oWerden mehr Eingangs-Bits gelesen, als Eingänge verfügbar sind, so werden die nicht zugeordneten Bits mit 0 gefüllt.

 

Bit I/O ist in gewisser Weise ähnlich zu statischen Messungen. Diese Informationen werden im Regelfall kontinuierlich zwischen PC und Irinos Box ausgetauscht. Ein wichtiger Unterschied ist, dass Bit I/O bidirektional funktioniert. Bit I/O Daten können sowohl gesendet als auch empfangen werden.

Normalerweise wird dieser Opcode zusammen mit der MSC_SetupStaticChannel Funktion genutzt. Diese Funktion definiert einen Sende- und einen Empfangspuffer. Der Sendepuffer enthält die Ausgangsbits und der Empfangspuffer die Eingangsbits.

Die DLL enthält einen lokalen Puffer für die Ausgabedaten. Wenn die Applikation Änderungen der Ausgabedaten wünscht, muss sie dies der DLL mit der Funktion MSC_RefreshChannel mitteilen.

 

Kompatibilität zu früheren Systemen


Dieser Opcode ist uneingeschränkt kompatibel zu früheren Systemen.

Bei früheren Systemen war die Länge der Ein-/Ausgangsbits auf jeweils 64 Bits (= 8 Bytes) fixiert. Diese Beschränkung gilt nicht mehr. Es ist jedoch auch kein Problem, wenn weiterhin jeweils 64 Bits übertragen werden, solange keine darüber hinausgehenden Ein-/Ausgänge genutzt werden sollen.