Program TestTime; Const ADDR_5385A=2 ; ADDR_34401=6 ; interval=1; // progress each X seconds accuracy=0.1; // testvalue for accuracy or time interval filename='S:\TEMP2FREQ\TEMP2FREQ_record.csv'; Var Answer:String; Frequency:Double; Temperature:Double; currenttime:TDateTime; oldtime:TDateTime; deltat:Double; deltatinseconds:Double; firstloop:Boolean; Procedure printTime; Begin EZGPIB_ScreenWrite('EZGPIB_TimeNow:'); EZGPIB_ScreenWrite(currenttime); EZGPIB_ScreenWrite(' OldTime:'); EZGPIB_ScreenWrite(oldtime); EZGPIB_ScreenWrite(' DeltaT:'); EZGPIB_ScreenWrite(deltat); EZGPIB_ScreenWrite(' DeltaT in Seconds:'); EZGPIB_ScreenWriteLn(deltatinseconds); End; function getFrequency:Double; Begin EZGPIB_BusWriteData(ADDR_5385A,'RE'); if EZGPIB_BusWaitForData(ADDR_5385A,Answer,5) then Begin EZGPIB_ConvertRemove('F',Answer); Result:=StrToFloat(Answer); End else EZGPIB_ScreenWriteLN('34401 TimeOUT !'); End; function getTemperature:Double; Begin EZGPIB_BusWriteData(ADDR_34401,'MEAS:VOLT:DC?'); if EZGPIB_BusWaitForData(ADDR_34401,Answer,5) then Result:=StrToFloat(Answer)*100-50 else EZGPIB_ScreenWriteLN('5385A TimeOUT !'); End; procedure Measurements; Begin Frequency:=getFrequency; Temperature:=getTemperature; EZGPIB_ScreenWrite(currenttime); EZGPIB_ScreenWrite(','); EZGPIB_ScreenWrite(Frequency); EZGPIB_ScreenWrite(','); EZGPIB_ScreenWriteLn(Temperature); EZGPIB_fileaddtobuffer(currenttime); EZGPIB_fileaddtobuffer(','); EZGPIB_fileaddtobuffer(Frequency); EZGPIB_fileaddtobuffer(','); EZGPIB_fileaddtobuffer(Temperature); EZGPIB_filewrite(filename); EZGPIB_fileclearbuffer; End; Begin EZGPIB_ScreenClear; EZGPIB_ScreenWriteLn('FREQUENCY VS TEMPERATURE data record by EB4EQA'); EZGPIB_fileaddtobuffer('FREQUENCY VS TEMPERATURE data record by EB4EQA'); EZGPIB_filewrite(filename); EZGPIB_fileclearbuffer; EZGPIB_BusWriteData(ADDR_5385A,'IN'); EZGPIB_BusWriteData(ADDR_5385A,'FU3'); EZGPIB_BusWriteData(ADDR_5385A,'GA2'); EZGPIB_timeWaitformultipleof(0); EZGPIB_ScreenWrite('Start at '); EZGPIB_ScreenWriteLn(EZGPIB_TimeNow); EZGPIB_ScreenWriteLn('Time,Frequency,Temperature'); EZGPIB_fileaddtobuffer('Start at '); EZGPIB_fileaddtobuffer('EZGPIB_TimeNow'); EZGPIB_filewrite(filename); EZGPIB_fileclearbuffer; EZGPIB_fileaddtobuffer('Time,Frequency,Temperature'); EZGPIB_filewrite(filename); EZGPIB_fileclearbuffer; FirstLoop:=True; repeat EZGPIB_timeWaitformultipleof(interval); currenttime:=EZGPIB_TimeNow; deltat:=currenttime-oldtime; deltatinseconds:=deltat*86400.0; if FirstLoop=False then // If Firstloop=True then oldtime has not been set yet begin; if (deltatinseconds>(interval+accuracy)) or (deltatinseconds<(interval-accuracy)) then //printtime; end; oldtime:=currenttime; FirstLoop:=False; Measurements; until EZGPIB_KbdKeypressed; EZGPIB_ScreenWrite('Done at '); EZGPIB_ScreenWriteLn(EZGPIB_TimeNow); End.