User manual

gpio.AI
abgelegt. Der Ringbuffer verfügt außerdem über drei Counter (RB_START,
RB_CNT, RB_LOOP), die Auskunft über den aktuellen Zustand des Buffers
geben. RB_CNT (Inputregister 0x0009) wird mit jedem Triggerevent
inkrementiert. Überschreitet RB_CNT die Maximalgröße des Buffers (15*8 =
120 Werte), verschiebt sich RB_START (Inputregister 0x0008) und alte Daten
werden überschrieben. Das Register RB_LOOP (Inputregister 0x000A) zählt die
Anzahl voller Buffer (RB_START erreicht wieder 0) und kann somit als Indikator
für Datenverlust dienen.
Im Autotrigger-Modus werden immer alle acht Kanäle gesampelt. Die Größe des
Ringbuffers ist so gewählt, dass alle Daten inklusive der drei Counter in einem
Modbuspaket Platz finden. Dadurch kann der Buffer immer komplett gelesen
und Synchronisierungsfehler vermieden werden. Der Buffer enthält maximal die
letzten 15 Messwerte für jeden Kanal (120 Werte). Die Werte werden dabei
sequentiell abgelegt. Ein Messwert sei als X
y;z
definiert. Hiebei steht y für dea
Triggerereignis und z für den Eingangskanal. Im Buffer findet sich entsprechend
folgende Sequenz:
[X
0;0
, X
0;1
... X
0;7
], [X
1;0
, X
1;1
... X
1;7
] ... [X
14;0
, X
14;1
... X
14;7
]
In diesem Modus ändert sich das Verhalten der Inputregister Data
0
Data
7
.
Diese stoßen nun keine Messung an, sondern liefern beim Auslesen den
Mittelwert der im Rinbuffer befindlichen Daten für den jeweiligen Kanal.
14/18