! Instrument Driver for the HP 34420A Nano Volt/Micro Ohm Meter ! Rev. A.01.00 ! Copyright (C) Hewlett-Packard Co. 1995. All rights reserved. REVISION 2.0; ! INITIALIZE START_UP; RECALL COMPONENT DETECT_RECALL; SYNC COMPONENT Sync; ! COMPONENT DETECT_RECALL NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; SET ACTIONS; GOSUB NO_SHOW; FETCH EXECUTE; FETCH 2; GE; IF STACK THEN; GOSUB HALTER; END IF; FETCH 0; DUP; STORE EXECUTE; STORE MEAS_READY; IF DCV_AUTO1 THEN; INVALIDATE DCV_RANGE1; END IF; IF DCV_AUTO2 THEN; INVALIDATE DCV_RANGE2; END IF; IF RES_AUTO THEN; INVALIDATE RES_RANGE; END IF; IF DELAY_AUTO THEN; INVALIDATE DELAY; END IF; IF OPC_MODE THEN; INVALIDATE OPC_MODE; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Choices NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES SET_UP,TRIGGER,MATH,NULL,Chart,OTHER,CAL,STATUS_INST,ERRORS,ABOUT_ID; INITIAL SET_UP; PANEL SET ACTIONS MENU; END COMPONENT; ! COMPONENT STRING_STACK NOTSAVED NOGEN NOERRCHECK; TYPE STRING 35; END COMPONENT; ! COMPONENT DISPLAY_WIDTH NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 205; END COMPONENT; ! COMPONENT DISPLAY_START NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 0.95; END COMPONENT; ! COMPONENT NUMBER_POINTS NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; PANEL SET ACTIONS; FETCH NUMBER_POINTS; FETCH 0.02; MUL; DUP; FETCH 0.495; GT; IF STACK THEN; DROP; FETCH 0.495; END IF; DUP; FETCH NUMBER_POINTS; ADD; STORE DISPLAY_WIDTH; FETCH 1; SWAP; SUB; STORE DISPLAY_START; END ACTIONS; END COMPONENT; ! COMPONENT G_GRID NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES NONE,AXES,GRID,FRAME; INITIAL AXES; END COMPONENT; ! COMPONENT X_MAJOR NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 2; END COMPONENT; ! COMPONENT X_TIC NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 10; END COMPONENT; ! COMPONENT Serial_Poll NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; FETCH ADDR; FETCH 100; GE; IF STACK THEN; SPOLL; STORE Serial_Poll; ELSE; INVALIDATE Serial_Poll; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Self_Test NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*TST?"; FLUSH; IF LIVEMODE THEN; SELECT ADDR; CASE RANGE 1,99; SELECT TIMEOUT; CASE RANGE 0.001,19.99; FETCH 20; STORE TIMEOUT; CASE ELSE; END SELECT; CASE ELSE; FETCH 20; LOOP; DUP; FETCH 0; LT; SPOLL; FETCH 4; BIT; OR; EXIT IF STACK; WAIT TIME .25; FETCH .25; SUB; END LOOP; DROP; END SELECT; ELSE; WAIT TIME 1; END IF; GOSUB Enter_Default; VALIDATE Self_Test; END ACTIONS; END COMPONENT; ! COMPONENT Status_Byte NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*STB?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT OPC NOTSAVED; TYPE INTEGER; SET ACTIONS; OUTPUT STRING "*OPC"; END ACTIONS; END COMPONENT; ! COMPONENT WAI NOTSAVED; TYPE INTEGER; SET ACTIONS; OUTPUT STRING "*WAI"; END ACTIONS; END COMPONENT; ! COMPONENT Clear_Status NOTSAVED; TYPE INTEGER; COUPLED Serial_Poll, Status_Byte, Standard_Event, ERR_STRING, ERROR; SET ACTIONS; OUTPUT STRING "*CLS"; GOSUB OPC; END ACTIONS; END COMPONENT; ! COMPONENT Status_Enable; TYPE INTEGER; VALUES RANGE 0, 255; INITIAL INVALID; COUPLED Status_Enable; SET ACTIONS; OUTPUT Status_Enable FORMAT '"*SRE ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; END ACTIONS; GET ACTIONS; OUTPUT STRING "*SRE?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Standard_Event NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*ESR?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Event_Enable; TYPE INTEGER; VALUES RANGE 0, 255; INITIAL INVALID; SET ACTIONS; OUTPUT Event_Enable FORMAT '"*ESE ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; END ACTIONS; GET ACTIONS; OUTPUT STRING "*ESE?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Operate_Event NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "STAT:OPER?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Oper_Enable; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL INVALID; SET ACTIONS; OUTPUT Oper_Enable FORMAT '"STAT:OPER:ENAB ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Operate_Event; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:OPER:ENAB?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Oper_PTR; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL 32767; SET ACTIONS; OUTPUT DEFAULT FORMAT '"STAT:OPER:PTR ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Operate_Event; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:OPER:PTR?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Oper_NTR; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL 0; SET ACTIONS; OUTPUT DEFAULT FORMAT '"STAT:OPER:NTR ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Operate_Event; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:OPER:NTR?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Oper_Cond NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "STAT:OPER:COND?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Questionable_Event NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "STAT:QUES?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Questionable_Enable; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL INVALID; SET ACTIONS; OUTPUT Questionable_Enable FORMAT '"STAT:QUES:ENAB ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; INVALIDATE Questionable_Event; INVALIDATE Questionable_Cond; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:QUES:ENABLE?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Questionable_PTR; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL 32767; SET ACTIONS; OUTPUT DEFAULT FORMAT '"STAT:QUES:PTR ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; INVALIDATE Questionable_Event; INVALIDATE Questionable_Cond; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:QUES:PTR?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Questionable_NTR; TYPE INTEGER; VALUES RANGE 0, 32767; INITIAL 0; SET ACTIONS; OUTPUT DEFAULT FORMAT '"STAT:QUES:NTR ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; INVALIDATE Questionable_Event; INVALIDATE Questionable_Cond; END ACTIONS; GET ACTIONS; OUTPUT STRING "STAT:QUES:NTR?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Questionable_Cond NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "STAT:QUES:COND?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT PSC NOPOKEINITIAL; TYPE INTEGER; VALUES RANGE 0,1; INITIAL INVALID; SET ACTIONS; OUTPUT PSC FORMAT '"*PSC ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "*PSC?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Preset_Status NOTSAVED; TYPE INTEGER; SET ACTIONS; OUTPUT STRING "STAT:PRES"; GOSUB OPC; FETCH 0; STORE Questionable_Enable; FETCH 32767; STORE Questionable_PTR; FETCH 0; STORE Questionable_NTR; FETCH 0; STORE Oper_Enable; FETCH 32767; STORE Oper_PTR; FETCH 0; STORE Oper_NTR; END ACTIONS; END COMPONENT; ! COMPONENT Beep NOTSAVED; TYPE INTEGER; SET ACTIONS; OUTPUT STRING "SYST:BEEP"; GOSUB OPC; END ACTIONS; END COMPONENT; ! COMPONENT BeepState NOPOKEINITIAL; TYPE DISCRETE; VALUES OFF,ON; SET ACTIONS; OUTPUT STRING "SYST:BEEP:STAT "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "SYST:BEEP:STAT?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Temperature NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "DIAG:TEMP?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Display_State; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; OUTPUT STRING "DISP "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; INVALIDATE Display_Message; END ACTIONS; GET ACTIONS; OUTPUT STRING "DISP?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Display_Message NOTSAVED; TYPE STRING 21; INITIAL ""; SET ACTIONS; OUTPUT STRING 'DISP:TEXT "'; OUTPUT DEFAULT FORMAT 'K'; OUTPUT STRING '"'; GOSUB OPC; FETCH 1; STORE Display_State; END ACTIONS; END COMPONENT; ! COMPONENT FLAG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; INITIAL 0; END COMPONENT; COMPONENT OLD_SHOW_DATA CLONE FLAG; COMPONENT SKIP_CHECK CLONE FLAG; COMPONENT SHOW_DATA CLONE FLAG; COMPONENT ALL_IS_WELL CLONE FLAG; COMPONENT WASLIVE CLONE FLAG; ! COMPONENT CONNECT_DATA NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; END COMPONENT; ! COMPONENT ERR_STRING NOTSAVED NOERRCHECK; TYPE STRING 80; INITIAL INVALID; GET ACTIONS; END ACTIONS; END COMPONENT; ! ACTIONS ACT_ERR; OUTPUT STRING "SYST:ERR?"; GOSUB Wait_Query; ENTER ERROR FORMAT '#,K'; ENTER ERR_STRING FORMAT 'K'; IF LIVEMODE THEN; ELSE; FETCH STRING "No error (Not Live Mode)"; STORE ERR_STRING; FETCH 0; STORE ERROR; END IF; GOSUB Post_Enter_Wait; END ACTIONS; ! COMPONENT ERROR NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL INVALID; GET ACTIONS ACT_ERR; END COMPONENT; ERROR COMPONENT ERROR; ! COMPONENT MAX_SIZE NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; INITIAL 2048; ! If this is changed also change READINGS END COMPONENT; ! COMPONENT TERM; TYPE DISCRETE; VALUES FRONT1,FRONT2; INITIAL FRONT1; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "ROUT:TERM FRONT"; OUTPUT DEFAULT TABLE "1","2"; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; GOSUB VIEW_HEIGHT; GOSUB MENU; END ACTIONS; GET ACTIONS; OUTPUT STRING "ROUT:TERM?"; GOSUB Enter_String; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "2"; POS; NOT; NOT; STORE TERM; END IF; END ACTIONS; PANEL GET ACTIONS; GOSUB VIEW_HEIGHT; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT EXECUTE NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; INITIAL 0; PANEL SET ACTIONS; FETCH 1; STORE EXECUTE; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT READ_MIN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH READING; FETCH MAX_VIEW; LT; FETCH SHOW_DATA; AND; IF STACK THEN; FETCH READING; STORE MIN_VIEW; SET MIN_VIEW; END IF; END ACTIONS; END COMPONENT; ! COMPONENT READ_MAX NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH READING; FETCH MIN_VIEW; GT; FETCH SHOW_DATA; AND; IF STACK THEN; FETCH READING; STORE MAX_VIEW; SET MAX_VIEW; END IF; END ACTIONS; END COMPONENT; ! COMPONENT RESET NOTSAVED; TYPE INTEGER; SET ACTIONS; GOSUB PRE_ENABLE; IF Edit_Coef THEN; GET User_Coef_C7; HIDE CHANGE_COEFS; END IF; POKEINITIAL; GOSUB ALL_RESET; END ACTIONS; END COMPONENT; ! COMPONENT DMARK NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 20; END COMPONENT; ! COMPONENT VIEW_TRIG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; VALUES RANGE 1,TRIG_COUNT; INITIAL 1; PANEL SET ACTIONS EXTRACT; END COMPONENT; ! COMPONENT VIEW_RDNG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; VALUES RANGE 1, SAMP_COUNT; INITIAL 1; PANEL SET ACTIONS EXTRACT; END COMPONENT; ! COMPONENT START_SINGLE NOTSAVED NOERRCHECK; TYPE INTEGER; SET ACTIONS MEAS_ACT; END COMPONENT; ! COMPONENT READING NOTSAVED NOGEN; TYPE CONTINUOUS; INITIAL 0,INVALID; GET ACTIONS; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; GOSUB AUP_RDNG; SKIP ERRCHECK; ELSE; FETCH EXECUTE; FETCH 1; LE; IF STACK THEN; GOSUB MEAS_ACT; FETCH ENTRY_MODE; FETCH 2; NE; IF STACK THEN; IF ALL_IS_WELL THEN; GOSUB Enter_Default; GOSUB SHOW_READ; CODEGEN GET READING; END IF; ELSE; DISABLE Choices Chart,OTHER,CAL; CODEGEN PUSH START_SINGLE; SKIP ERRCHECK; END IF; ELSE; ENABLE Choices Chart,OTHER,CAL; FETCH 1; STORE EXECUTE; OUTPUT STRING "FETC?"; GOSUB Enter_Default; GOSUB SHOW_READ; GOSUB MENU; END IF; END IF; END ACTIONS; PANEL GET ACTIONS SIMULATION; END COMPONENT; ! COMPONENT UNITS NOTSAVED NOGEN NOERRCHECK; TYPE STRING 12; INITIAL "Volts DC"; END COMPONENT; ! COMPONENT MAX_MAX_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 130; END COMPONENT; ! COMPONENT MAX_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; VALUES RANGE MIN_VIEW, MAX_MAX_VIEW; INITIAL 100; PANEL SET ACTIONS; FETCH MIN_VIEW; GOSUB MAX_DELTA; ADD; DUP; FETCH MAX_VIEW; GT; IF STACK THEN; STORE MAX_VIEW; ELSE; DROP; END IF; GOSUB TICKER; END ACTIONS; END COMPONENT; ! COMPONENT MIN_MIN_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL -130; END COMPONENT; ! COMPONENT MIN_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; VALUES RANGE MIN_MIN_VIEW, MAX_VIEW; INITIAL -100; PANEL SET ACTIONS; FETCH MAX_VIEW; GOSUB MAX_DELTA; SUB; DUP; FETCH MIN_VIEW; LT; IF STACK THEN; STORE MIN_VIEW; ELSE; DROP; END IF; GOSUB TICKER; END ACTIONS; END COMPONENT; ! COMPONENT FETCH_READINGS NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; SET ACTIONS; ENABLE Choices Chart,OTHER,CAL; FETCH 1; STORE EXECUTE; FETCH 0; STORE MEAS_READY; OUTPUT STRING "FETC?"; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; GOSUB GET_THEM; CODEGEN GET READINGS; ELSE; GOSUB Wait_Query; ENTER READING FORMAT "K"; CODEGEN GET READING; GOSUB SHOW_READ; GOSUB Post_Enter_Wait; END IF; END ACTIONS; PANEL SET ACTIONS MENU; END COMPONENT; ! COMPONENT START_READINGS NOTSAVED NOERRCHECK; TYPE INTEGER; SET ACTIONS START_VIEW; END COMPONENT; ! COMPONENT READINGS NOTSAVED NOERRCHECK; TYPE RARRAY 1,2048; ! If this is changed also change MAX_SIZE GET ACTIONS START_VIEW; PANEL GET ACTIONS SIMULATION; END COMPONENT; ! COMPONENT V_READ NOTSAVED NOGEN; TYPE INTEGER; GET ACTIONS; FETCH 0; STORE SKIP_CHECK; GET READINGS; IF SHOW_DATA THEN; CODEGEN GET READINGS; END IF; FETCH EXECUTE; FETCH 2; GE; IF STACK THEN; DISABLE Choices Chart,OTHER,CAL; CODEGEN PUSH START_READINGS; SKIP ERRCHECK; END IF; IF SKIP_CHECK THEN; SKIP ERRCHECK; END IF; END ACTIONS; END COMPONENT; ! COMPONENT MAX_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 107.5; END COMPONENT; ! COMPONENT MID_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 0; END COMPONENT; ! COMPONENT MIN_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL -107.5; END COMPONENT; ! COMPONENT Y_TIC NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 25; END COMPONENT; ! COMPONENT FUNCTION; TYPE DISCRETE; VALUES DCV,RAT,DIFF,FRES,RES,TEMP; INITIAL DCV; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING 'FUNC "'; OUTPUT FUNCTION TABLE "VOLT:DC","VOLT:DC:RAT","VOLT:DC:DIFF", "FRES","RES","TEMP"; OUTPUT STRING '"'; GOSUB OPC; FETCH RECALLING; FETCH Math; AND; IF STACK THEN; INVALIDATE Math; ! Force a resend of Math ELSE; FETCH 0; STORE Math; ! Function change turns off Math END IF; GOSUB Find_Units; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Ave_Count; INVALIDATE Average; INVALIDATE Ave_Maximum; INVALIDATE Ave_Minimum; INVALIDATE Ave_ptpeak; INVALIDATE Ave_sdeviation; GOSUB SHOW_DVM; GOSUB VIEW_HEIGHT; END ACTIONS; GET ACTIONS; OUTPUT STRING "FUNC?"; GOSUB Enter_String; IF LIVEMODE THEN; FETCH FUNCTION; SELECT STRING_STACK; CASE '"UNKNOWN"'; NOTIFY "Instrument is in an Unknown function"; FETCH DEFAULT; CASE '"RAT"'; FETCH 1; CASE '"VOLT:RAT"'; FETCH 1; CASE '"VOLT:DC:RAT"'; FETCH 1; CASE '"DIFF"'; FETCH 2; CASE '"VOLT:DIFF"'; FETCH 2; CASE '"VOLT:DC:DIFF"'; FETCH 2; CASE '"FRES"'; FETCH 3; CASE '"RES"'; FETCH 4; CASE '"TEMP"'; FETCH 5; CASE ELSE; FETCH 0; END SELECT; DUP; STORE FUNCTION; NE; IF STACK THEN; GOSUB Find_Units; IF PANELMODE THEN; GOSUB SHOW_DVM; END IF; END IF; END IF; END ACTIONS; END COMPONENT; ! ACTIONS MAX_DELTA; FETCH FUNCTION; FETCH (FUNCTION) FRES; GE; IF STACK THEN; FETCH 0.0000010; ELSE; FETCH 0.0000000010; END IF; DUP; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 100000; DIV; ABS; LT; IF STACK THEN; DROP; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 100000; DIV; ABS; END IF; END ACTIONS; ! COMPONENT Math; TYPE DISCRETE; VALUES OFF,AVERAGE,SCALE; INITIAL OFF; SET ACTIONS; IF DEFAULT THEN; OUTPUT STRING "CALC:FUNC "; OUTPUT DEFAULT TABLE "AVER","AVER","SCAL"; OUTPUT STRING ";STAT ON"; ELSE; OUTPUT STRING "CALC:STAT OFF"; END IF; GOSUB No_Show; GOSUB Find_Units; INVALIDATE Ave_Count; INVALIDATE Average; INVALIDATE Ave_Maximum; INVALIDATE Ave_Minimum; INVALIDATE Ave_ptpeak; INVALIDATE Ave_sdeviation; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "CALC:STAT?"; GOSUB Enter_Stack; IF LIVEMODE THEN; IF STACK THEN; OUTPUT STRING "CALC:FUNC?"; GOSUB Enter_String; SELECT STRING_STACK; CASE "SCAL"; FETCH 2; CASE ELSE; FETCH 1; END SELECT; ELSE; FETCH 0; END IF; STORE DEFAULT; ELSE; DROP; IF DEFAULT THEN; OUTPUT STRING "CALC:FUNC?"; GOSUB Enter_String; END IF; END IF; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT Scale_Gain; TYPE CONTINUOUS; VALUES RANGE -9.9E37,9.9E37; INITIAL 1.0; SET ACTIONS; OUTPUT DEFAULT FORMAT '"CALC:SCAL:GAIN ",K'; GOSUB OPC; SELECT Math; CASE SCALE; GOSUB No_Show; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; OUTPUT STRING "CALC:SCAL:GAIN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Scale_Offset; TYPE CONTINUOUS; VALUES RANGE -9.9E37,9.9E37; INITIAL 0.0; SET ACTIONS; OUTPUT DEFAULT FORMAT '"CALC:SCAL:OFFS ",K'; GOSUB OPC; SELECT Math; CASE SCALE; GOSUB No_Show; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; OUTPUT STRING "CALC:SCAL:OFFS?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Ave_Minimum NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:MIN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Ave_Maximum NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:MAX?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Average NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:AVER?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Ave_ptpeak NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:PTP?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Ave_sdeviation NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:SDEV?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Ave_Count NOTSAVED; TYPE CONTINUOUS; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CALC:AVER:COUN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT DONE_POP_UP NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH 0; STORE EXECUTE; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT MAX_TRIG; TYPE CONTINUOUS; INITIAL 1; SET ACTIONS; IF DETECT_RECALL THEN; ELSE; IF ENTRY_MODE THEN; FETCH 1024; ELSE; FETCH MAX_SIZE; END IF; FETCH SAMP_COUNT; IDIV; DUP; STORE MAX_TRIG; FETCH TRIG_COUNT; LT; IF STACK THEN; FETCH MAX_TRIG; STORE TRIG_COUNT; SET TRIG_COUNT; NOTIFY "Trig Count has been decreased"; END IF; END IF; END ACTIONS; END COMPONENT; ! COMPONENT TRIG_COUNT; ! 50000 max if MAX_SIZE increased or TYPE CONTINUOUS; ! File transfer supported VALUES RANGE 1,MAX_TRIG,1; INITIAL 1; SET ACTIONS; GOSUB NO_SHOW; OUTPUT TRIG_COUNT FORMAT '"TRIG:COUN ",K'; GOSUB OPC; SET MAX_SAMP; END ACTIONS; PANEL SET ACTIONS Single_vs_Array; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TRIG:COUN?"; GOSUB Enter_Default; END ACTIONS; PANEL GET ACTIONS Single_vs_Array; END COMPONENT; ! COMPONENT MAX_SAMP NOERRCHECK; TYPE CONTINUOUS; INITIAL 1; SET ACTIONS; IF DETECT_RECALL THEN; ELSE; IF ENTRY_MODE THEN; FETCH 1024; ELSE; FETCH MAX_SIZE; END IF; FETCH TRIG_COUNT; IDIV; STORE MAX_SAMP; END IF; END ACTIONS; END COMPONENT; ! COMPONENT SAMP_COUNT; ! 50000 max if MAX_SIZE increased or TYPE CONTINUOUS; ! File transfer supported VALUES RANGE 1,MAX_SAMP,1; INITIAL 1; SET ACTIONS; GOSUB NO_SHOW; OUTPUT SAMP_COUNT FORMAT '"SAMP:COUN ",K'; GOSUB OPC; SET MAX_TRIG; END ACTIONS; PANEL SET ACTIONS Single_vs_Array; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SAMP:COUN?"; GOSUB Enter_Default; END ACTIONS; PANEL GET ACTIONS Single_vs_Array; END COMPONENT; ACTIONS Single_vs_Array; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; HIDE SET_UP,MINI_SGL; HIDE MINI_SGL,MS_SIMU; SHOW SET_UP,MINI_XY; ELSE; HIDE SET_UP,MINI_XY; IF LIVEMODE THEN; ELSE; SHOW MINI_SGL,MS_SIMU; END IF; SHOW SET_UP,MINI_SGL; END IF; END ACTIONS; ! COMPONENT TRIG; TYPE DISCRETE; VALUES BUS,EXT,IMM; INITIAL IMM; SET ACTIONS; GOSUB NO_SHOW; SELECT TRIG; CASE EXT; CASE IMM; CASE ELSE; IF ENTRY_MODE THEN; ELSE; NOTIFY "Readings Entry Mode is being changed"; FETCH 1; STORE ENTRY_MODE; SET ENTRY_MODE; ENABLE TRIG BUS; END IF; END SELECT; OUTPUT STRING "TRIG:SOUR "; OUTPUT TRIG TABLE "BUS","EXT","IMM"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TRIG:SOUR?"; GOSUB Enter_String; IF LIVEMODE THEN; SELECT STRING_STACK; CASE "BUS"; FETCH 0; CASE "EXT"; FETCH 1; CASE ELSE; FETCH 2; END SELECT; STORE TRIG; END IF; END ACTIONS; END COMPONENT; ! COMPONENT SEND_TRIG NOTSAVED NOERRCHECK; TYPE INTEGER; SET ACTIONS; FETCH 0; STORE MEAS_READY; TRIGGER; FETCH VIEW_TRIG; FETCH 1; SUB; DUP; STORE VIEW_TRIG; IF STACK THEN; ELSE; FETCH ENTRY_MODE; FETCH 2; EQ; IF STACK THEN; FETCH 3; STORE EXECUTE; GOSUB MENU; ELSE; IF PANELMODE THEN; ENABLE Choices Chart,OTHER,CAL; CODEGEN GET READINGS; FETCH 1; STORE EXECUTE; FLUSH; OUTPUT STRING "FETC?"; GOSUB GET_THEM; GOSUB MENU; END IF; END IF; END IF; END ACTIONS; END COMPONENT; ! COMPONENT MEAS_READY NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES WAIT_FOR,READY; INITIAL WAIT_FOR; SET ACTIONS; SELECT ADDR; CASE RANGE 1,99; NOTIFY "Operation not available over RS-232"; FETCH 0; STORE MEAS_READY; CASE ELSE; OUTPUT STRING "*OPC?"; WAIT SPOLL BIT 4; GOSUB Enter_Default; FETCH 1; STORE MEAS_READY; CODEGEN SET MEAS_READY 0; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT HALT_MEAS NOTSAVED; TYPE INTEGER; SET ACTIONS; ENABLE Choices Chart,OTHER,CAL; CLEAR; OUTPUT STRING "ABORT"; GOSUB OPC; GOSUB NO_SHOW; FETCH 1; STORE EXECUTE; FETCH 0; STORE MEAS_READY; END ACTIONS; PANEL SET ACTIONS MENU; END COMPONENT; ! COMPONENT ENTRY_MODE NOERRCHECK; TYPE DISCRETE; VALUES READ, FETCH_IMM, FETCH_LATER; INITIAL FETCH_IMM; SET ACTIONS; IF ENTRY_MODE THEN; ENABLE TRIG BUS; ! FETCH SAMP_COUNT; FETCH TRIG_COUNT; MUL; FETCH 1024; GT; IF STACK THEN; SELECT SAMP_COUNT; CASE RANGE 1,1024; CASE ELSE; FETCH 1024; STORE SAMP_COUNT; FETCH TRIG_COUNT; FETCH 1; GT; IF STACK THEN; FETCH 1; STORE TRIG_COUNT; SET TRIG_COUNT; END IF; SET SAMP_COUNT; END SELECT; FETCH 1024; FETCH SAMP_COUNT; IDIV; DUP; FETCH TRIG_COUNT; LT; IF STACK THEN; STORE TRIG_COUNT; SET TRIG_COUNT; ELSE; DROP; END IF; NOTIFY "Samp*Trig Count reduced to memory size"; END IF; ELSE; SELECT TRIG; CASE EXT; CASE IMM; CASE ELSE; FETCH (TRIG) IMM; STORE TRIG; SET TRIG; NOTIFY "Trig Source has been changed to Immediate"; END SELECT; DISABLE TRIG BUS; END IF; SET MAX_SAMP; SET MAX_TRIG; END ACTIONS; END COMPONENT; ! !! NPLC Resolution !! .02 .0001 !! .2 .00001 !! 1 .000003 !! 2 .0000022 !! 10 .000001 * Default !! 20 .0000008 !! 100 .0000003 !! 200 .00000022 ! COMPONENT VOLT_APER; TYPE DISCRETE; VALUES D4,D5,PLC1,PLC2,PLC10,PLC20,PLC100,PLC200; INITIAL PLC10; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "VOLT:NPLC "; OUTPUT DEFAULT TABLE "0.02","0.2","1","2","10","20","100","200"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "VOLT:NPLC?"; GOSUB Enter_Aper; END ACTIONS; END COMPONENT; ! COMPONENT FRES_APER; TYPE DISCRETE; VALUES D4,D5,PLC1,PLC2,PLC10,PLC20,PLC100,PLC200; INITIAL PLC10; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "FRES:NPLC "; OUTPUT DEFAULT TABLE "0.02","0.2","1","2","10","20","100","200"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "FRES:NPLC?"; GOSUB Enter_Aper; END ACTIONS; END COMPONENT; ! COMPONENT TEMP_APER; TYPE DISCRETE; VALUES D4,D5,PLC1,PLC2,PLC10,PLC20,PLC100,PLC200; INITIAL PLC10; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:NPLC "; OUTPUT DEFAULT TABLE "0.02","0.2","1","2","10","20","100","200"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:NPLC?"; GOSUB Enter_Aper; END ACTIONS; END COMPONENT; ! ACTIONS Enter_Aper; GOSUB Enter_Stack; IF LIVEMODE THEN; SELECT STACK; CASE RANGE 0, .021; FETCH (VOLT_APER)D4; CASE RANGE .021, .210; FETCH (VOLT_APER)D5; CASE RANGE .210, 1.10; FETCH (VOLT_APER)PLC1; CASE RANGE 1.10, 2.10; FETCH (VOLT_APER)PLC2; CASE RANGE 2.10, 11.0; FETCH (VOLT_APER)PLC10; CASE RANGE 11.0, 21.0; FETCH (VOLT_APER)PLC20; CASE RANGE 21.0, 110.; FETCH (VOLT_APER)PLC100; CASE ELSE; FETCH (VOLT_APER)PLC200; END SELECT; STORE DEFAULT; ELSE; DROP; END IF; END ACTIONS; ! ACTIONS FUNCTION_RES; SELECT FUNCTION; CASE FRES; FETCH 1; CASE RES; FETCH 1; CASE ELSE; FETCH 0; END SELECT; END ACTIONS; ! COMPONENT DCV_AUTO1; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; GOSUB NO_SHOW; IF DEFAULT THEN; OUTPUT STRING "SENS1:VOLT:RANG:AUTO ON"; GOSUB OPC; INVALIDATE DCV_RANGE1; ELSE; OUTPUT DCV_RANGE1 FORMAT '"SENS1:VOLT:DC:RANG ",K'; GOSUB OPC; END IF; VALIDATE DCV_AUTO1; END ACTIONS; PANEL SET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES1; IF DEFAULT THEN; HIDE DCV1_ITEMS,DCV1_RES; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS1:VOLT:RANG:AUTO?"; GOSUB Enter_Default; END ACTIONS; PANEL GET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES1; IF DCV_AUTO1 THEN; HIDE DCV1_ITEMS,DCV1_RES; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DCV_AUTO2; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; GOSUB NO_SHOW; IF DEFAULT THEN; OUTPUT STRING "SENS2:VOLT:RANG:AUTO ON"; GOSUB OPC; INVALIDATE DCV_RANGE2; ELSE; OUTPUT DCV_RANGE2 FORMAT '"SENS2:VOLT:DC:RANG ",K'; GOSUB OPC; END IF; VALIDATE DCV_AUTO2; END ACTIONS; PANEL SET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES2; IF DEFAULT THEN; HIDE DCV2_ITEMS,DCV2_RES; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS2:VOLT:RANG:AUTO?"; GOSUB Enter_Default; END ACTIONS; PANEL GET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES2; IF DCV_AUTO2 THEN; HIDE DCV2_ITEMS,DCV2_RES; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT RES_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; GOSUB NO_SHOW; ! IF RES_AUTO THEN; OUTPUT STRING "RES:RANG:AUTO ON"; INVALIDATE RES_RANGE; ELSE; OUTPUT RES_RANGE FORMAT '"RES:RANG ",K'; END IF; VALIDATE RES_AUTO; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; GOSUB RRES; IF RES_AUTO THEN; HIDE RES_ITEMS,RES_RES; ELSE; SHOW RES_ITEMS,RES_RES; END IF; GOSUB VIEW_HEIGHT; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "RES:RANG:AUTO?"; GOSUB Enter_Default; GOSUB RRES; GOSUB VIEW_HEIGHT; END ACTIONS; END COMPONENT; ! COMPONENT DCV_RANGE1; TYPE CONTINUOUS; VALUES RANGE 0.001,100, LOG 1,1; INITIAL 10, INVALID; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE DCV_AUTO1; SELECT DEFAULT; CASE RANGE -1, .00101; FETCH 0.0010; CASE RANGE .00101, .0101; FETCH 0.010; CASE RANGE .0101, .101; FETCH 0.10; CASE RANGE .101, 1.01; FETCH 1; CASE RANGE 1.01, 10.1; FETCH 10; CASE ELSE; FETCH 100; END SELECT; STORE DEFAULT; END IF; IF DCV_AUTO1 THEN; INVALIDATE DCV_RANGE1; ELSE; OUTPUT DCV_RANGE1 FORMAT '"SENS1:VOLT:DC:RANG ",K'; GOSUB OPC; END IF; END ACTIONS; PANEL SET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES1; IF DCV_AUTO1 THEN; HIDE DCV1_ITEMS,DCV1_RES; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS1:VOLT:DC:RANG?"; GOSUB Enter_Default; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES1; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! ACTIONS DVRES1; HIDE DCV1_ITEMS,DCV1_RES0; HIDE DCV1_ITEMS,DCV1_RES1; HIDE DCV1_ITEMS,DCV1_RES2; HIDE DCV1_ITEMS,DCV1_RES3; HIDE DCV1_ITEMS,DCV1_RES4; HIDE DCV1_ITEMS,DCV1_RES5; IF DCV_AUTO1 THEN; ELSE; SELECT DCV_RANGE1; CASE RANGE -1, 0.00101; SHOW DCV1_ITEMS,DCV1_RES0; CASE RANGE 0.00101, 0.0101; SHOW DCV1_ITEMS,DCV1_RES1; CASE RANGE 0.0101, 0.101; SHOW DCV1_ITEMS,DCV1_RES2; CASE RANGE 0.101, 1.001; SHOW DCV1_ITEMS,DCV1_RES3; CASE RANGE 1.001, 10.01; SHOW DCV1_ITEMS,DCV1_RES4; CASE ELSE; SHOW DCV1_ITEMS,DCV1_RES5; END SELECT; END IF; END ACTIONS; ! COMPONENT DCV_RANGE2; TYPE CONTINUOUS; VALUES RANGE 0.001,10, LOG 1,1; INITIAL 10, INVALID; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE DCV_AUTO2; SELECT DEFAULT; CASE RANGE -1, .00101; FETCH 0.0010; CASE RANGE .00101, .0101; FETCH 0.010; CASE RANGE .0101, .101; FETCH 0.10; CASE RANGE .101, 1.01; FETCH 1; CASE ELSE; FETCH 10; END SELECT; STORE DEFAULT; END IF; IF DCV_AUTO2 THEN; INVALIDATE DCV_RANGE2; ELSE; OUTPUT DCV_RANGE2 FORMAT '"SENS2:VOLT:DC:RANG ",K'; GOSUB OPC; END IF; END ACTIONS; PANEL SET ACTIONS; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES2; IF DCV_AUTO2 THEN; HIDE DCV2_ITEMS,DCV2_RES; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS2:VOLT:DC:RANG?"; GOSUB Enter_Default; FETCH FUNCTION; FETCH (FUNCTION)DIFF; LE; IF STACK THEN; GOSUB DVRES2; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! ACTIONS DVRES2; HIDE DCV2_ITEMS,DCV2_RES0; HIDE DCV2_ITEMS,DCV2_RES1; HIDE DCV2_ITEMS,DCV2_RES2; HIDE DCV2_ITEMS,DCV2_RES3; HIDE DCV2_ITEMS,DCV2_RES4; IF DCV_AUTO2 THEN; ELSE; SELECT DCV_RANGE2; CASE RANGE -1, 0.00101; SHOW DCV2_ITEMS,DCV2_RES0; CASE RANGE 0.00101, 0.0101; SHOW DCV2_ITEMS,DCV2_RES1; CASE RANGE 0.0101, 0.101; SHOW DCV2_ITEMS,DCV2_RES2; CASE RANGE 0.101, 1.001; SHOW DCV2_ITEMS,DCV2_RES3; CASE ELSE; SHOW DCV2_ITEMS,DCV2_RES4; END SELECT; END IF; END ACTIONS; ! COMPONENT RES_RANGE; TYPE CONTINUOUS; VALUES RANGE 1, 1000000, LOG 1,1; INITIAL 1000, INVALID; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE RES_AUTO; SELECT RES_RANGE; CASE RANGE -1, 1.1; FETCH 1.0; CASE RANGE 1.1, 11; FETCH 10; CASE RANGE 11, 101; FETCH 100; CASE RANGE 101, 1001; FETCH 1000; CASE RANGE 1001, 10001; FETCH 10000; CASE RANGE 10001, 100001; FETCH 100000; CASE ELSE; FETCH 1000000; END SELECT; STORE RES_RANGE; END IF; IF RES_AUTO THEN; INVALIDATE RES_RANGE; ELSE; OUTPUT RES_RANGE FORMAT '"RES:RANG ",K';GOSUB OPC; END IF; END ACTIONS; PANEL SET ACTIONS; GOSUB RRES; IF RES_AUTO THEN; HIDE RES_ITEMS,RES_RES; ELSE; SHOW RES_ITEMS,RES_RES; END IF; GOSUB VIEW_HEIGHT; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "RES:RANG?"; GOSUB Enter_Default; GOSUB FUNCTION_RES; IF STACK THEN; GOSUB RRES; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! ACTIONS RRES; HIDE RES_ITEMS,RES_RES0; HIDE RES_ITEMS,RES_RES1; HIDE RES_ITEMS,RES_RES2; HIDE RES_ITEMS,RES_RES3; HIDE RES_ITEMS,RES_RES4; HIDE RES_ITEMS,RES_RES5; HIDE RES_ITEMS,RES_RES6; IF RES_AUTO THEN; ELSE; SELECT RES_RANGE; CASE RANGE -1, 1.1; SHOW RES_ITEMS,RES_RES0; CASE RANGE 1.1, 11; SHOW RES_ITEMS,RES_RES1; CASE RANGE 11, 101; SHOW RES_ITEMS,RES_RES2; CASE RANGE 101, 1001; SHOW RES_ITEMS,RES_RES3; CASE RANGE 1001, 10001; SHOW RES_ITEMS,RES_RES4; CASE RANGE 10001, 100001; SHOW RES_ITEMS,RES_RES5; CASE ELSE; SHOW RES_ITEMS,RES_RES6; END SELECT; END IF; END ACTIONS; ! COMPONENT OCOMP; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "FRES:OCOM "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "FRES:OCOM?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT Power_Limit NOPOKEINITIAL; TYPE DISCRETE; VALUES OFF,ON; SET ACTIONS; IF DEFAULT THEN; ! Power_Limit and Volt_Limit cannot both be on. IF Volt_Limit THEN; FETCH 0; STORE Volt_Limit; SET Volt_Limit; ELSE; IF RECALLING THEN; SET Volt_Limit; END IF; ! Turn volt off first END IF; END IF; OUTPUT STRING "FRES:POW:LIM "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "FRES:POW:LIM?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT Volt_Limit NOPOKEINITIAL; TYPE DISCRETE; VALUES OFF,ON; SET ACTIONS; IF DEFAULT THEN; IF Power_Limit THEN; FETCH 0; STORE Power_Limit; SET Power_Limit; END IF; END IF; OUTPUT STRING "FRES:VOLT:LIM "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "FRES:VOLT:LIM?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT Volt_Limit_Value NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 0.02, 0.5; COUPLED Volt_Limit_Value; SET ACTIONS; OUTPUT DEFAULT FORMAT '"FRES:VOLT:LIM:VAL ",K'; END ACTIONS; GET ACTIONS; OUTPUT STRING "FRES:VOLT:LIM:VAL?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT TEMP_Transducer NOPOKEINITIAL; TYPE DISCRETE; VALUES TC,THER,FRTD; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:TRAN:TYPE "; OUTPUT TEMP_Transducer TABLE "TC","THER","FRTD"; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS Temp_Menu; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:TYPE?"; GOSUB Enter_String; IF LIVEMODE THEN; SELECT STRING_STACK; CASE "TC"; FETCH 0; CASE "THER"; FETCH 1; CASE ELSE; FETCH 2; END SELECT; STORE DEFAULT; END IF; END ACTIONS; PANEL GET ACTIONS Temp_Menu; END COMPONENT; ACTIONS Temp_Menu; HIDE TC_PARMS; HIDE THER_PARMS; HIDE FRTD_PARMS; SELECT TEMP_Transducer; CASE TC; SHOW TC_PARMS; CASE THER; SHOW THER_PARMS; CASE ELSE; GOSUB FRTD_Menu; SHOW FRTD_PARMS; END SELECT; END ACTIONS; ! COMPONENT TC_Type NOPOKEINITIAL; TYPE DISCRETE; VALUES B,E,J,K,N,R,S,T; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:TRAN:TC:TYPE "; OUTPUT TC_Type TABLE "B","E","J","K","N","R","S","T"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:TC:TYPE?"; GOSUB Enter_String; IF LIVEMODE THEN; FETCH STRING "EJKNRST"; FETCH STRING_STACK; POS; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT TC_RJUN_Type NOPOKEINITIAL; TYPE DISCRETE; VALUES FIX,INT,THER; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:TRAN:TC:RJUN:TYPE "; OUTPUT TC_RJUN_Type TABLE "FIX","INT","THER"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:TC:RJUN:TYPE?"; GOSUB Enter_String; IF LIVEMODE THEN; SELECT STRING_STACK; CASE "FIX"; FETCH 0; CASE "INT"; FETCH 1; CASE ELSE; FETCH 2; END SELECT; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT TC_RJUN_Temp NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE -1,55; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:TRAN:TC:RJUN ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:TC:RJUN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT FRTD_Type NOPOKEINITIAL; TYPE DISCRETE; VALUES FRTD85,FRTD91,USER; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:TRAN:FRTD:TYPE "; OUTPUT FRTD_Type TABLE "85","91","USER"; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS FRTD_Menu; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:FRTD:TYPE?"; GOSUB Enter_STACK; IF LIVEMODE THEN; SELECT STACK; CASE 85; FETCH 0; CASE 91; FETCH 1; CASE ELSE; FETCH 2; END SELECT; STORE DEFAULT; ELSE; DROP; END IF; END ACTIONS; PANEL GET ACTIONS FRTD_Menu; END COMPONENT; ACTIONS FRTD_Menu; SELECT FRTD_Type; CASE USER; hide frtd_ocomp; select USER_FRTD; case 1; SHOW FRTD_User1; case else; SHOW FRTD_User2; end select; CASE ELSE; select USER_FRTD; case 1; HIDE FRTD_User1; case else; HIDE FRTD_User2; end select; show frtd_ocomp; END SELECT; END ACTIONS; ! COMPONENT USER_FRTD NOPOKEINITIAL; TYPE INTEGER; GET ACTIONS; GET IDENTIFY; IF LIVEMODE THEN; FETCH IDENTIFY; DUP; FETCH ","; POS; FETCH 1; ADD; FETCH 36; SUBSTR; DUP; FETCH ","; POS; FETCH 1; ADD; FETCH 36; SUBSTR; DUP; FETCH ","; POS; FETCH 1; ADD; FETCH 3; SUBSTR; VAL; select STACK; CASE RANGE -1,1.299; fetch 0; CASE RANGE 1.299,1.999; fetch 1; CASE ELSE; fetch 2; END SELECT; ELSE; FETCH 2; END IF; STORE DEFAULT; END ACTIONS; PANEL GET ACTIONS; IF DEFAULT THEN; ENABLE FRTD_Type USER; ELSE; DISABLE FRTD_Type USER; END IF; END ACTIONS; END COMPONENT; ! COMPONENT FRTD_Resistance NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 4.9,2100; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:TRAN:FRTD:RES ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:TRAN:FRTD:RES?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT User_Alpha NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 0.0001,2.0; SET ACTIONS; select USER_FRTD; case 1; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:TRAN:FRTD:USER:ALPHA ",K'; GOSUB OPC; case else; end select; END ACTIONS; GET ACTIONS; select USER_FRTD; case 1; OUTPUT STRING "TEMP:TRAN:FRTD:USER:ALPHA?"; GOSUB Enter_Default; case else; end select; END ACTIONS; END COMPONENT; ! COMPONENT User_BETA NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 0.0001,2.0; SET ACTIONS; select USER_FRTD; case 1; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:TRAN:FRTD:USER:BETA ",K'; GOSUB OPC; case else; end select; END ACTIONS; GET ACTIONS; select USER_FRTD; case 1; OUTPUT STRING "TEMP:TRAN:FRTD:USER:BETA?"; GOSUB Enter_Default; case else; end select; END ACTIONS; END COMPONENT; ! COMPONENT User_DELTA NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 0.0001,2.0; SET ACTIONS; select USER_FRTD; case 1; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:TRAN:FRTD:USER:DELT ",K'; GOSUB OPC; case else; end select; END ACTIONS; GET ACTIONS; select USER_FRTD; case 1; OUTPUT STRING "TEMP:TRAN:FRTD:USER:DELT?"; GOSUB Enter_Default; case else; end select; END ACTIONS; END COMPONENT; ! ! COMPONENT Temp_Units NOPOKEINITIAL; TYPE DISCRETE; VALUES C,F,K; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "UNIT:TEMP "; OUTPUT DEFAULT TABLE "C","F","K"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "UNIT:TEMP?"; GOSUB Enter_String; IF LIVEMODE THEN; FETCH STRING "FK"; FETCH STRING_STACK; POS; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DELAY_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TRIG:DEL:AUTO "; OUTPUT DELAY_AUTO TABLE "OFF","ON"; IF DELAY_AUTO THEN; INVALIDATE DELAY; GOSUB OPC; ELSE; IF DETECT_RECALL THEN; ELSE; GET DELAY; END IF; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TRIG:DEL:AUTO?"; GOSUB Enter_Default; IF DELAY_AUTO THEN; INVALIDATE DELAY; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DELAY; TYPE CONTINUOUS; VALUES RANGE 0,3600; INITIAL 0.0015, INVALID; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; IF DELAY_AUTO THEN; INVALIDATE DELAY; ELSE; OUTPUT DELAY FORMAT '"TRIG:DEL ",K'; GOSUB OPC; END IF; ELSE; FETCH 0; STORE DELAY_AUTO; OUTPUT DELAY FORMAT '"TRIG:DEL ",K'; FLUSH; GET DELAY; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TRIG:DEL?"; GOSUB Enter_Default; VALIDATE DELAY; END ACTIONS; END COMPONENT; ! COMPONENT UP_SCAN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS AUP_SCAN; END COMPONENT; COMPONENT DN_SCAN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS ADN_SCAN; END COMPONENT; ! COMPONENT UP_RDNG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS AUP_RDNG; END COMPONENT; COMPONENT DN_RDNG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS ADN_RDNG; END COMPONENT; ! COMPONENT DEFAULT_TRIGGER NOTSAVED; TYPE INTEGER; SET ACTIONS; GOSUB NO_SHOW; INVALIDATE DELAY; FETCH 1; DUP; DUP; STORE DELAY_AUTO; STORE TRIG_COUNT; STORE SAMP_COUNT; FETCH (TRIG) IMM; STORE TRIG; OUTPUT STRING "TRIG:DEL:AUTO ON;:TRIG:SOUR IMM;:TRIG:COUN 1;:SAMP:COUN 1"; GOSUB OPC; SET MAX_TRIG; SET MAX_SAMP; END ACTIONS; PANEL SET ACTIONS Single_vs_Array; END COMPONENT; ! COMPONENT IDENTIFY NOTSAVED; TYPE STRING 80; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*IDN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT START_UP NOTSAVED NOGEN; TYPE INTEGER; SET ACTIONS; FETCH 0; STORE Fast_Controller; FETCH 1; STORE OPC_MODE; hide frtd_ocomp; HIDE FRTD_User1; HIDE FRTD_User2; HIDE CHANGE_COEFS; fetch 0; store Edit_Coef; SET RESET; FETCH 2; STORE USER_FRTD; GET USER_FRTD; fetch 0; dup; store User_Coef_A4; dup; store User_Coef_B4; dup; store User_Coef_A7; dup; store User_Coef_B7; store User_Coef_C7; get User_Coef_C7; FETCH 0.00385; STORE User_Alpha; GET User_Alpha; FETCH 0.10863; STORE User_Beta; GET User_Beta; FETCH 1.4999; STORE User_Delta; GET User_Delta; FETCH 1; STORE BeepState; GET BeepState; FETCH 0; STORE PSC; GET PSC; FETCH 0.02; STORE Volt_Limit_Value; GET Volt_Limit_Value; FETCH 0; STORE Volt_Limit; GET Volt_Limit; FETCH 0; STORE Power_Limit; GET Power_Limit; FETCH 0; STORE Chart_Offset; GET Chart_Offset; FETCH 1E-3; STORE Chart_Span; GET Chart_Span; FETCH 0; STORE Chart_State; GET Chart_State; FETCH 2; STORE TEMP_Transducer; GET TEMP_Transducer; FETCH 3; STORE TC_Type; GET TC_Type; FETCH 1; STORE TC_RJUN_Type; GET TC_RJUN_Type; FETCH 0; STORE TC_RJUN_Temp; GET TC_RJUN_Temp; FETCH 0; STORE FRTD_Type; GET FRTD_Type; FETCH 0; STORE Temp_Units; GET Temp_Units; FETCH 100; STORE FRTD_Resistance; GET FRTD_Resistance; END ACTIONS; END COMPONENT; ! COMPONENT DATA_COUNT NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 0; SET ACTIONS; FETCH DATA_COUNT; FETCH 1; ADD; DUP; FETCH 2048; GT; IF STACK THEN; DROP; FETCH 0; END IF; STORE DATA_COUNT; END ACTIONS; END COMPONENT; ! COMPONENT Read_Null NOTSAVED; TYPE INTEGER; SET ACTIONS; SELECT FUNCTION; CASE RAT; CASE ELSE; OUTPUT STRING "NULL ONCE"; GOSUB OPC; END SELECT; END ACTIONS; PANEL SET ACTIONS; SELECT FUNCTION; CASE RAT; CASE DIFF; CASE TEMP; INVALIDATE Temp_NULL_Value; GET Temp_NULL; CASE DCV; IF TERM THEN; INVALIDATE Volt2_NULL_Value; GET Volt2_NULL; ELSE; INVALIDATE Volt1_NULL_Value; GET Volt1_NULL; END IF; CASE ELSE; INVALIDATE FRES_NULL_Value; GET FRES_NULL; END SELECT; SHOW Null_Next; END ACTIONS; END COMPONENT; ! COMPONENT Volt1_NULL_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -120,120; INITIAL 0,INVALID; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"SENS1:VOLT:NULL:VAL ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "SENS1:VOLT:NULL:VAL?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Volt1_NULL; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS1:VOLT:NULL "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; GOSUB Find_Units; END ACTIONS; GET ACTIONS; OUTPUT STRING "SENS1:VOLT:NULL?"; GOSUB Enter_Default; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT Volt2_NULL_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -12,12; INITIAL 0,INVALID; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"SENS2:VOLT:NULL:VAL ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "SENS2:VOLT:NULL:VAL?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Volt2_NULL; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "SENS2:VOLT:NULL "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; GOSUB Find_Units; END ACTIONS; GET ACTIONS; OUTPUT STRING "SENS2:VOLT:NULL?"; GOSUB Enter_Default; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT Fres_NULL_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -1200000,1200000; INITIAL 0,INVALID; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"FRES:NULL:VAL ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "FRES:NULL:VAL?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT FRES_NULL; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "FRES:NULL "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; GOSUB Find_Units; END ACTIONS; GET ACTIONS; OUTPUT STRING "FRES:NULL?"; GOSUB Enter_Default; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT Temp_NULL_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -12,12; INITIAL 0,INVALID; SET ACTIONS; GOSUB NO_SHOW; OUTPUT DEFAULT FORMAT '"TEMP:NULL:VAL ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:NULL:VAL?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Temp_NULL; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "TEMP:NULL "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; GOSUB Find_Units; END ACTIONS; GET ACTIONS; OUTPUT STRING "TEMP:NULL?"; GOSUB Enter_Default; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT Chart_State NOPOKEINITIAL; TYPE DISCRETE; VALUES OFF,ON; SET ACTIONS; OUTPUT STRING "OUTP "; OUTPUT DEFAULT TABLE "OFF","ON"; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "OUTP?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Chart_Span NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE 5E-9,1E9; SET ACTIONS; OUTPUT DEFAULT FORMAT '"OUTP:REF:SPAN ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "OUTP:REF:SPAN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Chart_Offset NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE -1E-9,1E9; SET ACTIONS; OUTPUT DEFAULT FORMAT '"OUTP:REF:OFFS ",K'; GOSUB OPC; END ACTIONS; GET ACTIONS; OUTPUT STRING "OUTP:REF:OFFS?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Chart_Offset_Null NOTSAVED; TYPE INTEGER; SET ACTIONS; OUTPUT STRING "OUTP:REF:OFFS:NULL"; GOSUB OPC; INVALIDATE Chart_Offset; END ACTIONS; END COMPONENT; ! COMPONENT Chart_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -3.00, 3.00; INITIAL 0,INVALID; SET ACTIONS; OUTPUT DEFAULT FORMAT '"OUTP:REF:VAL ",K'; GOSUB OPC; END ACTIONS; END COMPONENT; ! ! Calibration ****************************************************** ! COMPONENT Secure_State NOTSAVED; TYPE DISCRETE; VALUES OFF,ON; INITIAL INVALID; SET ACTIONS; IF DEFAULT THEN; OUTPUT STRING "CAL:SEC:STAT ON"; ELSE; GET Secure_State; END IF; END ACTIONS; GET ACTIONS; OUTPUT STRING "CAL:SEC:STAT?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Secure_Code NOTSAVED; TYPE STRING 11; INITIAL "",INVALID; SET ACTIONS; FETCH DEFAULT; LENGTH; IF STACK THEN; GET Secure_State; IF Secure_State THEN; OUTPUT DEFAULT FORMAT '"CAL:SEC:STAT OFF,",K'; FLUSH; GET Secure_State; ELSE; OUTPUT DEFAULT FORMAT '"CAL:SEC:CODE ",K'; END IF; FETCH ""; STORE DEFAULT; INVALIDATE Secure_Code; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Calibrate NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CAL?"; FLUSH; WAIT TIME .5; IF LIVEMODE THEN; SELECT ADDR; CASE RANGE 1,99; NOTIFY "Click OK when the meter is done"; CASE ELSE; FETCH 720; LOOP; DUP; FETCH 0; LT; SPOLL; FETCH 4; BIT; OR; EXIT IF STACK; WAIT TIME 5; FETCH 5; SUB; END LOOP; DROP; END SELECT; END IF; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Cal_ICUR NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CAL:ICUR?"; FLUSH; IF LIVEMODE THEN; SELECT ADDR; CASE RANGE 1,99; NOTIFY "Click OK when the meter is done"; CASE ELSE; FETCH 120; LOOP; DUP; FETCH 0; LT; SPOLL; FETCH 4; BIT; OR; EXIT IF STACK; WAIT TIME 3; FETCH 3; SUB; END LOOP; DROP; END SELECT; END IF; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Cal_Count NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "CAL:COUN?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Cal_Output NOTSAVED; TYPE DISCRETE; VALUES ZERO,GAIN; INITIAL ZERO; SET ACTIONS; output string "CAL:OUTP "; output default table "ZERO","GAIN"; FLUSH; END ACTIONS; GET ACTIONS; OUTPUT STRING "CAL:OUTP?"; GOSUB Enter_String; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "ZERO"; POS; NOT; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Cal_Value NOTSAVED; TYPE CONTINUOUS; VALUES RANGE -1100000,1100000; INITIAL INVALID; SET ACTIONS; output default format '"CAL:VAL ",K'; gosub opc; END ACTIONS; GET ACTIONS; OUTPUT STRING "CAL:VAL?"; GOSUB Enter_Default; END ACTIONS; END COMPONENT; ! COMPONENT Cal_String NOTSAVED; TYPE STRING 42; INITIAL INVALID; SET ACTIONS; IF Secure_State THEN; GET Cal_String; ELSE; output STRING "CAL:STR '"; output default format 'K'; output string "'"; gosub opc; END IF; END ACTIONS; GET ACTIONS; OUTPUT STRING "CAL:STR?"; GOSUB Wait_Query; ENTER DEFAULT FORMAT "X,K"; if livemode then; fetch default; length; dup; fetch 2; ge; if stack then; fetch default; swap; fetch 1; sub; fetch 1; swap; substr; ELSE; DROP; FETCH STRING ""; end if; store default; end if; GOSUB Post_Enter_Wait; END ACTIONS; END COMPONENT; ! ! COMPONENT UPDATESTATE CLONE FLAG; COMPONENT UPDATER NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 0; SET ACTIONS; IF UPDATER THEN; ELSE; GOSUB DO_UPDATE; END IF; END ACTIONS; GET ACTIONS DO_UPDATE; END COMPONENT; ! UPDATE COMPONENT UPDATER; ! ACTIONS DO_UPDATE; FETCH TRIG; !! Need non-clicked triggers FETCH ENTRY_MODE; FETCH 1; EQ; AND; !! Need normal data entry mode IF STACK THEN; ! FETCH UPDATESTATE; NOT; FETCH UPDATER; AND; IF STACK THEN; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; FETCH SHOW_DATA; STORE OLD_SHOW_DATA; END IF; GOSUB MEAS_ACT; IF ALL_IS_WELL THEN; FETCH 1; STORE UPDATESTATE; ELSE; FETCH 0; STORE SHOW_DATA; END IF; END IF; ! IF UPDATESTATE THEN; FETCH LIVEMODE; NOT; SELECT ADDR; CASE RANGE 1,99; FETCH 1; CASE ELSE; SPOLL; FETCH 4; BIT; END SELECT; OR; IF STACK THEN; FETCH 0; STORE UPDATESTATE; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; GOSUB GET_THEM; FETCH SHOW_DATA; FETCH OLD_SHOW_DATA; BINEOR; FETCH Choices; FETCH (Choices) NULL; LE; AND; FETCH EXECUTE; AND; IF STACK THEN; GOSUB MENU; END IF; ELSE; GOSUB Wait_Query; ENTER READING FORMAT "K"; GOSUB SHOW_READ; GOSUB Post_Enter_Wait; END IF; END IF; END IF; ! FETCH UPDATER; NOT; FETCH UPDATESTATE; AND; IF STACK THEN; FETCH 0; STORE UPDATESTATE; CLEAR; OUTPUT STRING "ABORT"; FETCH SHOW_DATA; FETCH OLD_SHOW_DATA; BINEOR; FETCH Choices; FETCH (Choices) NULL; LE; AND; FETCH EXECUTE; AND; IF STACK THEN; GOSUB MENU; END IF; END IF; END IF; END ACTIONS; ! ! !--- Start Actions ----------------------------------------- ! !----- Start Scrolling ------------------------------------- ! ACTIONS AUP_SCAN; IF SHOW_DATA THEN; FETCH 1; FETCH VIEW_TRIG; FETCH TRIG_COUNT; NE; IF STACK THEN; FETCH VIEW_TRIG; ADD; END IF; STORE VIEW_TRIG; GOSUB EXTRACT; END IF; END ACTIONS; ACTIONS ADN_SCAN; IF SHOW_DATA THEN; SELECT VIEW_TRIG; CASE 1; FETCH TRIG_COUNT; CASE ELSE; FETCH VIEW_TRIG; FETCH 1; SUB; END SELECT; STORE VIEW_TRIG; GOSUB EXTRACT; END IF; END ACTIONS; ! ACTIONS AUP_RDNG; IF SHOW_DATA THEN; FETCH VIEW_RDNG; FETCH SAMP_COUNT; EQ; IF STACK THEN; FETCH 1; STORE VIEW_RDNG; GOSUB AUP_SCAN; ELSE; FETCH VIEW_RDNG; FETCH 1; ADD; STORE VIEW_RDNG; GOSUB EXTRACT; END IF; END IF; END ACTIONS; ! ACTIONS ADN_RDNG; IF SHOW_DATA THEN; SELECT VIEW_RDNG; CASE 1; FETCH SAMP_COUNT; STORE VIEW_RDNG; GOSUB ADN_SCAN; CASE ELSE; FETCH VIEW_RDNG; FETCH 1; SUB; STORE VIEW_RDNG; GOSUB EXTRACT; END SELECT; END IF; END ACTIONS; ! ACTIONS EXTRACT; FETCH VIEW_RDNG; FETCH 1; LT; IF STACK THEN; FETCH 1; STORE VIEW_RDNG; END IF; FETCH VIEW_RDNG; FETCH SAMP_COUNT; GT; IF STACK THEN; FETCH SAMP_COUNT; STORE VIEW_RDNG; END IF; ! FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; FETCH VIEW_TRIG; FETCH 1; LT; IF STACK THEN; FETCH 1; STORE VIEW_TRIG; END IF; FETCH VIEW_TRIG; FETCH TRIG_COUNT; GT; IF STACK THEN; FETCH TRIG_COUNT; STORE VIEW_TRIG; END IF; FETCH VIEW_RDNG; FETCH SAMP_COUNT; FETCH VIEW_TRIG; FETCH 1; SUB; MUL; ADD; ELSE; FETCH 1; END IF; ! DUP; STORE DMARK; FETCH READINGS; STORE READING; END ACTIONS; ! ACTIONS ALL_RESET; INVALIDATE ERROR; INVALIDATE ERR_STRING; INVALIDATE READING; INVALIDATE DELAY; INVALIDATE RES_RANGE; INVALIDATE DCV_RANGE1; INVALIDATE DCV_RANGE2; INVALIDATE READING; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; INVALIDATE Operate_Event; INVALIDATE Questionable_Event; INVALIDATE Questionable_Cond; INVALIDATE Ave_Count; INVALIDATE Average; INVALIDATE Ave_Maximum; INVALIDATE Ave_Minimum; INVALIDATE Ave_ptpeak; INVALIDATE Ave_sdeviation; HIDE Null_Next; GOSUB MENU; SET MAX_TRIG; SET MAX_SAMP; END ACTIONS; ! ACTIONS VIEW_HEIGHT; SELECT FUNCTION; CASE DCV; IF TERM THEN; IF DCV_AUTO2 THEN; FETCH 10; ELSE; FETCH DCV_RANGE2; END IF; ELSE; IF DCV_AUTO1 THEN; FETCH 100; ELSE; FETCH DCV_RANGE1; END IF; END IF; DUP; STORE MAX_VIEW; FETCH -1; MUL; STORE MIN_VIEW; CASE RAT; FETCH 100; STORE MAX_VIEW; FETCH -100; STORE MIN_VIEW; CASE DIFF; IF DCV_AUTO1 THEN; FETCH 100; ELSE; FETCH DCV_RANGE1; END IF; DUP; IF DCV_AUTO2 THEN; FETCH 10; ELSE; FETCH DCV_RANGE2; END IF; LT; IF STACK THEN; DROP; IF DCV_AUTO2 THEN; FETCH 10; ELSE; FETCH DCV_RANGE2; END IF; END IF; DUP; STORE MAX_VIEW; FETCH -1; MUL; STORE MIN_VIEW; CASE TEMP; FETCH 500; STORE MAX_VIEW; FETCH -150; STORE MIN_VIEW; CASE ELSE; ! Ohms IF RES_AUTO THEN; FETCH 1000000; ELSE; FETCH RES_RANGE; END IF; STORE MAX_VIEW; FETCH 0; STORE MIN_VIEW; END SELECT; FETCH MAX_VIEW; STORE MAX_MAX_VIEW; FETCH MIN_VIEW; STORE MIN_MIN_VIEW; GOSUB TICKER; FETCH 0; STORE DATA_COUNT; END ACTIONS; ! ACTIONS INJECT; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; FETCH VIEW_RDNG; FETCH SAMP_COUNT; FETCH VIEW_TRIG; FETCH 1; SUB; MUL; ADD; ELSE; FETCH 1; END IF; DUP; STORE DMARK; STORE READINGS; END ACTIONS; ! ACTIONS INJECT_SCAN; SWAP; DUP; FETCH VIEW_TRIG; MUL; FETCH TRIG_COUNT; DIV; GOSUB INJECT; SWAP; DUP; FETCH VIEW_TRIG; ADD; DUP; FETCH TRIG_COUNT; GT; IF STACK THEN; DROP; FETCH TRIG_COUNT; END IF; STORE VIEW_TRIG; END ACTIONS; ! ACTIONS INJECT_SAMP; SWAP; DUP; FETCH VIEW_RDNG; MUL; FETCH SAMP_COUNT; DIV; GOSUB INJECT; SWAP; DUP; FETCH VIEW_RDNG; ADD; DUP; FETCH SAMP_COUNT; GT; IF STACK THEN; DROP; FETCH SAMP_COUNT; END IF; STORE VIEW_RDNG; END ACTIONS; ! ACTIONS SHOW_READ; FETCH NUMBER_POINTS; DUP; FETCH MAX_SIZE; LE; SWAP; FETCH 1; GE; AND; FETCH PANELMODE; AND; IF STACK THEN; IF LIVEMODE THEN; ELSE; SELECT FUNCTION; CASE DCV; IF TERM THEN; FETCH DCV_RANGE2; ELSE; FETCH DCV_RANGE1; END IF; CASE RAT; FETCH 100; CASE DIFF; FETCH DCV_RANGE1; CASE TEMP; FETCH 100; CASE ELSE; FETCH RES_RANGE; END SELECT; FETCH DATA_COUNT; FETCH 7.3873; MOD; FETCH 3.57; SUB; DUP; MUL; FETCH 20; DIV; FETCH 2; ADD; DIV; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; DUP; FETCH DATA_COUNT; FETCH TRIG_COUNT; FETCH 9; IDIV; FETCH 1; ADD; MOD; FETCH 1; ADD; DUP; FETCH TRIG_COUNT; GT; IF STACK THEN; DROP; FETCH TRIG_COUNT; END IF; STORE VIEW_TRIG; FETCH 1; STORE VIEW_RDNG; IF DATA_COUNT THEN; FETCH 1; STORE READINGS; ELSE; MATSCALE 0, STACK READINGS; END IF; FETCH 2; MUL; FETCH TRIG_COUNT; FETCH 1; SUB; FETCH 10; IDIV; FETCH 1; ADD; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; GOSUB INJECT_SCAN; DROP; FETCH DATA_COUNT; FETCH TRIG_COUNT; MOD; FETCH 1; ADD; STORE VIEW_TRIG; FETCH DATA_COUNT; FETCH TRIG_COUNT; IDIV; FETCH SAMP_COUNT; FETCH 9; IDIV; FETCH 1; ADD; MOD; FETCH 1; ADD; DUP; FETCH SAMP_COUNT; GT; IF STACK THEN; DROP; FETCH SAMP_COUNT; END IF; STORE VIEW_RDNG; FETCH SAMP_COUNT; FETCH 1; SUB; FETCH 10; IDIV; FETCH 1; ADD; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; GOSUB INJECT_SAMP; DROP; FETCH 1; STORE VIEW_TRIG; FETCH 1; STORE VIEW_RDNG; DROP; ELSE; FETCH 1.5; MUL; STORE READING; END IF; SET DATA_COUNT; END IF; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; FETCH 1; FETCH READINGS; STORE READING; END IF; ! IF SHOW_DATA THEN; ELSE; ! Compute X-tics: FETCH 5; STORE X_MAJOR; FETCH NUMBER_POINTS; FETCH 20; IDIV; FETCH 1; ADD; STORE X_TIC; SELECT TRIG_COUNT; CASE 1; CASE RANGE 2,20; FETCH SAMP_COUNT; STORE X_TIC; FETCH NUMBER_POINTS; FETCH 20; LE; IF STACK THEN; FETCH 1; STORE X_TIC; FETCH SAMP_COUNT; STORE X_MAJOR; END IF; CASE ELSE; FETCH SAMP_COUNT; FETCH TRIG_COUNT; FETCH 20; IDIV; FETCH 1; ADD; MUL; STORE X_TIC; END SELECT; FETCH 1; STORE SHOW_DATA; END IF; END IF; END ACTIONS; ! ACTIONS TICKER; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 2; DIV; STORE MID_DATA; FETCH MAX_VIEW; FETCH MIN_VIEW; SUB; FETCH .125; MUL; STORE Y_TIC; FETCH Y_TIC; FETCH 4.3; MUL; DUP; FETCH MID_DATA; ADD; STORE MAX_DATA; FETCH MID_DATA; SWAP; SUB; STORE MIN_DATA; END ACTIONS; ! ACTIONS START_VIEW; FETCH EXECUTE; FETCH 1; LE; IF STACK THEN; FETCH SHOW_DATA; STORE OLD_SHOW_DATA; FETCH 0; STORE SHOW_DATA; GOSUB MEAS_ACT; FETCH EXECUTE; FETCH 1; LE; IF STACK THEN; IF ALL_IS_WELL THEN; GOSUB GET_THEM; END IF; FETCH SHOW_DATA; FETCH OLD_SHOW_DATA; BINEOR; FETCH Choices; FETCH (Choices) NULL; LE; AND; FETCH EXECUTE; AND; IF STACK THEN; GOSUB MENU; END IF; END IF; ELSE; ENABLE Choices Chart,OTHER,CAL; FETCH 1; STORE EXECUTE; OUTPUT STRING "FETC?"; GOSUB GET_THEM; GOSUB MENU; END IF; END ACTIONS; ! ACTIONS GET_THEM; GOSUB Wait_Query; ENTER READINGS FORMAT ASCII 0, NUMBER_POINTS; IF PANELMODE THEN; FETCH SHOW_DATA; GOSUB SHOW_READ; IF STACK THEN; GOSUB EXTRACT; ELSE; IF SHOW_DATA THEN; FETCH 1; STORE DMARK; FETCH 1; STORE VIEW_TRIG; FETCH 1; STORE VIEW_RDNG; END IF; END IF; END IF; GOSUB Post_Enter_Wait; END ACTIONS; ! !----- End Scrolling --------------------------------------- ! ACTIONS NO_SHOW; FETCH 0; STORE ALL_IS_WELL; IF SHOW_DATA THEN; FETCH 0; STORE SHOW_DATA; FETCH 0; STORE DATA_COUNT; INVALIDATE READING; END IF; END ACTIONS; ! ! --- Menu Control --- ! ACTIONS SHOW_DVM; HIDE MAIN_SET,DCV_ITEM; HIDE MAIN_SET,DCV1_ITEMS; HIDE MAIN_SET,DCV2_ITEMS; HIDE MAIN_SET,TEMP_ITEMS; HIDE MAIN_SET,RES_ITEMS; HIDE FRES_ITEMS; HIDE DCV1_ITEMS,DCV1_RES; HIDE DCV2_ITEMS,DCV2_RES; HIDE RES_ITEMS,RES_RES; SELECT FUNCTION; CASE DCV; IF TERM THEN; IF DCV_AUTO2 THEN; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB DVRES2; SHOW MAIN_SET,DCV2_ITEMS; ELSE; IF DCV_AUTO1 THEN; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; GOSUB DVRES1; SHOW MAIN_SET,DCV1_ITEMS; END IF; SHOW MAIN_SET,DCV_ITEM; CASE RAT; IF DCV_AUTO1 THEN; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; IF DCV_AUTO2 THEN; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB DVRES1; GOSUB DVRES2; SHOW MAIN_SET,DCV1_ITEMS; SHOW MAIN_SET,DCV2_ITEMS; CASE DIFF; IF DCV_AUTO1 THEN; ELSE; SHOW DCV1_ITEMS,DCV1_RES; END IF; IF DCV_AUTO2 THEN; ELSE; SHOW DCV2_ITEMS,DCV2_RES; END IF; GOSUB DVRES1; GOSUB DVRES2; SHOW MAIN_SET,DCV1_ITEMS; SHOW MAIN_SET,DCV2_ITEMS; CASE TEMP; GOSUB Temp_Menu; SHOW MAIN_SET,TEMP_ITEMS; CASE ELSE; IF RES_AUTO THEN; ELSE; SHOW RES_ITEMS,RES_RES; END IF; GOSUB RRES; FETCH (FUNCTION)FRES; FETCH FUNCTION; EQ; IF STACK THEN; SHOW Fres_Items; END IF; SHOW MAIN_SET,RES_ITEMS; END SELECT; SHOW SET_UP,MAIN_SET; END ACTIONS; ! ACTIONS SIMU_OR_CLICK; IF SHOW_DATA THEN; SHOW RUN,WHAT_GRID; END IF; SHOW RUN,SHOW_MARKER; SHOW RUN,XY_GRID; END ACTIONS; ! ACTIONS SIMULATION; FETCH LIVEMODE; FETCH WASLIVE; NE; IF STACK THEN; GOSUB MENU; END IF; END ACTIONS; ! ACTIONS MENU; IF Edit_Coef THEN; GET User_Coef_C7; fetch 0; store Edit_Coef; END IF; IF PANELMODE THEN; FETCH LIVEMODE; STORE WASLIVE; HIDE MULTIMETER,SET_UP; HIDE CHANGE_COEFS; HIDE SET_UP,MAIN_SET; HIDE SET_UP,MIDI_XY; HIDE SET_UP,MIDI_SGL; HIDE SET_UP,MINI_XY; HIDE SET_UP,MINI_SGL; HIDE MINI_SGL,MS_SIMU; HIDE MIDI_XY,XY_SIMU; HIDE SET_UP,TRIGGERS; HIDE SET_UP,NULLS; HIDE SET_UP,MATH_OPT; HIDE MULTIMETER,RUN; HIDE RUN,XY_GRID; HIDE RUN,BR_SCAN; HIDE RUN,BR_READ; HIDE RUN,WHAT_GRID; HIDE RUN,SHOW_MARKER; HIDE MULTIMETER,FETCHER; HIDE MULTIMETER,SEND_TRIGGER; HIDE MULTIMETER,ABOUT_ID; HIDE MULTIMETER,STATUS_INST; HIDE MULTIMETER,Errors; HIDE MULTIMETER,Chart; HIDE MULTIMETER,OTHER; HIDE MULTIMETER,Calibration; SELECT Choices; CASE MATH; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; EQ; FETCH EXECUTE; FETCH 1; EQ; AND; IF STACK THEN; FETCH 0; STORE EXECUTE; END IF; SELECT EXECUTE; CASE 0; GOSUB Single_vs_Array; SHOW SET_UP,MATH_OPT; SHOW MULTIMETER,SET_UP; CASE 1; IF SHOW_DATA THEN; SHOW RUN,BR_SCAN; SHOW RUN,BR_READ; END IF; GOSUB SIMU_OR_CLICK; SHOW MULTIMETER,RUN; CASE 2; SHOW MULTIMETER,SEND_TRIGGER; CASE ELSE; SHOW MULTIMETER,FETCHER; END SELECT; CASE TRIGGER; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; EQ; FETCH EXECUTE; FETCH 1; EQ; AND; IF STACK THEN; FETCH 0; STORE EXECUTE; END IF; SELECT EXECUTE; CASE 0; GOSUB Single_vs_Array; SHOW SET_UP,TRIGGERS; SHOW MULTIMETER,SET_UP; CASE 1; IF SHOW_DATA THEN; SHOW RUN,BR_SCAN; SHOW RUN,BR_READ; END IF; GOSUB SIMU_OR_CLICK; SHOW MULTIMETER,RUN; CASE 2; SHOW MULTIMETER,SEND_TRIGGER; CASE ELSE; SHOW MULTIMETER,FETCHER; END SELECT; CASE NULL; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; EQ; FETCH EXECUTE; FETCH 1; EQ; AND; IF STACK THEN; FETCH 0; STORE EXECUTE; END IF; SELECT EXECUTE; CASE 0; GOSUB Single_vs_Array; SHOW SET_UP,NULLS; SHOW MULTIMETER,SET_UP; CASE 1; IF SHOW_DATA THEN; SHOW RUN,BR_SCAN; SHOW RUN,BR_READ; END IF; GOSUB SIMU_OR_CLICK; SHOW MULTIMETER,RUN; CASE 2; SHOW MULTIMETER,SEND_TRIGGER; CASE ELSE; SHOW MULTIMETER,FETCHER; END SELECT; CASE SET_UP; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; EQ; FETCH EXECUTE; FETCH 1; EQ; AND; IF STACK THEN; FETCH 0; STORE EXECUTE; END IF; SELECT EXECUTE; CASE 0; FETCH TRIG_COUNT; FETCH SAMP_COUNT; MUL; FETCH 1; GT; IF STACK THEN; IF LIVEMODE THEN; ELSE; SHOW MIDI_XY,XY_SIMU; END IF; SHOW SET_UP,MIDI_XY; ELSE; SHOW SET_UP,MIDI_SGL; END IF; GOSUB SHOW_DVM; SHOW MULTIMETER,SET_UP; CASE 1; IF SHOW_DATA THEN; SHOW RUN,BR_SCAN; SHOW RUN,BR_READ; END IF; GOSUB SIMU_OR_CLICK; SHOW MULTIMETER,RUN; CASE 2; SHOW MULTIMETER,SEND_TRIGGER; CASE ELSE; SHOW MULTIMETER,FETCHER; END SELECT; CASE CAL; SHOW MULTIMETER,Calibration; CASE Chart; SHOW MULTIMETER,Chart; CASE STATUS_INST; SHOW MULTIMETER,STATUS_INST; CASE ERRORS; SHOW MULTIMETER,Errors; CASE ABOUT_ID; SHOW MULTIMETER,ABOUT_ID; CASE ELSE; SHOW MULTIMETER,OTHER; END SELECT; END IF; END ACTIONS; ! ! --- END Menu Control --- ! ! ACTIONS Find_Units; SELECT Math; CASE SCALE; FETCH STRING "(Scaled)"; CASE ELSE; SELECT FUNCTION; CASE DCV; FETCH STRING "Volts DC"; CASE RAT; FETCH STRING "V / V"; CASE DIFF; FETCH STRING "delta V"; CASE TEMP; FETCH STRING "Degrees"; CASE ELSE; FETCH STRING "Ohms"; END SELECT; END SELECT; ! SELECT FUNCTION; CASE RAT; FETCH Volt1_NULL; IF STACK THEN; FETCH STRING "*"; CATSTR; END IF; FETCH Volt2_NULL; CASE DIFF; FETCH 0; CASE TEMP; FETCH Temp_NULL; CASE DCV; IF TERM THEN; FETCH Volt2_NULL; ELSE; FETCH Volt1_NULL; END IF; CASE ELSE; FETCH FRES_NULL; END SELECT; IF STACK THEN; FETCH STRING "*"; CATSTR; END IF; STORE UNITS; END ACTIONS; ! ACTIONS PRE_ENABLE; CLEAR; OUTPUT STRING "*RST;*CLS"; FLUSH; ! Added for serial interface SELECT ADDR; CASE RANGE 1,99; OUTPUT STRING ":SYST:INT?"; FLUSH; GOSUB Enter_String; FETCH STRING_STACK; FETCH STRING "232"; POS; IF STACK THEN; OUTPUT STRING ":SYST:REM"; FLUSH; END IF; CASE ELSE; END SELECT; OUTPUT STRING "CONF:VOLT"; FLUSH; ! Configure & suspend auto trigger SET Preset_Status; ENABLE Choices Chart,OTHER,CAL; ENABLE TRIG BUS; END ACTIONS; ! ACTIONS SEND_CORE; OUTPUT FUNCTION TABLE "DC","RAT","DIFF","FRES","RES","TEMP"; IF STACK THEN; OUTPUT STRING "?"; END IF; ! SELECT FUNCTION; CASE DCV; IF TERM THEN; FETCH VOLT_APER; FETCH DCV_RANGE2; FETCH DCV_AUTO2; ELSE; FETCH VOLT_APER; FETCH DCV_RANGE1; FETCH DCV_AUTO1; END IF; CASE RAT; FETCH VOLT_APER; FETCH DCV_RANGE1; FETCH DCV_AUTO1; CASE DIFF; FETCH VOLT_APER; FETCH DCV_RANGE1; FETCH DCV_AUTO1; CASE TEMP; OUTPUT TEMP_Transducer TABLE " TC,"," THER,"," FRTD,"; SELECT TEMP_Transducer; CASE TC; OUTPUT TC_Type TABLE "B","E","J","K","N","R","S","T"; CASE THER; OUTPUT STRING "5K"; CASE ELSE; OUTPUT FRTD_Type TABLE "85","91","USER"; END SELECT; OUTPUT STRING ",1,"; SELECT TEMP_APER; CASE D4; FETCH 0.0001; CASE D5; FETCH 0.00001; CASE PLC1; FETCH 0.000003; CASE PLC2; FETCH 0.0000022; CASE PLC10; FETCH 0.000001; CASE PLC20; FETCH 0.0000008; CASE PLC100; FETCH 0.0000003; CASE ELSE; FETCH 0.00000022; END SELECT; FETCH .9; MUL; OUTPUT STACK FORMAT '", ",K'; FETCH 1; DUP; DUP; CASE ELSE; FETCH FRES_APER; FETCH RES_RANGE; FETCH RES_AUTO; END SELECT; IF STACK THEN; DROP; DROP; ELSE; DUP; FETCH 0.875; MUL; OUTPUT STACK FORMAT '" ",K'; SWAP; DUP; FETCH (VOLT_APER)PLC10; EQ; IF STACK THEN; DROP; DROP; ELSE; SELECT STACK; CASE (VOLT_APER)D4; FETCH 0.0001; CASE (VOLT_APER)D5; FETCH 0.00001; CASE (VOLT_APER)PLC1; FETCH 0.000003; CASE (VOLT_APER)PLC2; FETCH 0.0000022; CASE (VOLT_APER)PLC10; FETCH 0.000001; CASE (VOLT_APER)PLC20; FETCH 0.0000008; CASE (VOLT_APER)PLC100; FETCH 0.0000003; CASE ELSE; FETCH 0.00000022; END SELECT; MUL; FETCH .9; MUL; OUTPUT STACK FORMAT '", ",K'; END IF; END IF; SELECT FUNCTION; CASE DCV; IF TERM THEN; OUTPUT STRING ",(@FRON2)"; END IF; CASE TEMP; CASE ELSE; END SELECT; END ACTIONS; ! ACTIONS FIND_NUM_POINTS; FETCH SAMP_COUNT; FETCH TRIG_COUNT; MUL; STORE NUMBER_POINTS; SET NUMBER_POINTS; FETCH NUMBER_POINTS; FETCH MAX_SIZE; GT; IF STACK THEN; FETCH 0; STORE ALL_IS_WELL; END IF; END ACTIONS; ! ACTIONS NEED_OPTION; SELECT FUNCTION; CASE FRES; FETCH FRES_APER; FETCH RES_AUTO; CASE RES; FETCH FRES_APER; FETCH RES_AUTO; CASE TEMP; FETCH TEMP_APER; FETCH 0; CASE DCV; IF TERM THEN; FETCH VOLT_APER; FETCH DCV_AUTO2; ELSE; FETCH VOLT_APER; FETCH DCV_AUTO1; END IF; CASE ELSE; IF DCV_AUTO2 THEN; FETCH VOLT_APER; FETCH DCV_AUTO1; ELSE; FETCH (VOLT_APER)PLC1; FETCH 1; ! Force "Need Option" END IF; END SELECT; IF STACK THEN; FETCH (VOLT_APER)PLC10; NE; ELSE; DROP; FETCH 0; END IF; ! ! Ocomp / limits: SELECT FUNCTION; CASE FRES; FETCH OCOMP; OR; FETCH Power_Limit; OR; FETCH Volt_Limit; OR; CASE RES; FETCH OCOMP; OR; CASE TEMP; SELECT TEMP_Transducer; CASE FRTD; SELECT USER_FRTD; CASE 2; FETCH OCOMP; OR; CASE ELSE; END SELECT; CASE ELSE; END SELECT; CASE ELSE; END SELECT; ! ! Trigger/Sample: IF STACK THEN; FETCH 1; ELSE; FETCH TRIG; FETCH (TRIG) IMM; NE; FETCH TRIG_COUNT; FETCH 1; GT; OR; FETCH DELAY_AUTO; NOT; OR; FETCH SAMP_COUNT; FETCH 1; GT; OR; END IF; END ACTIONS; ! ACTIONS MEAS_ACT; FETCH ALL_IS_WELL; FETCH SHOW_DATA; AND; NOT; IF STACK THEN; FETCH 1; STORE ALL_IS_WELL; GOSUB FIND_NUM_POINTS; END IF; IF ALL_IS_WELL THEN; ! If no options are set (other than range/resolution) use MEAS. ! Otherwise use INIT. IF ENTRY_MODE THEN; FETCH 1; ELSE; GOSUB NEED_OPTION; END IF; IF STACK THEN; IF ENTRY_MODE THEN; OUTPUT STRING "INIT"; FLUSH; SELECT TRIG; CASE BUS; TRIGGER; FETCH TRIG_COUNT; CASE ELSE; FETCH 0; END SELECT; FETCH 2; GE; IF STACK THEN; FETCH TRIG_COUNT; FETCH 1; SUB; STORE VIEW_TRIG; FETCH 2; STORE EXECUTE; GOSUB MENU; ELSE; FETCH ENTRY_MODE; FETCH 2; EQ; IF STACK THEN; FETCH 3; STORE EXECUTE; GOSUB MENU; ELSE; ENABLE Choices Chart,OTHER,CAL; OUTPUT STRING "FETC?"; FLUSH; END IF; END IF; ELSE; OUTPUT STRING "READ?"; FLUSH; END IF; ELSE; OUTPUT STRING "MEAS:"; FETCH 1; GOSUB SEND_CORE; FLUSH; END IF; HIDE Null_Next; ELSE; NOTIFY "Too many points for ID."; SKIP ERRCHECK; FETCH 1; STORE SKIP_CHECK; END IF; END ACTIONS; ! COMPONENT OPC_MODE NOPOKEINITIAL; TYPE DISCRETE; VALUES OFF,ON,ONCE; INITIAL ON; SET ACTIONS; SELECT OPC_MODE; CASE ONCE; OUTPUT STRING "*OPC?"; GOSUB Enter_Stack; DROP; FETCH 0; STORE OPC_MODE; CASE ON; IF RECALLING THEN; OUTPUT STRING ";*OPC?"; GOSUB Enter_Stack; DROP; ELSE; SKIP ERRCHECK; END IF; CASE ELSE; SKIP ERRCHECK; END SELECT; END ACTIONS; END COMPONENT; ! ACTIONS OPC; FETCH OPC_MODE; FETCH RECALLING; NOT; AND; IF STACK THEN; OUTPUT STRING ";*OPC?"; GOSUB Enter_Stack; DROP; ELSE; FLUSH; END IF; END ACTIONS; ! ACTIONS HALTER; NOTIFY "Reading was in progress...reading aborted"; ENABLE Choices Chart,OTHER,CAL; CLEAR; OUTPUT STRING "ABORT"; FLUSH; END ACTIONS; ! COMPONENT Fast_Controller NOERRCHECK NOPOKEINITIAL; TYPE DISCRETE; VALUES NORM,FAST; INITIAL NORM; END COMPONENT; ACTIONS Wait_Query; ! Controllers are too fast for the instruments. FLUSH; IF Fast_Controller THEN; FETCH ADDR; FETCH 100; GT; IF STACK THEN; SPOLL; FETCH 4; BIT; NOT; FETCH LIVEMODE; AND; IF STACK THEN; WAIT TIME .06; SPOLL; FETCH 4; BIT; NOT; IF STACK THEN; WAIT TIME .06; SPOLL; FETCH 4; BIT; NOT; IF STACK THEN; WAIT TIME .06; END IF; END IF; END IF; ELSE; WAIT TIME 0.06; END IF; END IF; END ACTIONS; ! ACTIONS Post_Enter_Wait; ! Controllers are too fast for the instruments. IF Fast_Controller THEN; FETCH ADDR; FETCH 100; GT; IF STACK THEN; SPOLL; FETCH 4; BIT; FETCH LIVEMODE; AND; IF STACK THEN; WAIT TIME .06; SPOLL; FETCH 4; BIT; IF STACK THEN; WAIT TIME .06; SPOLL; FETCH 4; BIT; IF STACK THEN; WAIT TIME .06; END IF; END IF; END IF; ELSE; WAIT TIME 0.06; END IF; END IF; END ACTIONS; ! ACTIONS Enter_String; GOSUB Wait_Query; ENTER STRING_STACK FORMAT "K"; GOSUB Post_Enter_Wait; END ACTIONS; ACTIONS Enter_Stack; GOSUB Wait_Query; ENTER STACK FORMAT "K"; GOSUB Post_Enter_Wait; END ACTIONS; ACTIONS Enter_Default; GOSUB Wait_Query; ENTER DEFAULT FORMAT "K"; GOSUB Post_Enter_Wait; END ACTIONS; ! COMPONENT Sync NOTSAVED; TYPE INTEGER; SET ACTIONS; GET Sync; END ACTIONS; GET ACTIONS; GET USER_FRTD; GET User_Alpha; GET User_Beta; GET User_Delta; get User_Coef_C7; GET Math; GET Scale_Gain; GET Scale_Offset; GET FUNCTION; GET OCOMP; GET Power_Limit; GET Volt_Limit; GET Volt_Limit_Value; GET Volt1_NULL_Value; GET Volt1_NULL; GET Volt2_NULL_Value; GET Volt2_NULL; GET Fres_NULL_Value; GET FRES_NULL; GET Temp_NULL_Value; GET Temp_NULL; GET TERM; GET TRIG_COUNT; GET SAMP_COUNT; GET TRIG; GET VOLT_APER; GET FRES_APER; GET TEMP_APER; GET DCV_AUTO1; GET DCV_AUTO2; GET RES_AUTO; GET DCV_RANGE1; GET DCV_RANGE2; GET RES_RANGE; GET DELAY_AUTO; GET DELAY; GET Status_Enable; GET Event_Enable; GET Oper_Enable; GET Oper_PTR; GET Oper_NTR; GET Questionable_Enable; GET Questionable_PTR; GET Questionable_NTR; GET PSC; GET BeepState; GET Display_State; GET Chart_State; GET Chart_Span; GET Chart_Offset; GET Secure_State; GET Cal_Count; GET Cal_Output; GET Cal_Value; GET Cal_String; GET TEMP_Transducer; GET TC_Type; GET TC_RJUN_Type; GET TC_RJUN_Temp; GET FRTD_Type; GET FRTD_Resistance; GET Temp_Units; END ACTIONS; END COMPONENT; ! COMPONENT User_Coef_A4 NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE -1,1; SET ACTIONS; if recalling then; SET User_Coef_C7; else; skip errcheck; end if; END ACTIONS; GET ACTIONS; GET User_Coef_C7; END ACTIONS; END COMPONENT; COMPONENT User_Coef_B4 clone User_Coef_A4; COMPONENT User_Coef_A7 clone User_Coef_A4; COMPONENT User_Coef_B7 clone User_Coef_A4; ! COMPONENT User_Coef_C7 NOPOKEINITIAL; TYPE CONTINUOUS; VALUES RANGE -1,1; SET ACTIONS; fetch 0; store Edit_Coef; select USER_FRTD; case 2; GOSUB NO_SHOW; OUTPUT User_Coef_A4 FORMAT '"TEMP:TRAN:FRTD:USER:COEF ",K'; OUTPUT User_Coef_B4 FORMAT '", ",K'; OUTPUT User_Coef_A7 FORMAT '", ",K'; OUTPUT User_Coef_B7 FORMAT '", ",K'; OUTPUT User_Coef_C7 FORMAT '", ",K'; GOSUB OPC; case else; end select; END ACTIONS; PANEL SET ACTIONS; HIDE CHANGE_COEFS; GOSUB MENU; END ACTIONS; GET ACTIONS; select USER_FRTD; case 2; OUTPUT STRING "TEMP:TRAN:FRTD:USER:COEF?"; GOSUB Wait_Query; ENTER User_Coef_A4 FORMAT "#,K"; ENTER User_Coef_B4 FORMAT "#,K"; ENTER User_Coef_A7 FORMAT "#,K"; ENTER User_Coef_B7 FORMAT "#,K"; ENTER User_Coef_C7 FORMAT "K"; GOSUB Post_Enter_Wait; case else; end select; END ACTIONS; END COMPONENT; ! COMPONENT Edit_Coef NOTSAVED noerrcheck; type integer; initial 0; panel set actions; HIDE SET_UP; SHOW CHANGE_COEFS; fetch 1; store Edit_Coef; end actions; END COMPONENT; ! COMPONENT Cancel_Edit NOTSAVED; type integer; initial 0; set actions; fetch 0; store Edit_Coef; GET User_Coef_C7; end actions; panel set actions; HIDE CHANGE_COEFS; GOSUB MENU; end actions; END COMPONENT; ! ! PANEL MULTIMETER; POSITION 1,1; SIZE 428,213; ! TEXT "Multimeter"; POSITION 99,185; FONT 15,25; END TEXT; ! BUTTON RESET; POSITION 6,189; SIZE 55,19; BACKGROUND (0,130,70),0; LABEL "Reset"; END BUTTON; ! DISCRETE Choices; POSITION 287,189; SIZE 136,19; BACKGROUND (75,0,240),0; LABEL "Measure Panel","Trigger Panel","Math Panel","Null Panel", "Chart Panel","Other Panel","Calibration", "Status Panel","Error Panel","About Panel"; END DISCRETE; ! PANEL CHANGE_COEFS; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; TEXT 7,160 "Edit User ITS-90 Coefficients for SPRT sensors"; TEXT 7,141 "Setting C7 will send values and exit edit mode"; TEXT 297,116 "A4"; CONTINUOUS User_Coef_A4; POSITION 321,116; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; TEXT 297,94 "B4"; CONTINUOUS User_Coef_B4; POSITION 321,94; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; TEXT 297,72 "A7"; CONTINUOUS User_Coef_A7; POSITION 321,72; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; TEXT 297,50 "B7"; CONTINUOUS User_Coef_B7; POSITION 321,50; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; TEXT 297,28 "C7"; CONTINUOUS User_Coef_C7; POSITION 321,28; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; BUTTON Cancel_Edit; position 7,6; size 414,19; label "Cancel Edit"; END BUTTON; END PANEL; ! PANEL SET_UP; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! PANEL MAIN_SET; POSITION 2,1; SIZE 424,135; TEXT 5,117 "Function"; DISCRETE FUNCTION; POSITION 94,115; SIZE 105,19; LABEL "DC Volts","Ratio","Difference","4Wire Ohms", "2Wire Ohms", "Temperature"; END DISCRETE; ! TEXT 225,117 "Math Func"; DISCRETE Math; POSITION 321,115; SIZE 98,19; LABEL "Off","Average","Scale"; END DISCRETE; ! PANEL DCV1_ITEMS; POSITION 0,70; SIZE 424,43; ! TEXT 5,25 "Range Ch1"; CONTINUOUS DCV_RANGE1; POSITION 101,23; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; ! TEXT 225,25 "AutoRange1"; TOGGLE DCV_AUTO1; POSITION 321,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! PANEL DCV1_RES; POSITION 0,2; SIZE 97,21; TEXT 5,1 "Resolution"; END PANEL; PANEL DCV1_RES0; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "100. nV","10.0 nV","3.00 nV","2.20 nV", "1.00 nV","0.80 nV","0.30 nV","0.22 nV"; END DISCRETE; END PANEL; PANEL DCV1_RES1; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 uV","100. nV","30.0 nV","22.0 nV", "10.0 nV","8.00 nV","3.00 nV","2.20 nV"; END DISCRETE; END PANEL; PANEL DCV1_RES2; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "10.0 uV","1.00 uV","300. nV","220. nV", "100. nV","80.0 nV","30.0 nV","22.0 nV"; END DISCRETE; END PANEL; PANEL DCV1_RES3; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "100. uV","10.0 uV","3.00 uV","2.20 uV", "1.00 uV","0.80 uV","0.30 uV","0.22 uV"; END DISCRETE; END PANEL; PANEL DCV1_RES4; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 mV","100. uV","30.0 uV","22.0 uV", "10.0 uV","8.00 uV","3.00 uV","2.20 uV"; END DISCRETE; END PANEL; ! PANEL DCV1_RES5; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "10.0 mV","1.00 mV","300. uV","220. uV", "100. uV","80.0 uV","30.0 uV","22.0 uV"; END DISCRETE; END PANEL; ! TEXT 225,3 "Aperture"; DISCRETE VOLT_APER; POSITION 321,1; SIZE 98,19; LABEL "0.02 PLC"," 0.2 PLC"," 1 PLC"," 2 PLC", " 10 PLC"," 20 PLC"," 100 PLC"," 200 PLC"; END DISCRETE; END PANEL; ! PANEL DCV_ITEM; POSITION 0,48; SIZE 424,21; TEXT 5,3 "Channel"; TOGGLE TERM; POSITION 101,1; SIZE 98,19; LABEL "Front 1","Front 2"; END TOGGLE; END PANEL; ! PANEL DCV2_ITEMS; POSITION 0,4; SIZE 424,43; ! TEXT 5,25 "Range Ch2"; CONTINUOUS DCV_RANGE2; POSITION 101,23; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; ! TEXT 225,25 "AutoRange2"; TOGGLE DCV_AUTO2; POSITION 321,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! PANEL DCV2_RES; POSITION 0,2; SIZE 97,21; TEXT 5,1 "Resolution"; END PANEL; PANEL DCV2_RES0; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "100. nV","10.0 nV","3.00 nV","2.20 nV", "1.00 nV","0.80 nV","0.30 nV","0.22 nV"; END DISCRETE; END PANEL; PANEL DCV2_RES1; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 uV","100. nV","30.0 nV","22.0 nV", "10.0 nV","8.00 nV","3.00 nV","2.20 nV"; END DISCRETE; END PANEL; PANEL DCV2_RES2; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "10.0 uV","1.00 uV","300. nV","220. nV", "100. nV","80.0 nV","30.0 nV","22.0 nV"; END DISCRETE; END PANEL; PANEL DCV2_RES3; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "100. uV","10.0 uV","3.00 uV","2.20 uV", "1.00 uV","0.80 uV","0.30 uV","0.22 uV"; END DISCRETE; END PANEL; PANEL DCV2_RES4; POSITION 100,0; SIZE 100,21; DISCRETE VOLT_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 mV","100. uV","30.0 uV","22.0 uV", "10.0 uV","8.00 uV","3.00 uV","2.20 uV"; END DISCRETE; END PANEL; ! TEXT 225,3 "Aperture"; DISCRETE VOLT_APER; POSITION 321,1; SIZE 98,19; LABEL "0.02 PLC"," 0.2 PLC"," 1 PLC"," 2 PLC", " 10 PLC"," 20 PLC"," 100 PLC"," 200 PLC"; END DISCRETE; END PANEL; ! PANEL TEMP_ITEMS; POSITION 0,2; SIZE 424,109; ! TEXT 5,91 "Resolution"; DISCRETE TEMP_APER; POSITION 101,89; SIZE 98,19; LABEL "100. uDeg","10.0 uDeg","3.00 uDeg","2.20 uDeg", "1.00 uDeg","0.80 uDeg","0.30 uDeg","0.22 uDeg"; END DISCRETE; ! TEXT 225,91 "Aperture"; DISCRETE TEMP_APER; POSITION 321,89; SIZE 98,19; LABEL "0.02 PLC"," 0.2 PLC"," 1 PLC"," 2 PLC", " 10 PLC"," 20 PLC"," 100 PLC"," 200 PLC"; END DISCRETE; TEXT 5,69 "Transducer"; DISCRETE TEMP_Transducer; POSITION 101,67; SIZE 98,19; LABEL "T-Couple","Thermistor","FRTD"; END DISCRETE; ! TEXT 225,69 "Units"; DISCRETE TEMP_UNITS; POSITION 321,67; SIZE 98,19; LABEL "C","F","K"; END DISCRETE; PANEL TC_PARMS; POSITION 0,22; SIZE 424,43; TEXT 5,25 "TC Type"; DISCRETE TC_Type; POSITION 101,23; SIZE 98,19; LABEL "B","E","J","K","N","R","S","T"; END DISCRETE; TEXT 5, 3 "Ref Type"; DISCRETE TC_RJUN_Type; POSITION 101,1; SIZE 98,19; LABEL "Fixed","Internal","Thermistor"; END DISCRETE; ! TEXT 225,3 "Ref Temp"; CONTINUOUS TC_RJUN_Temp; POSITION 321,1; SIZE 98,19; FORMAT "DD.DDDDDD"; STYLE "NOENGR"; END CONTINUOUS; END PANEL; ! PANEL THER_PARMS; POSITION 0,22; SIZE 424,43; TEXT 5,25 "Therm Type 5K"; END PANEL; ! PANEL FRTD_PARMS; POSITION 0,0; SIZE 424,65; TEXT 5,47 "FRTD Type"; DISCRETE FRTD_Type; POSITION 101,45; SIZE 98,19; LABEL "85","91","User"; END DISCRETE; TEXT 225,47 "R0 Value"; CONTINUOUS FRTD_Resistance; POSITION 321,45; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; ! panel frtd_ocomp; POSITION 0,0; SIZE 424,43; TEXT 5,3 "OffsetComp"; TOGGLE OCOMP; POSITION 101,1; SIZE 98,19; LABEL "Off","On"; END TOGGLE; end panel; ! PANEL FRTD_User2; POSITION 0,0; SIZE 424,43; BUTTON Edit_Coef; position 5,23; size 50,19; label "Edit"; END BUTTON; TEXT 61,25 "User Coef A4"; DISPLAY User_Coef_A4; POSITION 175,23; SIZE 98,19; FORMAT "7 DIGITS"; END DISPLAY; TEXT 297,25 "B4"; DISPLAY User_Coef_B4; POSITION 321,23; SIZE 98,19; FORMAT "7 DIGITS"; END DISPLAY; TEXT 5,3 "A7"; DISPLAY User_Coef_A7; POSITION 29,1; SIZE 98,19; FORMAT "7 DIGITS"; END DISPLAY; TEXT 151,3 "B7"; DISPLAY User_Coef_B7; POSITION 175,1; SIZE 98,19; FORMAT "7 DIGITS"; END DISPLAY; TEXT 297,3 "C7"; DISPLAY User_Coef_C7; POSITION 321,1; SIZE 98,19; FORMAT "7 DIGITS"; END DISPLAY; END PANEL; ! PANEL FRTD_User1; POSITION 0,0; SIZE 424,43; TEXT 5,25 "User Alpha"; CONTINUOUS User_Alpha; POSITION 101,23; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; ! TEXT 225,25 "User Beta"; CONTINUOUS User_Beta; POSITION 321,23; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; ! TEXT 5,3 "User Delta"; CONTINUOUS User_Delta; POSITION 101,1; SIZE 98,19; FORMAT "7 DIGITS"; END CONTINUOUS; END PANEL; END PANEL; END PANEL; ! PANEL RES_ITEMS; POSITION 0,4; SIZE 424,109; ! TEXT 5,91 "Range"; CONTINUOUS RES_RANGE; POSITION 101,89; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; ! TEXT 225,91 "Auto Range"; TOGGLE RES_AUTO; POSITION 321,89; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! PANEL RES_RES; POSITION 0,68; SIZE 97,21; TEXT 5,1 "Resolution"; END PANEL; PANEL RES_RES0; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "100. uOhm","10.0 uOhm","3.00 uOhm","2.20 uOhm", "1.00 uOhm","0.80 uOhm","0.30 uOhm","0.22 uOhm"; END DISCRETE; END PANEL; PANEL RES_RES1; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 mOhm","100. uOhm","30.0 uOhm","22.0 uOhm", "10.0 uOhm","8.00 uOhm","3.00 uOhm","2.20 uOhm"; END DISCRETE; END PANEL; PANEL RES_RES2; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "10.0 mOhm","1.00 mOhm","300. uOhm","220. uOhm", "100. uOhm","80.0 uOhm","30.0 uOhm","22.0 uOhm"; END DISCRETE; END PANEL; PANEL RES_RES3; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "100. mOhm","10.0 mOhm","3.00 mOhm","2.20 mOhm", "1.00 mOhm","0.80 mOhm","0.30 mOhm","0.22 mOhm"; END DISCRETE; END PANEL; PANEL RES_RES4; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "1.00 Ohm ","100. mOhm","30.0 mOhm","22.0 mOhm", "10.0 mOhm","8.00 mOhm","3.00 mOhm","2.20 mOhm"; END DISCRETE; END PANEL; PANEL RES_RES5; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "10.0 Ohm ","1.00 Ohm ","300. mOhm","220. mOhm", "100. mOhm","80.0 mOhm","30.0 mOhm","22.0 mOhm"; END DISCRETE; END PANEL; PANEL RES_RES6; POSITION 100,66; SIZE 100,21; DISCRETE FRES_APER; POSITION 1,1; SIZE 98,19; LABEL "100. Ohm","10.0 Ohm","3.00 Ohm","2.20 Ohm", "1.00 Ohm","0.80 Ohm","0.30 Ohm","0.22 Ohm"; END DISCRETE; END PANEL; ! TEXT 225,69 "Aperture"; DISCRETE FRES_APER; POSITION 321,67; SIZE 98,19; LABEL "0.02 PLC"," 0.2 PLC"," 1 PLC"," 2 PLC", " 10 PLC"," 20 PLC"," 100 PLC"," 200 PLC"; END DISCRETE; ! TEXT 5,47 "OffsetComp"; TOGGLE OCOMP; POSITION 101,45; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! PANEL Fres_Items; POSITION 0,0; SIZE 424,43; ! TEXT 5,25 "PowerLimit"; TOGGLE Power_Limit; POSITION 101,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! TEXT 5,3 "Volt Limit"; TOGGLE Volt_Limit; POSITION 101,1; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! TEXT 225,3 "LimitValue"; CONTINUOUS Volt_Limit_Value; POSITION 321,1; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; END PANEL; END PANEL; END PANEL; ! PANEL MINI_SGL; POSITION 25,159; SIZE 400,21; DISPLAY READING; POSITION 4,1; SIZE 112,19; FORMAT "7 DIGITS"; END DISPLAY; DISPLAY UNITS; POSITION 125,1; SIZE 133,19; FORMAT "AAAAAAAAA"; BACKGROUND (220,211,184),0; FOREGROUND (0,0,0),100; END DISPLAY; PANEL MS_SIMU; POSITION 265,0; SIZE 130,21; TEXT 2,3 "Simulated Data"; END PANEL; END PANEL; ! PANEL MIDI_SGL; POSITION 15,149; SIZE 400,31; DISPLAY READING; POSITION 4,1; SIZE 200,29; FONT 15,25; FORMAT "7 DIGITS"; END DISPLAY; DISPLAY UNITS; POSITION 212,1; SIZE 180,29; FONT 15,25; FORMAT "AAAAAAAAA"; BACKGROUND (220,211,184),0; FOREGROUND (0,0,0),100; END DISPLAY; END PANEL; ! PANEL MINI_XY; POSITION 25,159; SIZE 400,21; XY V_READ; POSITION 4,1; SIZE 160,19; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE FRAME X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; STATE SHOW_DATA; END TRACE; END XY; ! BUTTON EXECUTE; POSITION 171,1; SIZE 148,19; LABEL "Expand Display"; END BUTTON; END PANEL; ! PANEL MIDI_XY; POSITION 15,139; SIZE 408,41; XY V_READ; POSITION 4,1; SIZE 160,39; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE FRAME X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; STATE SHOW_DATA; END TRACE; END XY; ! BUTTON EXECUTE; POSITION 171,21; SIZE 158,19; LABEL "Expand Display"; END BUTTON; BUTTON Start_Readings; POSITION 335,21; SIZE 71,19; LABEL "Start"; END BUTTON; PANEL XY_SIMU; POSITION 171,0; SIZE 164,20; TEXT 19,1 "Simulated Data"; END PANEL; END PANEL; ! PANEL MATH_OPT; POSITION 2,1; SIZE 424,157; FOREGROUND (255,255,255),100; ! TEXT 10,112 "Math Func"; DISCRETE Math; POSITION 110,112; SIZE 92,19; LABEL "Off","Average","Scale"; END DISCRETE; ! TEXT 10,84 "Scale:"; CONTINUOUS Scale_Gain; POSITION 110,82; SIZE 92,19; FORMAT "5 DIGITS"; END CONTINUOUS; ! TEXT 204,84 "* (Measure -"; CONTINUOUS Scale_Offset; POSITION 322,82; SIZE 92,19; FORMAT "5 DIGITS"; END CONTINUOUS; TEXT 414,84 ")"; ! TEXT 10,49 "Count"; DISPLAY Ave_Count; POSITION 110,49; SIZE 92,19; STYLE "NOENGR"; FORMAT "DDDDDDD"; END DISPLAY; ! TEXT 222,49 "Average"; DISPLAY Average; POSITION 322,49; SIZE 92,19; FORMAT "5 DIGITS"; END DISPLAY; ! TEXT 10,27 "Minimum"; DISPLAY Ave_Minimum; POSITION 110,27; SIZE 92,19; FORMAT "5 DIGITS"; END DISPLAY; ! TEXT 222,27 "Maximum"; DISPLAY Ave_Maximum; POSITION 322,27; SIZE 92,19; FORMAT "5 DIGITS"; END DISPLAY; ! TEXT 10,5 "Peak-Peak"; DISPLAY Ave_ptpeak; POSITION 110,5; SIZE 92,19; FORMAT "5 DIGITS"; END DISPLAY; ! TEXT 222,5 "Std Dev"; DISPLAY Ave_sdeviation; POSITION 322,5; SIZE 92,19; FORMAT "5 DIGITS"; END DISPLAY; END PANEL; ! PANEL TRIGGERS; POSITION 2,1; SIZE 424,157; FOREGROUND (255,255,255),100; ! TEXT 20,112 "Delay"; CONTINUOUS DELAY; POSITION 152,112; SIZE 121,19; STYLE "NOENGR"; FORMAT "DDDD.DDDDDD"; END CONTINUOUS; TOGGLE DELAY_AUTO; POSITION 280,112; SIZE 67,19; LABEL "Man","Auto"; END TOGGLE; ! TEXT 20,90 "Trigger Source"; DISCRETE TRIG; POSITION 152,90; SIZE 121,19; LABEL "Bus Trig","External","Immediate"; END DISCRETE; ! TEXT 20,68 "Trigger Count"; CONTINUOUS TRIG_COUNT; POSITION 152,68; SIZE 121,19; STYLE "NOENGR"; FORMAT "DDDDD"; END CONTINUOUS; ! TEXT 20,46 "Sample Count"; CONTINUOUS SAMP_COUNT; POSITION 152,46; SIZE 121,19; STYLE "NOENGR"; FORMAT "DDDDD"; END CONTINUOUS; ! BUTTON DEFAULT_TRIGGER; POSITION 11,2; SIZE 156,19; LABEL "Trigger Defaults"; END BUTTON; END PANEL; ! PANEL NULLS; POSITION 2,1; SIZE 424,157; FOREGROUND (255,255,255),100; ! PANEL Null_Next; POSITION 1,133; SIZE 422,22; BACKGROUND (255,255,0),100; TEXT "Notice: Take a reading to be used as the Null"; POSITION 5,1; FOREGROUND (0,0,0),0; END TEXT; END PANEL; ! BUTTON Read_Null; POSITION 170,111; SIZE 210,19; LABEL "Make Next Reading Null"; END BUTTON; TEXT 208,90 "Value"; TEXT 317,90 "State"; ! TEXT 20,71 "Ch 1 Volts Null"; CONTINUOUS Volt1_NULL_Value; POSITION 170,71; SIZE 121,19; FORMAT "7 DIGITS"; END CONTINUOUS; TOGGLE Volt1_NULL; POSITION 300,71; SIZE 80,19; LABEL "Off","On"; END TOGGLE; ! TEXT 20,49 "Ch 2 Volts Null"; CONTINUOUS Volt2_NULL_Value; POSITION 170,49; SIZE 121,19; FORMAT "7 DIGITS"; END CONTINUOUS; TOGGLE Volt2_NULL; POSITION 300,49; SIZE 80,19; LABEL "Off","On"; END TOGGLE; ! TEXT 20,27 "Resistance Null"; CONTINUOUS Fres_NULL_Value; POSITION 170,27; SIZE 121,19; FORMAT "7 DIGITS"; END CONTINUOUS; TOGGLE Fres_NULL; POSITION 300,27; SIZE 80,19; LABEL "Off","On"; END TOGGLE; ! TEXT 20,5 "Temperature Null"; CONTINUOUS Temp_NULL_Value; POSITION 170,5; SIZE 121,19; FORMAT "7 DIGITS"; END CONTINUOUS; TOGGLE Temp_NULL; POSITION 300,5; SIZE 80,19; LABEL "Off","On"; END TOGGLE; END PANEL; END PANEL; ! PANEL SEND_TRIGGER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! TEXT 20,150 "Click to determine when the measurements"; TEXT 20,130 "from the previous trigger are complete"; TOGGLE MEAS_READY; POSITION 99,108; SIZE 230,19; BACKGROUND (255,255,255),100; FOREGROUND (0,130,70),0; STYLE "HIGHLIGHT"; LABEL "Press to Wait for Ready","Ready for next Trigger"; END TOGGLE; ! TEXT 20,80 "Click 'TRIGGER' to send another trigger:"; BUTTON SEND_TRIG; POSITION 167,58; SIZE 94,19; LABEL "TRIGGER"; END BUTTON; ! BUTTON HALT_MEAS; POSITION 126,25; SIZE 176,19; BACKGROUND (230,30,30),0; LABEL "Halt Measurements"; END BUTTON; END PANEL; ! PANEL FETCHER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! TEXT 20,150 "To prevent an HP-IB time-out, Click button"; TEXT 20,130 "and wait for 'Ready' before fetching data"; TOGGLE MEAS_READY; POSITION 99,108; SIZE 230,19; BACKGROUND (255,255,255),100; FOREGROUND (0,130,70),0; STYLE "HIGHLIGHT"; LABEL "Press to Wait for Ready","Ready to Fetch Data"; END TOGGLE; ! TEXT 20,80 "Click 'FETCH' to enter the readings:"; BUTTON FETCH_READINGS; POSITION 167,58; SIZE 94,19; LABEL "FETCH"; END BUTTON; ! BUTTON HALT_MEAS; POSITION 126,25; SIZE 176,19; BACKGROUND (230,30,30),0; LABEL "Halt Measurements"; END BUTTON; END PANEL; ! PANEL RUN; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; PANEL XY_GRID; POSITION 2,2; SIZE 211,159; BUTTON READ_MAX; POSITION 4,139; LABEL "*->"; SIZE 40,19; END BUTTON; TEXT 50, 141 "Max:"; CONTINUOUS MAX_VIEW; POSITION 92,139; SIZE 109,19; FORMAT "6 DIGITS"; END CONTINUOUS; ! BUTTON READ_MIN; POSITION 4,21; LABEL "*->"; SIZE 40,19; END BUTTON; TEXT 50, 23 "Min:"; CONTINUOUS MIN_VIEW; POSITION 92,21; SIZE 109,19; FORMAT "6 DIGITS"; END CONTINUOUS; XY V_READ; POSITION 5,42; SIZE 201,95; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE G_GRID X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; CONNECT CONNECT_DATA; STATE SHOW_DATA; MARKER DMARK; FOREGROUND(255,255,0),100; TYPE POINT; STATE SHOW_DATA; END MARKER; END TRACE; END XY; TEXT "<-- Readings Index -->"; POSITION 6,4; FOREGROUND(0,0,0),100; END TEXT; END PANEL; ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PANEL SHOW_MARKER; POSITION 215,112; SIZE 210,71; TEXT 3,51 "Units"; DISPLAY UNITS; POSITION 70,49; SIZE 133,19; FORMAT "AAAAAAAAA"; BACKGROUND (220,211,184),0; FOREGROUND (0,0,0),100; END DISPLAY; ! TEXT 3,29 "Reading"; DISPLAY READING; POSITION 70,27; SIZE 133,19; FORMAT "7 DIGITS"; END DISPLAY; ! TEXT "Index Marker Control: "; POSITION 0,0; SIZE 205,19; FOREGROUND(0,0,0),0; END TEXT; END PANEL; ! PANEL WHAT_GRID; POSITION 207,5; SIZE 119,22; DISCRETE G_GRID; POSITION 13,1; SIZE 57,19; LABEL "None","Axes","Grid","Frame"; END DISCRETE; TOGGLE CONNECT_DATA; POSITION 75,1; SIZE 40,19; LABEL "..","-"; END TOGGLE; END PANEL; ! PANEL BR_SCAN; POSITION 215,88; SIZE 205,24; BACKGROUND(255,255,0),0; TEXT 3,1 "Trig #"; CONTINUOUS VIEW_TRIG; POSITION 70,1; SIZE 58,19; STYLE "NOENGR"; FORMAT "DDDD"; END CONTINUOUS; BUTTON DN_SCAN; POSITION 135,1; LABEL " < "; END BUTTON; BUTTON UP_SCAN; POSITION 171,1; LABEL " > "; END BUTTON; END PANEL; ! PANEL BR_READ; POSITION 215,64; SIZE 205,24; BACKGROUND(255,255,0),0; TEXT 3,1 "Samp #"; CONTINUOUS VIEW_RDNG; POSITION 70,1; SIZE 58,19; STYLE "NOENGR"; FORMAT "DDDD"; END CONTINUOUS; BUTTON DN_RDNG; POSITION 135,1; LABEL " < "; END BUTTON; BUTTON UP_RDNG; POSITION 171,1; LABEL " > "; END BUTTON; END PANEL; BUTTON Start_Readings; POSITION 220,36; SIZE 195,19; LABEL "Start Measurements"; END BUTTON; ! BUTTON DONE_POP_UP; POSITION 342,5; SIZE 76,19; LABEL "Reduce"; END BUTTON; END PANEL; ! ! PANEL OTHER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! ! TEXT 12,160 "Controller"; ! TOGGLE Fast_Controller; POSITION 130,160; SIZE 50,19; LABEL "Norm","Fast"; ! END TOGGLE; ! TEXT 12,160 "Wait for Operation Complete Mode"; DISCRETE OPC_MODE; POSITION 327,160; SIZE 93,19; LABEL "Off","On","Once"; END DISCRETE; TEXT 12, 138 "Self Test"; DISPLAY Self_Test; POSITION 195,138; SIZE 225,19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; ! ! TEXT 12,116 "Beeper State"; TOGGLE BeepState; POSITION 130,116; SIZE 50,19; LABEL "Off","On"; END TOGGLE; ! BUTTON Beep; POSITION 195,116; SIZE 225,19; LABEL "Beep Immediate"; END BUTTON; ! TEXT 12,94 "IDN"; DISPLAY IDENTIFY; POSITION 45, 93; SIZE 375, 19; END DISPLAY; ! TEXT 12,65 "Readings Entry Mode"; DISCRETE ENTRY_MODE; POSITION 195,63; SIZE 225,19; LABEL "As Taken","After Last Reading","Later"; END DISCRETE; ! TEXT 12,35 "Temperature"; DISPLAY Temperature; POSITION 195,33; SIZE 225,19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; ! TEXT 12, 5 "Display"; TOGGLE Display_State; POSITION 130, 3; SIZE 50,19; LABEL "Off","On"; END TOGGLE; INPUT Display_Message; POSITION 195, 3; SIZE 225,19; FORMAT "AAAAAAAAAAAAAAAAAAAAAAAA"; END INPUT; END PANEL; ! PANEL ABOUT_ID; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; TEXT "HP 34420A"; POSITION 147,131; FONT 15,25; END TEXT; TEXT 101,114 "Nano Volt/Micro Ohm Meter"; TEXT 138, 83 "Revision A.01.00"; TEXT 156, 54 "Copyright (C)"; TEXT 129, 37 "Hewlett-Packard Co."; TEXT 196, 20 "1995"; END PANEL; ! PANEL STATUS_INST; POSITION 0,0; SIZE 428,186; FOREGROUND (255,255,255),100; ! TEXT 7, 163, "S-Poll"; DISPLAY Serial_Poll; POSITION 63,163; SIZE 60, 19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; BUTTON Preset_Status; POSITION 129,163; SIZE 130,19; LABEL "Preset Status"; END BUTTON; BUTTON Clear_Status; POSITION 287,163; SIZE 136,19; LABEL "Clear Status"; END BUTTON; TEXT 393,141 "<--"; DISPLAY Status_Byte; POSITION 327,141; SIZE 60,19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; TEXT 222,141, "Status Byte"; ! CONTINUOUS Status_Enable; POSITION 129,141; SIZE 60,19; FORMAT "DDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 7,141 "SRQ Enable"; ! TEXT 75,119 "Cond"; TEXT 128,119 "PTR Fil"; TEXT 194,119 "NTR Fil"; TEXT 268,119 "Event"; TEXT 330,119 "Enable"; TEXT 411,119 "^"; ! TEXT 7, 98 "Quest"; DISPLAY Questionable_Cond; POSITION 63, 98; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END DISPLAY; CONTINUOUS Questionable_PTR; POSITION 129, 98; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; CONTINUOUS Questionable_NTR; POSITION 195, 98; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; DISPLAY Questionable_Event; POSITION 261, 98; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END DISPLAY; CONTINUOUS Questionable_Enable; POSITION 327, 98; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 393, 98 "--^"; TEXT 7, 76 "Oper"; DISPLAY Oper_Cond; POSITION 63, 76; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END DISPLAY; CONTINUOUS Oper_PTR; POSITION 129, 76; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; CONTINUOUS Oper_NTR; POSITION 195, 76; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; DISPLAY Operate_Event; POSITION 261, 76; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END DISPLAY; CONTINUOUS Oper_Enable; POSITION 327, 76; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 393, 76 "--^"; ! TEXT 7, 54 "Standard Event Register"; DISPLAY Standard_Event; POSITION 261, 54; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END DISPLAY; CONTINUOUS Event_Enable; POSITION 327, 54; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 393, 54 "--^"; ! CONTINUOUS PSC; POSITION 327,30; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; TITLE "Power On Status Clear"; END CONTINUOUS; ! BUTTON OPC; POSITION 260,6; SIZE 60,19; LABEL "*OPC"; END BUTTON; BUTTON WAI; POSITION 327,6; SIZE 60,19; LABEL "*WAI"; END BUTTON; END PANEL; ! PANEL Errors; POSITION 0,0; SIZE 428,186; FOREGROUND (255,255,255),100; ! BUTTON Clear_Status; POSITION 287,163; SIZE 136,19; LABEL "Clear Status"; END BUTTON; ! TEXT 48,90 "Error Number"; DISPLAY ERROR; POSITION 164,88; SIZE 76,19; STYLE "NOENGR"; FORMAT "DDDDDD"; END DISPLAY; TEXT 248,90 "and Error String:"; DISPLAY ERR_STRING; POSITION 10,66; SIZE 408,19; END DISPLAY; END PANEL; ! PANEL Chart; POSITION 0,0; SIZE 428,186; FOREGROUND (255,255,255),100; ! TEXT 7,160 "State"; TOGGLE Chart_State; POSITION 110,160; SIZE 100,19; LABEL "Off","On"; END TOGGLE; ! TEXT 7,138 "Span"; CONTINUOUS Chart_Span; POSITION 110,138; SIZE 100,19; FORMAT "7 DIGITS"; END CONTINUOUS; ! TEXT 7,116 "Offset"; CONTINUOUS Chart_Offset; POSITION 110,116; SIZE 100,19; FORMAT "7 DIGITS"; END CONTINUOUS; BUTTON Chart_Offset_Null; POSITION 216,116; SIZE 60,19; LABEL "Null"; END BUTTON; ! TEXT 7,94 "Set Value"; CONTINUOUS Chart_Value; POSITION 110,94; SIZE 100,19; FORMAT "7 DIGITS"; END CONTINUOUS; END PANEL; PANEL Calibration; POSITION 0,0; SIZE 428,186; FOREGROUND (255,255,255),100; ! TOGGLE Secure_State; POSITION 286,160; SIZE 120,19; LABEL "UNSECURED","Secured"; TITLE "Secure State"; END TOGGLE; ! INPUT Secure_Code; POSITION 286,138; SIZE 120,19; FORMAT "AAAAAAAAAAAA"; TITLE "Secure Code"; END INPUT; ! DISPLAY Cal_Count; POSITION 286,116; SIZE 120,19; FORMAT "DDDDDD"; STYLE "NOENGR"; TITLE "Count"; END DISPLAY; ! TOGGLE Cal_Output; POSITION 286, 94; SIZE 120,19; LABEL "ZERO","GAIN"; TITLE "Setup Output"; END TOGGLE; ! CONTINUOUS Cal_Value; POSITION 286, 72; SIZE 120,19; FORMAT "8 DIGITS"; TITLE "Calibration Value"; END CONTINUOUS; ! DISPLAY Calibrate; POSITION 286,50; SIZE 120,19; FORMAT "DDDDDD"; STYLE "NOENGR"; TITLE "Calibrate Main"; END DISPLAY; ! DISPLAY Cal_ICUR; POSITION 286,28; SIZE 120,19; FORMAT "DDDDDD"; STYLE "NOENGR"; TITLE "Calbrate I Current"; END DISPLAY; ! INPUT Cal_String; POSITION 39,6; SIZE 367,19; TITLE "Msg"; END INPUT; DISPLAY Cal_String; POSITION 408,6; SIZE 13,19; BACKGROUND (0,255,255),100; FOREGROUND (0,255,255),100; END DISPLAY; END PANEL; END PANEL;