MAL-Homepage
Inhaltsverzeichnis
MAL Dokumentation: Analogmessungen
1. VOM MESSDATEN-ARCHIV AUS
In diesem Kapitel ist die Bedienung und Konfiguration von Analogmessungen
unter Nutzung des
Messdaten-Archivs beschrieben. Das Arbeiten mit
A/D-Wandlern ohne Messdaten-Archiv ist unter
Analogmessung auf MAL-Ebene
beschrieben.
Das Beenden einer laufenden Analog/Digitalwandlung erfolgt entweder automatisch
(wenn die Messung entsprechend konfiguriert wurde) oder indem mit der rechten
Maustaste auf das Scope-Window geklickt wird. Ist kein Scope-Window geöffnet
(weil bei keinem Kanal die Scope-Funktion eingeschaltet wurde), so kann die Messung
mit einer beliebigen Taste beendet werden.
Für die Erfassung und Archivierung von Analogdaten sind folgende Varianten realisiert:
MAL-Homepage Inhaltsverzeichnis
1.1. Konfiguration
Wählt man bei einem Eintrag für die Erfassung und
Archivierung von Analogdaten den Menüpunkt
Konfiguration / Analyse, so erscheint
ein Untermenü mit folgenden Punkten:
Parameters
Mit dem Menüpunkt Parameter werden allgemeine Einstellungen
des A/D-Boards vorgenommen:
Das Buffer_File ist ein temporäres File. Es
wird bei jeder Messung neu angelegt
und enthält den Ringpuffer für die Analogdaten.
Der Parameter Buffer_Length gibt an, wie lange die
maximale Aufzeichnungsdauer (in Samples) sein soll.
Im Parameter Sampling_Frequency ist die Abtastfrequenz
einzustellen. Man muss beachten, welche Frequenzen
von der verwendeten A/D-Karte unterstützt werden.
Oversampling_Rate ist in der Regel mit 1 einzustellen.
Nur bei EMG/EEG-Messungen wo gleichgerichtet werden soll
(RMS-Berechnung) ist der Faktor, um den die tatsächliche
Samplingfrequenz gegenüber der Samplingrate des
gleichgerichteten Signals größer ist, anzugeben.
Beispiel: Wenn mit 1000 Hz gemessen wird und eine
Oversampling-Rate von 10 angebeben wird, so
ist die Sampling-Rate des gleichgerichteten Signals
100 Hz (über jeweils 10 Samples wird der RMS-Wert
berechnet).
A/D-Bordnummer dient zur Adressierung des A/D-Boards.
Wird die Universal-Library zum Betrieb der Karte
verwendet, so kann dieser Parameter mit dem
Programm "Instacal" bestimmt werden.
Der Trigger_Code bestimmt die Endebedingung
für die Analogmessung
(siehe Triggerung).
MAL-Homepage Inhaltsverzeichnis
1.1.1. Kalibrieren
Für die lineare Kalibrierung eines Analogkanals besteht die Möglichkeit mit Hilfe
des Menüpunktes Channels / Calibrate den MAL-Code für die
Umrechnung von Rohwert auf Fertigwert automatisch zu berechnen,
indem man zwei oder mehrere Einzelmessungen macht und diesen bekannte Werte zuordnet.
Beispiel Beschleunigungsaufnehmer:
Einen Beschleunigungsaufnehmer eicht man am Besten mit der Erdbeschleunigung (9.81 m/s2).
MAL-Homepage Inhaltsverzeichnis
2. ANALOGMESSUNG AUF MAL-EBENE
Folgende A/D-Wandlerkarten werden unterstützt:
AT-MIO-64E-3
AT-MIO-64E-3 von National-Instruments:
Diese Karte hat 64 Analogeingänge und 7 Digitalein-/ausgänge.
Wahrscheinlich können auch andere National-Instruments Karten
(auch unter anderen Windows-Versionen) betrieben werden. Getestet
wurde jedoch nur diese Karte unter Windows-NT. Voraussetzung für
die Inbetriebnahme ist ein installierter Treiber, die Libraries für
Borland-C++ und der Borland-C++-Builder (siehe auch
Erweiterung des Befehlssatzes).
MAL-Homepage Inhaltsverzeichnis
2.1. Inbetriebnahme der A/D-Boards
MAL-Interpreter für die Benutzung des AT-MIO-64E-3 Boards vorbereiten:
MAL-Homepage Inhaltsverzeichnis
2.2. Balkendiagramm
Das Balkendiagramm (Wort adc_view)
ist für Testzwecke, vor allem bei der Inbetriebnahme, von Nutzen. Es arbeitet ohne
DMA und zeigt online die gemessenen Analogwerte von mehreren Kanälen an. Arbeitet
es nicht korrekt, so ist entweder die Jumpereinstellung am Board oder die Verkabelung
der Eingänge falsch. Eine anspruchsvollere Online-Anzeige von Meßwerten kann mit
dem Wort adc durchgeführt werden.
Syntax:
[ k1 k2 k3 ... kN ] verstärkung ->
MAL-Homepage Inhaltsverzeichnis
2.3. Einzelne Analogwerte messen
Wenn keine exakte Samplingfrequenz oder hohe Samplingrate erforderlich
ist, kann mit dem Wort adc_single
ein Analogwert eingelesen werden. Es arbeitet ohne DMA und ist mit
der Kanalnummer und einem Verstärkungsfaktor zu versorgen.
MAL-Homepage Inhaltsverzeichnis
2.4. Kontinuierliche A/D-Konvertierung
Das Wort adc
ermöglicht eine kontinuierliche Analog-Digitalwandlung in einen
Ringpuffer wobei bei Bedarf auch eine synchrone Online
Darstellung der Werte am Bildschirm möglich ist.
Der Ringpuffer wird in einer Datei eingerichtet und kann nach Ende
der A/D-Konvertierung mit dem Wort
adc_read
gelesen werden. Das logische Erscheinungsbild des Ringpuffers
entspricht beim Lesen der Daten dem eines linearen Puffers.
Beim Start der Messung wird der Puffer mit Nullänge eingerichtet
und wächst zunächst linear, bis er eine vorgegebene Maximallänge
erreicht hat. Dann wird in den Ringpuffer-Modus umgeschaltet und
die ältersten Meßwerte werden jeweils durch die neuesten überschrieben.
Will man den Ringpuffer-Modus vermeiden, so muß man eine entsprechend
große Maximallänge vorgeben, die praktisch nicht erreicht wird.
Um die Online-Anzeige zu aktivieren muß man eine Variable mit
dem Namen adc_scope einrichten. Sie muß einen Verbund mit jenen
Kanalnummern enthalten, die angezeigt werden sollen. Die Anzeige ist
nicht skaliert und wird von Zeit zu Zeit kurz angehalten, wenn ein
Teil des RAM-Puffers auf die Harddisk transferiert wird.
Triggerung:
Die Triggerung dient zum automatischen Beenden der Messung. Ein
manuelles Beenden der Messung ist jederzeit durch Drücken einer
beliebigen Taste möglich.
Die Triggerbedingung wird durch einen Codestring definiert, der folgender
Syntax entsprechen muß:
[ k1 k2 ... kN ] -> nachlauf´kI´ sind Realzahlen mit den gemessenen Analogwerten. Aus diesen Werten muß die Routine bestimmen, wie lange noch weiter gemessen werden soll. Das Ergebnis wird in dem Stackeintrag ´nachlauf´ übergeben:
MAL-Homepage Inhaltsverzeichnis
2.5. Klasse für Analogmessungen
Mit der Klasse
analog_measurement_class
können auf einfache Weise Standard-Analogmessungen
konfiguriert und durchgeführt werden.
Beispiel:
Mit dem Code
public \ vetmed >voc
interface_of analog_measurement_class >voc
werden die notwendigen Worte ins Vokabular geladen. Mit
create_analog_measurement >> messung
wird eine Instanz eingerichtet (als Typ muss man
A/D-Converter wählen). Sie kann mit
messung configure -> messung
konfiguriert werden. Es können allgemeine Messparameter wie z.B. die
Messfrequenz sowie die Kanalliste (Liste der zu messenden Analogkanäle
mit den Verstärkungen u.s.w.) eingestellt werden. Zumindest muss
aber unter dem Menüpunkt Channels mit Insert
ein Kanal eingerichtet
werden. Beim Blättern in der
Kanalliste existiert auch ein Menüpunkt (calibrate) für die
lineare Kalibrierung der einzelnen Messkanäle. Kalibriert wird, indem
mindestens zwei Probemessungen mit konstanten Messgrößen durchgeführt
und jeweils die entsprechenden Kalibrierwerte angegeben werden.
Im Anschluß kann mit dem Menüpunkt Calibration eine lineare
Regression gestartet werden.
Ist die Instanz messung fertig konfiguriert, so kann mit
messung measure -> messung
die Messung gestartet werden. Die gemessenen Analogwerte können mit
messung analog> draw screen
angezeigt werden.
MAL-Homepage Inhaltsverzeichnis
2.6. Digital-Ein/Ausgabe
Für die Digital-Ein/Ausgabe existieren die Worte
>single_bit und
single_bit>.
Für Boards, die mit der Universal-Library betrieben werden,
müssen einige Besonderheiten beachtet werden:
Die Ansteuerungscodes für das Board PCIM-DAS1602 unterscheiden
sich von jenen für das Board CIO-DAS/16F. Daher müssen in der
Datei 'adc.cpu' die entsprechende Codeteile auskommentiert
bzw. aktiviert werden. Außerdem haben manche Digitalports die
Eigenschaft, dass nur ganze Gruppen von Bits zwischen Input und
Output umgeschaltet werden und beim Umschalten meist der
Zustand der Outputs rückgesetzt wird.
In manchen Fällen kann es einfacher sein, das Parallele-Port
(Centronix-Port) für die Digital-Ein/Ausgabe zu nutzen. Mit
den Worten >port und
port> können beliebige
Ports angesprochen werden.
So könen zum Beispiel mit dem Code
255 "378" hex> >portalle Bits der Printer-Ports prn1 auf High gesetzt werden.
MAL-Homepage Inhaltsverzeichnis