:Revision=1
:html
<<
128.187
ME-iDS - Objekt|ME-iDS
--
Das IP-Objekt ME-iDS erlaubt den Zugriff auf die ME-iDS - Multifunktions-IO-Karten der Firma Meilhaus.

Die einzelnen Hardwaremodule der Multifunktionskarte werden als Unterobjekte des ME-iDS - Objektes angesprochen.
>>

<<
128.187.1
MEIDS.DIn|DIn
--
Digitale Eingnge. 
>>
<<
128.187.1.1
MEIDS.DIN.Get|Get
--
<!DEF>
function <!TW>MEIDS.DIN.Get ( rCard, rPort : real ) : real;
<!TXT>
Liefert das Bitmuster an den digitalen Eingngen der ME-iDS Karte <!PW>rCard fr den Port <!PW>rPort.
>>

<<
128.187.1.2
MEIDS.DIn.Channels|Channels
--
<!DEF>
function <!TW>MEIDS.DIN.Channels;
<!TXT>
Liefert den Wert die Anzahl der DIN - Kanle.
>>

<<
128.187.2.3
MEIDS.DIn.Setup|Setup
--
<!DEF>
procedure <!TW>MEIDS.DIn.Setup ( rCard, rPort, rOutput, rMode : real);
<!TXT>
Setzt die Betriebsart fr die digitalen IO der ME-iDS Karte <!PW>rCard fr den Port <!PW>rPort.

 <!PW>rOutput
<!STBL>
<!+>Wert<!+>Bedeutung<!+>
<!+>False<!>Eingang<!>
<!+>True<!>Ausgang<!>    
<!ETBL>

 <!PW>rMode
<!STBL>
<!+>Wert<!+>Bedeutung<!+>
<!+>0<!>Sink<!>
<!+>1<!>Source<!>    
<!+>2<!>High<!>    
<!ETBL>
>>

<<
128.187.2
MEIDS.DOut|DOut
--
Digitale Ausgnge. 
>>

<<
128.187.2.1
MEIDS.DOUT.Get|Get
--
<!DEF>
function <!TW>MEIDS.DOUT.Get ( rCard, rPort : real ) : real;
<!TXT>
Liefert das Bitmuster an den digitalen Ausgngen der ME-iDS Karte <!PW>rCard fr den Port <!PW>rPort.
>>

<<
128.187.2.2
MEIDS.DOut.Bits|Bits
--
<!DEF>
procedure <!TW>MEIDS.DOUT.BITS ( rCard, rPort, rBitPattern : real [, rOperation : real] );
<!TXT>
Die in <!PW>rBitPattern angegebenen Bits werden wie in <!PW>rOperation angegeben mit den digitalen Ausgngen der ME-iDS Karte <!PW>rCard fr den Port <!PW>rPort verknpft.

 <!PW>rOperation kann sein : <!RW>CLR | <!RW>SET | <!RW>FLIP | <!RW>NOP oder 0..3
 
Wird <!PW>rOperation weggelassen, so wird das in <!PW>rBitPattern angegebene Bitmuster direkt gesetzt
>>

<<
128.187.2.3
MEIDS.DOut.Setup|Setup
--
<!DEF>
procedure <!TW>MEIDS.DOUT.Setup ( rCard, rPort, rOutput, rMode : real );
<!TXT>
Setzt die Betriebsart fr die digitalen IO der ME-iDS Karte <!PW>rCard fr den Port <!PW>rPort.

 <!PW>rOutput
<!STBL>
<!+>Wert<!+>Bedeutung<!+>
<!+>False<!>Eingang<!>
<!+>True<!>Ausgang<!>    
<!ETBL>

 <!PW>rMode
<!STBL>
<!+>Wert<!+>Bedeutung<!+>
<!+>0<!>Sink<!>
<!+>1<!>Source<!>    
<!+>2<!>High<!>    
<!ETBL>
>>

<<
128.187.2.4
MEIDS.DOut.Channels|Channels
--
<!DEF>
function <!TW>MEIDS.DOUT.Channels ( rCard : real );
<!TXT>
Liefert den Wert die Anzahl der DOut - Kanle der ME-iDS Karte <!PW>rCard.
>>

<<
128.187.3
MEIDS.ADC|ADC
--
Analoge Eingnge
>>

<<
128.187.3.1
MEIDS.ADC.Setup|Setup
--
<!DEF>
procedure <!TW>MEIDS.ADC.Setup ( rCard, rChannel, rRange, rSingleDiff : real );
<!TXT>
Legt den Messbereich und die Betriebsart des AD-Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard fest.

 <!PW>rRange :
<!STBL>
<!+>Nr.<!+>Bereich<!+>
<!+>0<!> 10 V<!>
<!+>1<!> 2.5 V<!>    
<!+>2<!>0..10 V<!>
<!+>3<!>0..2.5 V<!>
<!ETBL>

 <!PW>rSingleDiff:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!+><!RW>false<!>single-ended<!>
<!+><!RW>true<!>differentiell<!>
<!ETBL>
>>

<<
128.187.3.2
MEIDS.ADC.Get|Get
--
<!DEF>
function <!TW>MEIDS.ADC.Get ( rCard, rChannel : real [; rAverages : real] );
<!TXT>
Liefert den Wert den AD-Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard. 

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

<<
128.187.3.3
MEIDS.ADC.Sample|Sample
--
Sampling - Aufzeichnung von analogen Signalen
>>

<<
128.187.3.3.1
MEIDS.ADC.Sample.Check|Check
--
<!DEF>
function <!TW>MEIDS.ADC.Sample.Check ( rCard : real ) : real;
<!TXT>
Prft, ob mit den getroffenen Einstellungen (Kanle, Frequenz, Anzahl) der Start des Samplings fr die ME-iDS Karte <!PW>rCard 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<!>Samplefrequenz zu hoch<!>
<!c>-3<!>zu viele Kanle fr die Frequenz<!>
<!c>-4<!>Anzahl Samples ist 0<!>
<!c>-5<!>Speicher reicht nicht<!>
<!c>-6<!>Start war unmglich <!>
<!c>-7<!>MEIDS Karte nicht aktiv<!>
<!c>-8<!>Single-Ended und Differentielle Kanle wurden gemischt<!>
<!ETBL>
>>

<<
128.187.3.3.2
MEIDS.ADC.Sample.Setup|Setup
--
<!DEF>
procedure <!TW>MEIDS.ADC.Sample.Setup ( rCard, rFrequency, rSamples, rTrigger : real);
<!TXT>
Legt die Eckdaten fr den Sampling-Vorgang der ME-iDS Karte <!PW>rCard fest.

 <!PW>rFrequency : Abtastrate in Hz (nicht Summenabtastrate!)
  Maximalwert abhngig von Anzahl der Kanle         

 <!PW>rSamples : Anzahl Samples je Kanal
  Maximalwert 1.000.000 bzw. abhngig vom Speicher

 <!PW>rTrigger whlt die Art der Auslsung:
<!STBL>
<!+>Wert</b><!><b>Bedeutung</b><!>
<!c>0<!>intern, sofort bei <!RW>MEIDS.ADC.START/<!RW>SCAN<!>
<!c>1<!>analoger Triggereingang, steigende Flanke<!>
<!c>2<!>analoger Triggereingang, fallende Flanke<!>
<!c>3<!>analoger Triggereingang, jede Flanke<!>
<!c>4<!>digitaler Triggereingang, steigende Flanke<!>
<!c>5<!>digitaler Triggereingang, fallende Flanke<!>
<!c>6<!>digitaler Triggereingang, jede Flanke<!>
<!ETBL>
>>

<<
128.187.3.3.3
MEIDS.ADC.Sample.Start|Start
!128.187.3.3.4 - Scan
--
<!DEF>
procedure <!TW>MEIDS.ADC.Sample.Start ( rCard, rCurveSet : real);
<!TXT>
Startet den Sampling-Vorgang der ME-iDS Karte <!PW>rCard. 

Vorher mit <a href="128.187.3.3.1">MEIDS.ADC.Sample.Check</a> prfen, ob alle Parameter fr das Sampling gltig sind. 

Siehe auch <a href="128.187.3.3.4">MEIDS.ADC.Sample.Scan</a> - ein anderes Verfahren.

Das Sampling luft unabhngig vom Interpreter im Hintergrund. Mit <!RW>MEIDS.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.187.3.3.4
MEIDS.ADC.Sample.Scan|Scan
!128.187.3.3.3 - Start
--
<!DEF>
procedure <!TW>MEIDS.ADC.Sample.Scan ( rCard, rCurveSet : real);
<!TXT>
Startet den Sampling-Vorgang der ME-iDS Karte <!PW>rCard. 

Vorher mit <a href="128.187.3.3.1">MEIDS.ADC.Sample.Check</a> prfen, ob alle Parameter fr das Sampling gltig sind. 

 <!RW>MEIDS.ADC.Sample.Scan unterscheidet sich von <a href="128.187.3.3.3">MEIDS.ADC.Sample.Start</a> in der Art, wie die Scanzeit auf die einzelnen Kanle verteilt wird. Bei nur einem Kanal in der Kanalliste sind beide Verfahren identisch.

Eine Grafik soll dies verdeutlichen. Die X auf der Zeitachse geben den gewhlten Sampleabstand an. Bei Start werden alle gewhlten Kanle (hier 4) so schnell wie mglich hintereinander abgetastet - also mglichst zeitgleich. Dies erlaubt fr die Kanle 2-4 nur eine sehr kurze Einschwingzeit des Multiplexers. Bei Scan werden die Kanle mglichst gleichmig auf die Samplezeit verteilt. Hierdurch haben alle Kanle die gleiche Einschwingzeit, werden aber versetzt abgetastet.

<tt>
Zeit-> X---------------X---------------X-------------->
Start: 1234------------1234------------1234------------
Scan : 1---2---3---4---1---2---3---4---1---2---3---4---
</tt>            

Das Sampling luft unabhngig vom Interpreter im Hintergrund. Mit MEIDS.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.187.3.3.5
MEIDS.ADC.Sample.Stop|Stop
--
<!DEF>
procedure <!TW>MEIDS.ADC.Sample.Stop ( rCard : real );
<!TXT>
Bricht einen laufenden Sampling-Vorgang der ME-iDS Karte <!PW>rCard ab. 

Bereits aufgelaufene Werte werden an das Kurven-Set bertragen, noch nicht gemessenen Werte sind mit unbestimmten Daten gefllt. Das Kurven-Set daher mit Vorsicht oder am besten gar nicht verwenden.
>>

<<
128.187.3.4
MEIDS.ADC.List|List
--
List - Verwaltet die Liste der beim Sampling bearbeiteten Kanle
>>

<<
128.187.3.4.1
MEIDS.ADC.List.Clear|Clear
--
<!DEF>
procedure <!TW>MEIDS.ADC.List.Clear ( rCard : real );
<!TXT>
Lscht die Liste der beim Sampling bearbeiteten Kanle der ME-iDS Karte <!PW>rCard. Direkt nach diesem Befehl ist kein Sampling mglich, da kein Kanal ausgewhlt ist.
>>

<<
128.187.3.4.2
MEIDS.ADC.List.Add|Add
--
<!DEF>
procedure <!TW>MEIDS.ADC.List.Add ( rCard, rChannel : real );
<!TXT>
Fgt den Kanal <!PW>rChannel zur Liste der gesampelten Kanle der ME-iDS Karte <!PW>rCard hinzu.

Ist der Kanal bereits in der Liste vorhanden, so passiert nichts.

Bitte beachten:
Kanle mit der Betriebsart <!SW>Single-Ended drfen nicht mit Kanlen der Betriebsart <!SW>Differentiell in der Kanalliste gemischt werden.
>>

<<
128.187.3.5
MEIDS.ADC.Channels|Channels
--
<!DEF>
function <!TW>MEIDS.ADC.Channels ( rCard : real );
<!TXT>
Liefert den Wert die Anzahl der ADC - Kanle der ME-iDS Karte <!PW>rCard.
>>

<<
128.187.4
MEIDS.DAC|DAC
--
Analoge Ausgnge
>>

<<
128.187.4.1
MEIDS.DAC.Setup|Setup
--
<!DEF>
procedure <!TW>MEIDS.DAC.Setup ( rCard, rChannel, rRange : real );
<!TXT>
Legt den Ausgangsbereich fr <!PW>rChannel der ME-iDS Karte <!PW>rCard fest. Bisher werden folgenden Ausgangsbereiche abgebildet.

 <!PW>rRange
<!STBL>
<!+>Wert<!+>Bedeutung<!+>
<!+>0<!>10 V<!>
<!+>1<!>0..10 V<!>
<!+>2<!>0..20 mA<!>
<!ETBL>
>>

<<
128.187.4.2
MEIDS.DAC.Set|Set
--
<!DEF>
procedure <!TW>MEIDS.DAC.Set ( rCard, rChannel, rValue : real );
<!TXT>
Setzt den Ausgang des DA-Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard auf den Wert in <!PW>rValue.

Eine evtl. laufende Kurvenausgabe wird abgebrochen.
>>

<<
128.187.4.3
MEIDS.DAC.Curve|Curve
--
Verwaltet die Ausgabe zyklischer Signale auf DAC-Kanlen.

Dazu wird intern eine Kurve erzeugt und dann an den FIFO-Puffer eines DAC Kanals der ME-iDS - Karte zur Ausgabe bergeben.

Unabhngig von der laufenden Ausgabe auf einem Kanal kann die interne Kurvenform bereits weiter bearbeitet werden.

Beispiel:
<!CODE>
// Sweep mit einer Sinuskurve
MEIDS.DAC.Curve.Sin (0, 5, 0, 5000);   // Sinus fr 5kHz berechnen lassen
for rFreq:=100 to 5000 step 100 do begin
  MEIDS.DAC.Curve.Start (0, rFreq)
end;
<!TXT>
>>

<<
128.187.4.3.1
MEIDS.DAC.Curve.Clear|Clear
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Clear ( rCard, rChannel : real);
<!TXT>
Lscht den internen Kurvenspeicher des Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard, eine eventuell laufenden Ausgabe wird nicht beeinflusst.

Wird <!PW>rChannel mit -1 angegeben, werden die Kurvenspeicher aller Kanle gelscht.
>>

<<
128.187.4.3.2
MEIDS.DAC.Curve.Start|Start
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Start ( rCard, rChannel, rFrequency : real);
<!TXT>
Startet die Ausgabe der zuvor definierten Kurve auf dem Kanal <!PW>rChannel der ME-iDS Karte <!PW>rCard mit der Frequenz (Wiederholfrequenz der gesamten Kurve) <!PW>rFrequency Hz.

Eine eventuell laufenden Ausgabe muss zuvor nicht erst gestoppt werden.

Beispiel Ausgabe Sinus 150Hz, 4Vpp, 2.5Voffs:
(Bei Amplitude und Offset evtl. Verstrkung der Ausgangstreiber bercksichtigen)
<!CODE>
MEIDS.DAC.Curve.Sin (0, 2, 2.5, 150);
MEIDS.DAC.Curve.Start (0, 150);
<!TXT>
>>

<<
128.187.4.3.3
MEIDS.DAC.Curve.Stop|Stop
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Stop ( rCard, rChannel : real);
<!TXT>
Beendet die Ausgabe der Kurve auf dem Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard.

Wird <!PW>rChannel mit -1 angegeben, werden alle Kanle gestoppt.
>>

<<
128.187.4.3.4
MEIDS.DAC.Curve.Sin|Sin
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Sin ( rCard, rChannel, rAmp, rOffs : real [; rFreq : real]);
<!TXT>
Berechnet eine Sinusperiode im internen Kurvenspeicher des Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard.

Die Amplitude und der Offset werden von <!PW>rAmp und <!PW>rOffs festgelegt. Die Scheitelpunkte (Minima und Maxima) der Kurve liegen bei <!PW>rOffs+<!PW>rAmp bzw. <!PW>rOffs-<!PW>rAmp.

 <!PW>rFreq legt die Frequenz fest, fr die die Anzahl der Sttzstellen optimiert wird und sollte IMMER angegeben werden, da anderenfalls immer 4096 Sttzstellen berechnet werden und diese Kurve u.U. nicht exakt mit der gewnschten Frequenz ausgegeben werden kann.

Soll die Kurve als Sweep ausgegeben werden so sollte die hchste gewnschte Frequenz als <!PW>rFreq angegeben werden.
>>

<<
128.187.4.3.5
MEIDS.DAC.Curve.Sqr|Sqr
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Sqr ( rCard, rChannel, rAmp, rOffs, rDuty : real [; rFreq : real]);
<!TXT>
Berechnet eine Periode einer Rechteckkurve im internen Kurvenspeicher des Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard.

Die Amplitude und der Offset werden von <!PW>rAmp und <!PW>rOffs festgelegt. Die Scheitelpunkte (Minima und Maxima) der Kurve liegen bei <!PW>rOffs+<!PW>rAmp bzw. <!PW>rOffs-<!PW>rAmp.

 <!PW>rDuty (0..100) legt die Dauer der High-Phase fest (in Prozent der gesamten Periode). <!PW>rDuty=50 erzeugt ein symmetrisches Rechteck (+- eine Sttzstelle bei ungerader Sttzstellenanzahl)

 <!PW>rFreq legt die Frequenz fest, fr die die Anzahl der Sttzstellen optimiert wird und sollte IMMER angegeben werden, da anderenfalls immer 4096 Sttzstellen berechnet werden und diese Kurve u.U. nicht exakt mit der gewnschten Frequenz ausgegeben werden kann.

Soll die Kurve als Sweep ausgegeben werden so sollte die hchste gewnschte Frequenz als <!PW>rFreq angegeben werden.
>>

<<
128.187.4.3.6
MEIDS.DAC.Curve.Saw|Saw
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Saw ( rCard, rChannel, rAmp, rOffs, rRise : real [; rFreq : real]);
<!TXT>
Berechnet eine Periode einer Sgezahnkurve im internen Kurvenspeicher des Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard.

Die Amplitude und der Offset werden von <!PW>rAmp und <!PW>rOffs festgelegt. Die Scheitelpunkte (Minima und Maxima) der Kurve liegen bei <!PW>rOffs+<!PW>rAmp bzw. <!PW>rOffs-<!PW>rAmp.

 <NOBR><!PW>rRise (0..100) legt die Dauer der steigenden Flanke fest (in Prozent der gesamten Periode).</NOBR> 
 <NOBR><!PW>rRise=0 erzeugt einen reinen fallenden Sgezahn   </NOBR> 
 <NOBR><!PW>rRise=50 erzeugt ein symmetrisches Dreieck (+- eine Sttzstelle bei ungerader Sttzstellenanzahl)</NOBR> 
 <NOBR><!PW>rRise=100 erzeugt einen reinen steigenden Sgezahn</NOBR> 

 <!PW>rFreq legt die Frequenz fest, fr die die Anzahl der Sttzstellen optimiert wird und sollte IMMER angegeben werden, da anderenfalls immer 4096 Sttzstellen berechnet werden und diese Kurve u.U. nicht exakt mit der gewnschten Frequenz ausgegeben werden kann.

Soll die Kurve als Sweep ausgegeben werden so sollte die hchste gewnschte Frequenz als <!PW>rFreq angegeben werden.
>>

<<
128.187.4.3.7
MEIDS.DAC.Curve.Add|Add
--
<!DEF>
procedure <!TW>MEIDS.DAC.Curve.Add ( rCard, rChannel, rAmp : real);
<!TXT>
Fgt zu der Kurve im internen Puffer des Kanals <!PW>rChannel der ME-iDS Karte <!PW>rCard einen Sttzpunkt hinzu. 

 <!PW>rAmp legt die Amplitude an dieser Sttzstelle fest (-10..10 V).
Werden mehr Punkte hinzugefgt, als der FIFO aufnehmen kann werden die Punkte ignoriert.

Mit <!RW>MEIDS.DAC.Curve.Clear und <!RW>MEIDS.DAC.Curve.Add lassen sich arbitrre Kurvenformen erzeugen.
>>

<<
128.187.6
MEIDS.IsActive|IsActive
--
<!DEF>
function <!TW>MEIDS.IsActive ( rCard : real ) : real;
<!TXT>
Liefert <!RW>TRUE, wenn die ME-iDS Karte <!PW>rCard freigegeben und betriebsbereit ist.
>>

<<
128.187.7
MEIDS.Error|Error
--
<!DEF>
function <!TW>MEIDS.Error ( rCard : real ) : string;
<!TXT>
Liefert einen eventuell anstehenden Fehler der ME-iDS Karte <!PW>rCard und lscht den Fehlerspeicher.
>>
