Bit I/O

<< Click to Display Table of Contents >>

Navigation:  Irinos-System Betriebsanleitung > Messung / Steuerung via MscDll >

Bit I/O

Die Übertragung der Bit I/O – Daten läuft ähnlich ab, wie die statische Messung. Folgende Abbildung zeigt den Ablauf, um den Bit I/O – Datenaustausch zu starten:

Ablauf Bio IO starten

Ablauf "Bit I/O - Datenaustausch starten"

 

oDie Funktion MSC_SetupStaticChannel startet in Verbindung mit dem Opcode opcBIO (0x42) den kontinuierlichen Austausch der Bit I/O – Daten durch die MscDll.
Der Funktion müssen dazu zwei Puffer übergeben werden:

-Im Empfangspuffer legt die MscDll die aktuellen Ausgangs-Daten, gefolgt von den empfangenen Eingangs-Daten ab.

-Aus dem Sendepuffer liest die MscDll die Ausgangs-Daten, die zum Irinos-System gesendet werden sollen.
 

oNach Aufruf der Funktion MSC_SetNotificationMessage (alternativ MSC_SetNotificationEvent oder MSC_SetNotificationCallback) in Verbindung mit dem Opcode opcBIO (0x42) benachrichtigt die MscDll die Applikation jedes Mal, wenn Bit I/O – Eingangsdaten eingetroffen sind. Die Applikation kann dann selbst entscheiden, ob sie diese aus dem Puffer ausliest oder ignoriert.
Die Verwendung von Benachrichtigungen ist empfohlen, jedoch nicht zwingend erforderlich.

oDie empfangenen Bit I/O-Daten werden zunächst in einem internen Puffer der MscDll vorgehalten. Um die Bit I/O-Daten in den Puffer der Applikation zu kopieren, muss die Funktion MSC_ReadStatic in Verbindung mit dem Opcode opcBIO (0x42) aufgerufen werden (siehe folgende Abbildung). Dieser Vorgang muss nach jedem Eintreffen neuer Bit I/O-Daten ausgeführt werden.

 

MscDll Bit IO auslesen

Ablauf "Empfangene Bit I/O-Daten in Puffer der Applikation kopieren"

 

Neue Ausgangsdaten übernehmen

Ein wesentlicher Unterschied zur Abfrage der statischen Messwerte ist, dass nicht nur Daten vom Irinos-System abgerufen werden (Eingänge), sondern auch zum Irinos-System geschrieben werden (Ausgänge). Neue Ausgangs-Daten können jederzeit in den Sendepuffer geschrieben werden. Nach jeder Änderung muss die Funktion MSC_RefreshChannel in Verbindung mit dem Opcode opcBIO (0x42) aufgerufen werden, damit die MscDll die geänderten Daten übernimmt:

Bit IO Refresh

Ablauf "Bit I/O Ausgangsdaten aktualisieren"

 

Bit-Zuordnung

Die Anzahl der digitalen Ein- bzw. Ausgänge wird je Irinos-Box immer auf ein Vielfaches von 8 Bit aufgerundet. Beispiele:

oEine Irinos-Box hat 2 digitale Eingänge. Es werden 6 „virtuelle“ digitale Eingänge hinzuaddiert, so dass es insgesamt 8 Bits sind. Der Zustand der virtuellen Eingänge ist immer low.

oEine Irinos-Box hat je 68 digitale Ein- und Ausgänge. Es werden jeweils 4 „virtuelle“ digitale Ein- / Ausgänge hinzuaddiert, so dass es insgesamt jeweils 72 Bits.

Die Reihenfolge der Bits entspricht der Reihenfolge der Box-Nummerierung. Folgende Tabellen verdeutlichen dies anhand zweier Beispiele:

Box-Typ

Anzahl digitale Eingänge

Eingangs-Bits

Anzahl digitale Ausgänge

Ausgangs-Bits

IR-MASTER

68

1 .. 68

[69 .. 72 -> entfällt]

68

1 .. 68

[69 .. 72 -> entfällt]

IR-TFV

0

-

0

-

IR-INC

0

-

0

-

IR-DIO-16-16

16

73 .. 80

16

73 .. 80

IR-DIO-16-16

16

81 .. 96

16

81 .. 96

 

Box-Typ

Anzahl digitale Eingänge

Eingangs-Bits

Anzahl digitale Ausgänge

Ausgangs-Bits

IR-TFV
(integrierter Master)

2

1 .. 2

[3 .. 8 -> entfällt]

0

-

IR-TFV

0

-

0

-

IR-DIO-16-16

16

9 .. 24

16

1 .. 16

IR-INC

0

-

0

-

IR-HMI1*

40

25 .. 64

40

17 .. 56

*Die Beschreibung der Bits der Bedienbox IR-HMI1 finden Sie bei der Beschreibung der Bedienbox.

 

Update-Rate

Die Update-Rate der Bit I/Os ist identisch mit der Update-Rate der statischen Messung.

Ausgenommen hiervon sind die digitalen Ein- / Ausgänge, die über den IO-Bus an der Irinos-Box IR-MASTER angeschlossen sind. Diese werden intern ca. 30 mal pro Sekunde aktualisiert.

Beachten Sie generell beim Austausch von Bit I/Os:

Info

Der Bit I/O – Datenaustausch erfolgt nicht in Echtzeit. Es darf daher niemals in Verbindung mit einem Timer der Zustand eines Bits ausgewertet werden.

Verwenden Sie immer ein Handshake-Verfahren für den Austausch von Zustandsinformationen.

 

Sende-/Empfangspuffer

Die Größe des Empfangs- bzw. Sendepuffers richtet sich nach der Anzahl der Ein- / Ausgangsbits, die ausgetauscht werden müssen. Es gilt dabei die Grundregel, dass immer gleich viele Eingangs-Bits eingelesen werden, wie Ausgangs-Bits geschrieben werden.
Wenn also z.B. 64 Ausgangs-Bits geschrieben werden, dann werden auch 64 Eingangs-Bits eingelesen.
Wenn z.B. 128 Ausgangs-Bits geschrieben werden, dann werden auch 128 Eingangs-Bits eingelesen.

Für die meisten Systeme sind jeweils 128 Bits = 16 Bytes ausreichend. Der Sendepuffer muss dann 16 Bytes groß sein.
Im Empfangspuffer werden zunächst die digitalen Ausgänge zurückgespiegelt. Erst danach kommen die digitalen Eingänge. Deshalb muss der Empfangspuffer immer doppelt so groß sein, wie der Sendepuffer. Bei 128 Bits muss der Empfangspuffer also 32 Bytes groß sein. Siehe dazu auch folgende Abbildung:

MscDll Bit IO Puffer

Bit I/O Sende- und Empfangspuffer (Beispiel für je 128 Bits)