:Revision=2
:html
<<
128.136
ExacqDA-Objekt|ExacqDA
--
Das IP-Objekt <!RW>ExacqDA erlaubt den Zugriff auf eine Exacq Daten Erfassungskarte
>>

<<
128.136.3
ExacqDA.ADC|ADC
--
Analoge Eingnge
>>

<<
128.136.3.1
ExacqDA.ADC.Setup|Setup
--
<!DEF>
procedure <!TW>ExacqDA.ADC.Setup (rChannel, rRange : real [, rCoupling : real]);
<!TXT>
Legt die Charakteristik des AD-Kanals <!PW>rChannel (0..15) in Bezug auf Messbereich und Ankopplung des Kanals fest.

 <!PW>rRange :
<!STBL>
<!+>Nr.<!+>Bereich<!+>
<!c>-1<!>Bereich nicht ndern<!>
<!c>0<!> 50 mV<!>
<!c>1<!> 100 mV<!>    
<!c>2<!> 200 mV<!>    
<!c>3<!> 500 mV<!>
<!c>4<!> 1 V<!>
<!c>5<!> 2 V<!>
<!c>6<!> 5 V<!>
<!ETBL>

 <!PW>rCoupling:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!c>-1<!>keine nderung<!>
<!c>0<!>DC gekoppelt<!>
<!c>1<!>AC gekoppelt<!>
<!c>2<!>DC gekoppelt und terminiert<!>
<!ETBL>

>>
<<
128.136.3.2
ExacqDA.ADC.Get|Get
--
<!DEF>
function <!TW>ExacqDA.ADC.Get (rChannel : real [; rAverages : real]);
<!TXT>
Liefert den Wert den AD-Kanals <!PW>rChannel (0..1).

Wenn <!PW>rAverages (1..1024) angegeben ist, dann wird aus entsprechend vielen Einzelwerten der Mittelwert gebildet.
>>

<<
128.136.3.3
ExacqDA.ADC.Sample|Sample
--
Sampling - Aufzeichnung von analogen Signalen
>>
<<
128.136.3.3.1
ExacqDA.ADC.Sample.Check|Check
--
<!DEF>
function <!TW>ExacqDA.ADC.Sample.Check : real;
<!TXT>
Prft, ob mit den getroffenen Einstellungen (Kanle, Frequenz, Anzahl) der Start des Samplings mglich ist, bzw. ob ein bereits begonnenes Sampling noch luft oder schon beendet ist.

Rckgabewerte:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!c> 1<!>Sampling luft schon/noch<!>
<!c> 0<!>alles in Ordnung, Start mglich bzw. Sampling beendet<!>
<!c>-1<!>keine Kanle in der Kanalliste <!>
<!c>-2<!>Anzahl Samples ist 0<!>
<!c>-3<!>Triggerschwelle nicht erlaubt<!>
<!c>-4<!>Speicher reicht nicht<!>
<!c>-5<!>Start war unmglich <!>
<!c>-6<!>ExacqDA Karte nicht aktiv<!>
<!c>-7<!>Samplefrequenz zu hoch fr einen Kanal<!>
<!c>-8<!>Samplefrequenz zu hoch fr zwei Kanle<!>
<!c>-9<!>Samplefrequenz zu niedrig<!>
<!ETBL>
>>
<<
128.136.3.3.2
ExacqDA.ADC.Sample.Setup|Setup
--
<!DEF>
procedure <!TW>ExacqDA.ADC.Sample.Setup (rFrequency, rSamples, rTrigger : real [; rLevel : real]);
<!TXT>
Legt die Eckdaten fr den Sampling-Vorgang fest.

 <!PW>rFrequency : Abtastrate in Hz (nicht Summenabtastrate!)
  Minimalwert 10000 Hz (10 kHz)
  Maximalwert fr einen Kanal : 25000000 Hz (25 MHz)
  Maximalwert fr zwei Kanle : 20000000 Hz (20 MHz)

 <!PW>rSamples : Anzahl Samples je Kanal
  Maximalwert 2.048.000 bzw. abhngig vom Speicher. Die Anzahl der Samples wird automatisch auf das nchste ganzzahlige Vielfache von 2048 aufgerundet. Dies ist aufgrund der internen Struktur der Karte notwendig.

 <!PW>rTrigger whlt die Art der Auslsung:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!c> 0<!>sofort bei ADC.Sample.Start (kein Trigger)<!>
<!c> 1<!>fallende Flanke auf dem gewhlten Trigger-Kanal<!>
<!c> 2<!>steigende Flanke auf dem gewhlten Trigger-Kanal<!>
<!ETBL>

 <!PW>rLevel legt den Triggerpegel fest. Bereich: -4V .. 4V.

Der Triggerkanal wird mit <!RW>ExacqDA.ADC.Trigger.SetChannel gewhlt.
>>
<<
128.136.3.3.3
ExacqDA.ADC.Sample.Start|Start
--
<!DEF>
procedure <!TW>ExacqDA.ADC.Sample.Start (rCurveSet : real);
<!TXT>
Startet den Sampling-Vorgang. 
Vorher mit <a href="128.136.3.3.1">ExacqDA.ADC.Sample.Check</a> prfen, ob alle Parameter fr das Sampling gltig sind. 

Das Sampling luft unabhngig vom Interpreter im Hintergrund. Mit <!RW>ExacqDA.ADC.Sample.Check kann geprft werden, ob das Sampling bereits beendet wurde.

 <!PW>rCurveSet gibt das Kurven-Set an, in das die aufgenommenen Kurven bertragen werden. Im Moment muss immer 1 angegeben werden.
>>

<<
128.136.3.3.4
ExacqDA.ADC.Sample.Stop|Stop
--
<!DEF>
procedure <!TW>ExacqDA.ADC.Sample.Stop;
<!TXT>
Bricht einen laufenden Samplingvorgang ab.

Dieser Befehl ist insbesondere dann ntig, wenn beim Samplen auf ein Triggerereignis gewartet wird, das nicht eintreffen kann.
>>

<<
128.136.3.4
ExacqDA.ADC.List|List
--
List - Verwaltet die Liste der beim Sampling bearbeiteten Kanle
>>
<<
128.136.3.4.1
ExacqDA.ADC.List.Clear|Clear
--
<!DEF>
procedure <!TW>ExacqDA.ADC.List.Clear;
<!TXT>
Lscht die Liste der beim Sampling bearbeiteten Kanle. Direkt nach diesem Befehl ist kein Sampling mglich, da kein Kanal ausgewhlt ist.
>>
<<
128.136.3.4.2
ExacqDA.ADC.List.Add|Add
--
<!DEF>
procedure <!TW>ExacqDA.ADC.List.Add (rChannel : real);
<!TXT>
Fgt den Kanal <!PW>rChannel (0..1) zur Liste der gesampelten Kanle hinzu.
Ist der Kanal bereits in der Liste vorhanden, so passiert nichts.
>>

<<
128.136.3.5
ExacqDA.ADC.Trigger.SetChannel|Trigger.SetChannel
--
<!DEF>
procedure <!TW>ExacqDA.ADC.Trigger.SetChannel (rChannel : real);
<!TXT>
 <!PW>rChannel whlt den Triggerkanal.

Zur Verfgung stehen:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!c> 0<!>Analog Kanal 0<!>
<!c> 1<!>Analog Kanal 1<!>
<!c> 2<!>Externer Trigger-Eingang<!>
<!ETBL>

Die hier getroffene Auswahl hat nur dann eine Auswirkung, wenn bei <!RW>ExacqDA.Sample.Start als Triggerart die fallende oder steigende Flanke ausgewhlt wurde.
>>

<<
128.136.6
ExacqDA.IsActive|IsActive
--
<!DEF>
function <!TW>ExacqDA.IsActive : real;
<!TXT>
Liefert <!RW>TRUE, wenn die ExacqDA-Karte freigegeben und betriebsbereit ist.
>>

<<
128.136.7
ExacqDA Kalibration|Kalibration
--
Fr jede Kombination aus Kanal, Messbereich und Eingangskopplung kann jeweils der Offset und die Verstrkung kalibriert werden.
>>

<<
128.136.7.1
ExacqDA Kalibration AD-Wandler|ADWs
!128.138
--
Fr die softwaremige Kalibration eines ADW-Kanals sind 2 Werte ntig:

<ul indent="15">
<li><b>Offset</b><br>
Wert den der (unkalibrierte) Wandler liefert, wenn seine Eingangsspannung 0V betrgt<br>
</li>
<li><b>Gain</b><br>
Verhltis des Wertes am Eingang des Wandlers zum (offsetkorrigierten) Ausgabewert des Wandlers
</li></ul>

Die Berechnung der Anzeigespannung eines AD-Wandlers erfolgt nach folgender Formel:
<!STBL>
<!>U<sub>Anzeige</sub> = (U<sub>ADW</sub> - <!RW>Offset) * <!RW>Gain<!>
<!ETBL>

Vorgehen fr die Kalibration:
<!STBL>
<!>1.<!>Kalibrationswerte zurcksetzen<!><!RW>Calibration.Set <tt>('ExacqDA', 'ADC.Offset.DC.0', rChannel, 0);</tt><br>^
                                         <!RW>Calibration.Set <tt>('ExacqDA', 'ADC.Gain.DC.0', &nbsp;&nbsp;rChannel, 1);</tt><!>
<!>2.<!>Exakt 0V einspeisen<!>&nbsp;<!>
<!>3.<!>Offsetwert des AD-Wandlers messen<!><tt>rOffset:=</tt><!RW>ExacqDA.ADC.Get<tt> (rChannel, 1024);</tt><!>
<!>4.<!>Gemessenen Wert als Offset eintragen<!><!RW>Calibration.Set <tt>('ExacqDA', 'ADC.Offset.DC.0', rChannel, rOffset);</tt><!>
<!>5.<!>Stabile Spannung nahe der Messbereichsgrenze einspeisen<!><tt>rSoll:=0.045;&nbsp;&nbsp;&nbsp;// Beispiel</tt><!> 
<!>6.<!>Wert des AD-Wandlers messen<!><tt>rMeas:=</tt><!RW>ExacqDA.ADC.Get<tt> (rChannel, 1024);</tt><!>
<!>7.<!>Gain setzen<!><!RW>Calibration.Set <tt>('ExacqDA', 'ADC.Gain.DC.0', &nbsp;&nbsp;rChannel, rSoll/rMeas);</tt><!>
<!ETBL> 

Die ValueNames fr die Befehle <!RW>Calibration.Set und <!RW>Calibration.Get haben folgenden Aufbau:
<!CODE>
<b>ADC</b>.&lt;<i>Type</i>&gt;.&lt;<i>Coupling</i>&gt;.&lt;<i>Range</i>&gt;
<!TXT>

&lt;<i>Type</i>&gt; kann sein: <b>OFFSET</b> oder <b>GAIN</b>,
&lt;<i>Coupling</i>&gt; kann sein <b>DC</b>, <b>AC</b> oder <b>TERM</b> und whlt die Art der Ankopplung des Eingangssignals
&lt;<i>Range</i>&gt; ist der Eingangsbereich
<!STBL>
<!+>Bereich<!+>Mess-Bereich<!+>
<!c>0<!> 50 mV<!>
<!c>1<!> 100 mV<!>    
<!c>2<!> 200 mV<!>    
<!c>3<!> 500 mV<!>
<!c>4<!> 1 V<!>
<!c>5<!> 2 V<!>
<!c>6<!> 5 V<!>
<!ETBL>
>>

