/* ************************************************************** */ /* * PARAM.H * This file contains parameters required by the measurement * program. * * Zachary Wolf * 6/5/02 */ /* Protection from multiple definitions */ #ifndef __PARAM_HEADER #define __PARAM_HEADER #define TRUE 1 #define FALSE 0 /* Define Current DAC types */ #define DAC_488 0 #define DAC_488HR 1 #define DAC_MANUAL 2 #define DAC_NONE 3 /* Define Current Readback types */ #define READBACK_HP3457 0 #define READBACK_HP34970 1 #define READBACK_NONE 2 /* Define Current Ramp types */ #define LINEAR 0 #define THREE_LINEAR 1 #define COSINE 2 /* Current system defines */ #define CALIB 0 #define BUCKING 1 #define VTRIM 2 /* Current system Pattern defines */ #define LIST 0 /* Email Notification Settings*/ static char MAIL_TO[1000] = "sda@slac.stanford.edu"; #define MAIL_SEND_NOTIFICATION 0 #define MAIL_COMPUTER_ID "BTwire" /* GPIB addresses */ #define GPIB_BOARD_ADDR 0 #define GPIB_HP3457_ADDR 22 #define GPIB_HP34970_ADDR 9 #define GPIB_DAC488_ADDR 19 #define GPIB_DAC488HR_ADDR 8 #define GPIB_TDS754D_ADDR 1 /* Calibration magnet current */ /* Magnet current */ #define IMAG_BOARD_ADDR GPIB_BOARD_ADDR #define IMAG_SHOW_UI TRUE #define IMAG_NUM_CURRENT_SYSTEMS 4 static int IMAG_DAC488_ADDR[] = {GPIB_DAC488_ADDR, GPIB_DAC488_ADDR, GPIB_DAC488_ADDR, GPIB_DAC488_ADDR}; static int IMAG_DAC488HR_ADDR[] = {GPIB_DAC488HR_ADDR, GPIB_DAC488HR_ADDR, GPIB_DAC488HR_ADDR, GPIB_DAC488HR_ADDR}; static int IMAG_HP3457_ADDR[] = {GPIB_HP3457_ADDR, GPIB_HP3457_ADDR, GPIB_HP3457_ADDR, GPIB_HP3457_ADDR}; static int IMAG_HP34970_ADDR[] = {GPIB_HP34970_ADDR, GPIB_HP34970_ADDR, GPIB_HP34970_ADDR, GPIB_HP34970_ADDR}; static char IMAG_CURRENT_SYSTEM_NAME[][30] = {"Calib X Before", "Calib X After", "Calib Y Before", "Calib Y After"}; static int IMAG_DAC_CONFIG[] = {DAC_NONE, DAC_NONE, DAC_NONE, DAC_NONE}; static int IMAG_READBACK_CONFIG[] = {READBACK_HP34970, READBACK_HP34970, READBACK_HP34970, READBACK_HP34970}; static int IMAG_DAC488_PORT[] = {1, 2, 3, 4}; static int IMAG_DAC488HR_PORT[] = {1, 2, 3, 4}; static int IMAG_HP3457_CHAN[] = {0, 1, 2, 4}; static int IMAG_HP34970_CHAN[] = {102, 103, 104, 104}; static int IMAG_RAMP_STYLE[] = {LINEAR, LINEAR, LINEAR, LINEAR}; static int IMAG_STAND_RAMP_STYLE[] = {LINEAR, LINEAR, LINEAR, LINEAR}; static int IMAG_BIPOLAR[] = {FALSE, FALSE, FALSE, FALSE}; static double IMAG_PS_AMPS_PER_DAC_VOLT[] = {1.2, 1.2, 1.2, 1.2}; static double IMAG_TRANS_VOLTS_PER_AMP[] = {.083333, 0.083333, 0.083333, 0.083333}; static double IMAG_MAX_CURR_LIMIT[] = {12, 12., 12, 12.}; /* Maximum current (A) setpoint allowed */ static double IMAG_MIN_CURR_LIMIT[] = {0.0, 0.0,0.0, 0.0}; /* Minimum current (A) setpoint allowed */ static double IMAG_RAMP_RATE[] = {1.0, 1.0, 1.0, 1.0}; /* Standard Rate rate (A/s) for ramp functions */ static double IMAG_WAIT_AFTER_RAMP[] = {2.0, 2.0, 2.0, 2.0}; /* Settle time (sec) after ramp is done */ static double IMAG_STAND_RAMP_RATE[] = {1.0, 1.0, 1.0, 1.0}; /* Standard Rate rate (A/s) for standardize functions */ static double IMAG_WAIT_AFTER_STAND_RAMP[] = {2.0, 2.0, 2.0, 2.0}; /* Settle time (sec) after ramp is done */ static int IMAG_INIT_ZERO_CURRENT_MEAS[] = {FALSE, FALSE, FALSE, FALSE}; static int IMAG_INIT_TURN_ON[] = {FALSE, FALSE, FALSE, FALSE}; static double IMAG_INIT_TURN_ON_CURRENT[] = {0., 0., 0., 0. }; static int IMAG_INVERPOWER[] = {FALSE, FALSE, FALSE, FALSE}; static int IMAG_CHECK_CURRENT[] = {FALSE, FALSE, FALSE, FALSE}; /* Flag to check that deisred current = actual current to IMAG_CHECK_CURRENT_TOL level*/ static double IMAG_CHECK_CURRENT_TOL[] = {0.01, 0.01, 0.01, 0.01}; /* If (desired_current - actual_current)/desired_current > IMAG_CHECK_CURRENT_TOL imag will give an error */ static double IMAG_CHECK_CURRENT_TOL_LOWER_LIM[] = {10., 1., 1., 1.}; /* Below this Current (A) the IMAG_CHECK_CURRENT_TOL check will not be performed */ static double IMAG_CHECK_CURRENT_TOL_BALLPARK_LIM[] = {5.0, 5.0, 5.0, 5.0}; /* If Current (A) is below IMAG_CHECK_CURRENT_TOL_LOWER_LIM and above IMAG_CHECK_CURRENT_BALLPARK_LIM the actual current needs to be within IMAG_BALLPARK_TOL (in Imag.h) of desired */ static double IMAG_SET_ZERO_OFFSET_CURRENT[] = {-0.0001, 0.00033, 0.01, 0.01}; /* Bt system */ #define BTWIRE_BOARD_ADDR GPIB_BOARD_ADDR #define BTWIRE_TDS754D_ADDR GPIB_TDS754D_ADDR #define BTWIRE_CONFIG BTWIRE_TDS754D #define BTWIRE_CHAN_X_WIRE_POS_SENSOR 1 #define BTWIRE_CHAN_Y_WIRE_POS_SENSOR 2 #define BTWIRE_CHAN_WIRE_CURRENT_SENSOR 4 #define BTWIRE_SCALE_X_WIRE_POS_SENSOR .005 // Vertical Scale in Volts #define BTWIRE_SCALE_Y_WIRE_POS_SENSOR .005 // Vertical Scale in Volts #define BTWIRE_SCALE_WIRE_CURRENT_SENSOR 2. // Vertical Scale in Volts #define BTWIRE_SCALE_HORIZONTAL 1.e-3 // Horizontal Scale in Seconds #define BTWIRE_WIRE_CURRENT_SENSOR_V_PER_A .1 #define BTWIRE_NUM_X_CALIB_MAGNETS 2 // Number of X calibration mangets #define BTWIRE_NUM_Y_CALIB_MAGNETS 2 // Number of Y calibration mangets #define BTWIRE_NOMINAL_WAVE_SPEED 303. // Nominal wave speed for wire (m/s) #define BTWIRE_X_CALIB_MAGNET_FACTOR 0.000052 // Predetermined X calib factor to convert voltage/sec to Tesla (T/V/s) Used when no magnets are mounted,but calib factor was previously determined #define BTWIRE_Y_CALIB_MAGNET_FACTOR 0.000052 // Predetermined Y calib factor to convert voltage/sec to Tesla (T/V/s) Used when no magnets are mounted,but calib factor was previously determined #define BTWIRE_SHOW_UI BTWIRE_TRUE /* Calibration Magnet Parameters */ static char BTWIRE_CALIB_MAGNET_NAME[][30] = {"Cal_Bx1", "Cal_Bx2", "Cal_By1", "Cal_By2"}; static int BTWIRE_CALIB_MAGNET_TYPE[] = {'X', 'X', 'Y', 'Y'}; static double BTWIRE_B_PER_A_CALIB[] = {0.001285, 0.001285, 0.001285, 0.001285}; // 0.001285 static double BTWIRE_ZPOS_CALIB_MAGNET[] = {0.09, 2.36, 0.09, 2.36}; static double BTWIRE_LENGTH_OF_CALIB_MAGNET[] = {.036, .036, .036, .036}; // Effective length of magnet static int BTWIRE_CALIB_MAGNET_SYSYEM_NUM[] = {1, 1, 2, 2}; // Corresponds to the Imag current system control number (1-4) for current control and readout static int BTWIRE_CALIB_MAGNET_FACTOR_LOGIC[] = {FALSE, FALSE, FALSE, FALSE}; // TRUE means BTWIRE_CALIB_MAGNET_CALIB_FACTOR is calculated, FALSE is set to BTWIRE_CALIB_MAGNET_CALIB_FACTOR //static int BTWIRE_CALIB_MAGNET_FACTOR[] = { 0.000052, 0.000052}; /* End protection */ #endif