:Revision=1
:html

<<
128.183
CalibrationAdapter-Objekt|CalibrationAdapter
$NoSort
--
Das IP-Objekt <!RW>CalibrationAdapter dient dem Zugriff auf Kalibrationswerte, welche in einer externen Kalibrationsdatei abgelegt sind. Die Bearbeitung der Werte erfolgt ber den Monitor zur Adapterkalibration. Die Konfiguration, welche Kalibrationsdatei verwendet werden soll, erfolgt in den Grundeinstellungen zur Adapterkalibration.

Der Zugriff auf die Kalibrationsdaten erfolgt ber einen eindeutigen Schlssel, welcher sich aus mehreren Bestandteilen zusammensetzen kann (z.B.: Computername, Messsystems, Adapter, Nadelbett, Typcode, ...). Welche Schlsselelemente verwendet werden, wird in der Kalibrationsdatei festgelegt. Die Verwendung des Computernamens als erstes Schlsselelement ist zwingend vorgegeben. Alle weiteren Schlsselelemente sind frei definierbar.

Beim Zugriff auf die Kalibrationswerte ber den Interpreter, wird der Computername automatisch als erstes Schlsselelement verwendet und braucht (bzw. darf) nicht mit bergeben werden. Dies bedeutet, dass im Interpreter immer nur die Kalibrationswerte fr den "eigenen" Computer geladen und benutzt werden knnen.

Im Toolmonitor knnen auch die Werte andere Computer bearbeitet werden, sofern diese in der selben Kalibrationsdatei abgelegt sind.

Zu beachten ist, dass die in der Kalibrationsdatei eingetragene Anzahl an Schlsselelemente sowie deren Bedeutung nicht mehr gendert werden drfen, sobald die ersten Kalibrationswerte angelegt wurden. Wird die Kalibrationdatei auf einem Server zentral abgelegt und durch mehrere Computer gemeinsam benutzt, dann gelten die eingestellten Schlsselelemente fr alle Computer gleichermaen. Es wird daher empfohlen, fr jeden Computer eine eigene Kalibrationsdatei zu verwenden.

Im Falle eines Problems beim Zugriff auf die Kalibrationsdaten (z.B.: Datei durch anderen Prozess gesperrt, Datei nicht vorhanden, Netzwerkverbindung gestrt usw.) wird 5 Sekunden lang versucht, den entsprechenden Vorgang zu wiederholen. Whrend dieser Zeit, ist die Applikation blockiert. Gelingt auch der wiederholte Zugriff nicht, erfolgt eine Fehlermeldung und der Prfablauf wird angehalten.

<h4>Namenskonventionen</h4>

<!STBL>
<!+>Element<!+>Zulssige Zeichen<!>
<!>Schlsselelemente<!>a..z | A..Z | 0..9 | ' ' | _ | - | .<!>
<!>Namen<!>a..z | A..Z | 0..9 | ' ' | _ | - <!>
<!>Werte<!>a..z | A..Z | 0..9 | ' ' | _ | - | . | , <!>
<!ETBL>

<h4>Interpretersyntax</h4>

<!CODE>
var
  vvKey           : StringVector;
  vsSerialNumber  : String;
  vrNF            : Real;

step

  // Alle aktuell geladenen Werten lschen
  CalibrationAdapter.Clear;

  // StringVector mit Schlsselwerten fllen
  vvKey := [];
  vvKey := vvKey + ['Messsystem 1'];
  vvKey := vvKey + ['Adapter A'   ];
  vvKey := vvKey + ['Nadelbett I' ];
  vvKey := vvKey + ['01234'       ];
  vvKey := vvKey + ['Alpha'       ];

  // Schlssel auf Vorhandensein prfen
  if not CalibrationAdapter.CheckKey ( vvKey ) then begin
    CalibrationAdapter.Clear;
    Screen.Dialog (4, 'Error', 'Schlssel nicht vorhanden');
    Exit;
  end;

  // Schlssel an CalibrationAdapter - Objekt bergeben
  CalibrationAdapter.SetKey ( vvKey );

  // Name und Wert auf Vorhandensein und Status prfen
  if not CalibrationAdapter.Exists ( 'NF' ) then begin
    Screen.Dialog (4, 'Error', 'Kalibrationswert nicht vorhanden oder ungltig!');
    Exit;
  end;

  // Numerischen Wert auslesen
  vrNF := CalibrationAdapter.GetRealValue ( 'NF');
  Debug.Show ( 0, vrNF );

  // String auslesen
  vsSerialNumber := CalibrationAdapter.GetStringValue ( 'AdapterSerialNumber' );
  Debug.Show ( 0, vsSerialNumber );

  SetValue ( 0 );

end.
<!TXT>

<h4>Aufbau der Kalibrationsdatei</h4>

<!CODE>
[KEY]
Count = 6
Name0 = Computer Name
Name1 = System
Name2 = Adapter
Name3 = Nadelbett
Name4 = Typ
Name5 = EC Variante

[PC_Test%Messsystem 1%Adapter A%Nadelbett I%01234%Alpha]
Count=2
Name0=NF
Value0=1
Name1=AdapterSerialNumber
Value1=1-2-3

[PC_Test%Messsystem 1%Adapter A%Nadelbett I%01234%Beta]
Count=2
Name0=NF
Value0=2
Name1=AdapterSerialNumber
Value1=4-5-6
>>

<<
128.183.1
Funktionen des CalibrationAdapter-Objekts|Funktionen
--
>>

<<
128.183.1.1
CalibrationAdapter.GetRealValue|GetRealValue
!128.183
--
<!DEF>
function <!TW>CalibrationAdapter.GetRealValue ( vsName : string ) : real;
<!TXT>
Liefert den zugehrigen Wert zu einen in <!PW>vsName angegebenen Namen als numerischen Wert.

Ist der in <!PW>vsName angegebenen Name in der Kalibrationsdatei nicht oder mehrfach vorhanden, ist der zugehrige Wert leer oder nicht numerisch, wird ein Parameterfehler ausgelst und der Prfablauf angehalten. Ein leerer Name ist nicht zulssig.

Beispiel
<!CODE>
var
  vrValue : Real;

step

  vrValue := CalibrationAdapter.GetRealValue ( 'NF' );

  ...

end.
>>

<<
128.183.1.2
CalibrationAdapter.GetStringValue|GetStringValue
!128.183
--
<!DEF>
function <!TW>CalibrationAdapter.GetStringlValue ( vsName : string ) : string;
<!TXT>
Liefert den zugehrigen Wert zu einen in <!PW>vsName angegebenen Namen  als String.

Ist der in <!PW>vsName angegebenen Name in der Kalibrationsdatei nicht oder mehrfach vorhanden oder ist der zugehrige Wert leer, wird ein Parameterfehler ausgelst und der Prfablauf angehalten. Ein leerer Name ist nicht zulssig.

Beispiel
<!CODE>
var
  vsValue : String;

step

  vsValue := CalibrationAdapter.GetStringValue ( 'SerialNumber' );

  ...

end.
>>

<<
128.183.1.3
CalibrationAdapter.Exists|Exists
!128.183
--
<!DEF>
function <!TW>CalibrationAdapter.Exists ( vsName : string ) : real;
<!TXT>
Ermittelt, ob der in <!PW>vsName angegebenen Wert vorhanden ist und welchen Status er besitzt.

<h4>Status/Rckgabewerte</h4>

<!STBL>
<!+>Wert<!+>Bedeutung<!>
<!>0<!>Wert nicht vorhanden<!>
<!>1<!>Wert stellt eine Zeichenkette (String) dar<!>
<!>2<!>Wert kann als numerische Zahl interpretiert werden<!>
<!ETBL>


Beispiel
<!CODE>
step

  if not CalibrationAdapter.Exists ( 'HF' ) then begin
    Screen.Dialog (4, 'Error', 'Kalibrationswert nicht vorhanden oder ungltig!');
  end;

end.
>>

<<
128.183.1.4
CalibrationAdapter.CheckKey|CheckKey
!128.183
--
<!DEF>
function <!TW>CalibrationAdapter.CheckKey ( vvKey : stringvector ) : real;
<!TXT>
Ermittelt, ob der in <!PW>vvKey angegebenen Schlssel vorhanden ist. Der Computername wird automatisch als erstes Schlsselelement verwendet und braucht (bzw. darf) nicht mit bergeben werden.

Beispiel
<!CODE>
var
  vvKey           : StringVector;

step

  // StringVector mit Schlsselwerten fllen
  vvKey := [];
  vvKey := vvKey + ['Messsystem 1'];
  vvKey := vvKey + ['Adapter A'   ];
  vvKey := vvKey + ['Nadelbett I' ];
  vvKey := vvKey + ['01234'       ];
  vvKey := vvKey + ['Alpha'       ];

  // Schlssel auf Vorhandensein prfen
  if not CalibrationAdapter.CheckKey ( vvKey ) then begin
    CalibrationAdapter.Clear;
    Screen.Dialog (4, 'Error', 'Schlssel nicht vorhanden');
    Exit;
  end;

end.
>>

<<
128.183.2
Prozeduren des CalibrationAdapter-Objekts|Prozeduren
--
>>

<<
128.183.2.1
CalibrationAdapter.SetKey|SetKey
!128.183
--
<!DEF>
procedure <!TW>CalibrationAdapter.SetKey ( vvKey : stringvector );
<!TXT>
Setzt den Schlssel fr den Zugriff auf die Kalibrationsdaten. Die einzelnen Schlsselelemente werden als Elemente von <!PW>vvKey bergeben. Der Computername wird automatisch als erstes Schlsselelement verwendet und braucht (bzw. darf) nicht mit bergeben werden.

Beispiel
<!CODE>
var
  vvKey           : StringVector;

step

  vvKey := [];
  vvKey := vvKey + ['Messsystem 1'];
  vvKey := vvKey + ['Adapter A'   ];
  vvKey := vvKey + ['Nadelbett I' ];
  vvKey := vvKey + ['01234'       ];
  vvKey := vvKey + ['Alpha'       ];

  CalibrationAdapter.SetKey ( vvKey );

  ...

end.
>>

<<
128.183.2.2
CalibrationAdapter.Clear|Clear
!128.183
--
<!DEF>
procedure <!TW>CalibrationAdapter.Clear;
<!TXT>
Lscht alle aktuell geladenen Werte.

Beispiel
<!CODE>
step

  CalibrationAdapter.Clear;

  ...

end.
>>
