Hi Domi
nur kurz zur Ergänzung, falls später einmal jemand den Beitrag liest:
Zitat:*RST
CONF:TEMP TC,K,(@<Kanalnummer>)
ROUT:SCAN (@<Kanalnummer>)
FORM:READ:TIME ON
FORM:READ:TIME:TYPE (ABS|REL)
INIT
{
READ?
}
ABOR
vom Ansatz ist schon gut, nur ist der Abort Befehl eigentlich sinnlos, da nach dem Reset (*RST) der Scan Count auf "1" steht und die Scanliste nur einmal abgearbeitet wird.
Ein weiterer Stolperstein verbirgt sich hinter dem "Read?" Befehl. Du startest deine Messung mit INIT und startest danach nochmal die Messung und bekommst durch das Read? auch die Daten nach Abschluss der Messung (somit werden zwei Messungen gestartet). Das Problem entsteht dadurch, dass die aufgenommenen Daten der ersten Messung (gestartet durch den INIT Behl) später nicht mehr ausgegeben werden, da das Read? eine neue Messung startet und die alte Messung überschreibt (der Zeiger im Speicherregister wandert an eine neue Stelle). Eine Messung geht dir somit verloren und deine Messzeit vordoppelt sich somit.
Kurzfassung: Read? = Init + Fetch?
Mein Vorschlag daher:
*RST
CONF:TEMP TC,K,(@<Kanalnummer>)
ROUT:SCAN (@<Kanalnummer>)
FORM:READ:TIME ON
FORM:READ:TIME:TYPE (ABS|REL)
loop{
READ?
}(break)
oder für eine kontinuierliche Messung:
*RST
CONF:TEMP TC,K,(@<Kanalnummer>)
ROUT:SCAN (@<Kanalnummer>)
FORM:READ:TIME ON
FORM:READ:TIME:TYPE (ABS|REL)
Trig:coun inf // scan count auf continuous bzw infinity
init // start der nie endenden Messung
loop{
//kurze Wartezeit, da ein ständiges Polling nicht sehr sinnvoll ist
x=data:poin? // x ist vorbei nur ein variable und gibt die bereits aufgezeichneten Datenpunkte im Speicher zurück
R? x
}(ABOR) // die Messung wird erst am Gerät mit dem abort Befehl beendet (einmal danach noch die restlichen Daten auslesen) .
Ich hoffe das hilft dir ein wenig weiter (immerhin hast du somit deine Messzeit halbiert)
Gruß SH