Hallo,
ich möchte aus einem Messgeät Messwerte aus einem Dac heraus auslesen. Dazu nutze ich den Scrip-Dac Treiber und lese 4 Kanäle über GPIB aus (Diadem 10.0).
Ich nutze die Funktion SFD_Init( DeviceParam1V, DeviceParam2V, ErrorP) zum initialisieren und zum anfordern der Messwerte (man schreibt welche werte man auslesen möchte und mit "cont on" werden die Werte dann zyklisch nach jedem Messzyklus ausgegeben).
Mit der Funktion SFD_GetScan wird dann mittels read-Befehl der Wert aus der Schnittstelle ausgelesen.
Es kommt folgender String zurück: 2.31174E+2;5.00093E+1;2.59054E-1;4.36872E-1 => Es sind vier Werte je durch ; getrennt
Nun wird mit der Funktion SFD_ReadChannel ( ChannelNumberP, ParamP, DataP, ErrorP ) der Wert wie folgt aufgesplittet und je nach Wert von ParamP der richtige Wert zurückgegeben.
MVariablenDF = Split(sDaten, ";", -1, 1) 'String aufsplitten, jeweils am ";"
uac = oUDIM.Parse(MVariablenDF(0), "%ad")
freq = oUDIM.Parse(MVariablenDF(1), "%ad")
p = oUDIM.Parse(MVariablenDF(2), "%ad")
ep = oUDIM.Parse(MVariablenDF(3), "%ad")
Select case ParamP
Case "UAC" DataP = uac
Case "FREQ" DataP = freq
Case "P" DataP = p
Case "EP" DataP = ep
end Select
Nun mein 1.Problem:
Hin und wieder kommt kurz nach dem Start der Messung folgende Fehlermeldung zu obiger Zeile "MVariablenDF = Split(sDaten, ";", -1, 1)"
Fehler: Index ausserhalb des gültigen Bereichs: '[number: 1]'
2. Problem:
als erstes wird in dem Script eine Windows Umgebungsvariable abgefragt:
T1 = GetEnv("Diadem")
Wenn diese Zeile im Script ist, bekomme ich zu Beginn die Fehlermeldung Typen unverträglich: 'GetEnv', das Script läuft aber trotzdem hin und wieder fehlerfrei.
Nehme ich diese Zeile raus, bekomme ich sofort zu dem 1. Problem die Fehlermeldung: Typen unverträglich und es werden keine Werte ausgelesen.