10. Programming examples

10. Programming examples

10.1. Set channel output values and working with the OCP

This is a SCPI commands sequence that sets a voltage, current, and the over-current protection (OCP) on the channel two:

 

INST?

Check currently selected output

1

 

INST CH2

Select channel two as current channel

VOLT 10

Set output voltage

CURR

Set output current

CURR:PROT:STAT?

Check OCP status

0

 

CURR:PROT:STAT 1

Enable OCP

CURR:PROT:DEL 100ms

Set OCP delay

OUTP 1

Enable output

MEAS?

Measure output voltage

10.00

 

MEAS:CURR?

Measure output current

0.00

Current is zero since no load is connected

 

If software simulator is used, connection of the load can be also simulated:

 

SIMU:LOAD 20

Define connected load impedance

MEAS?

Measure voltage once again

10.00

 

MEAS:CURR?

Measure current once again

0.50

Measured current

 

The following command sequence could be used to test channel mode with load previously defined and after the load impedance is lowered enough that output current reach programmed value. The OCP has to be disabled because previously defined 100ms delay does not give us enough time to execute the whole sequence for testing channel mode and output voltage and current values:

 

OUTP:MODE?

Check mode of operation

"CV"

The channel is in constant-voltage mode since output current is below previously programmed level

SIMU:LOAD?

Check load value

10

 

CURR:PROT:STAT?

Check OCP status

1

 

CURR:PROT:STAT OFF

Disable OCP

SIMU:LOAD 4

Decrease load impedance

OUTP:MODE?

Check once again mode of operation

"CC"

Channel enters constant-current mode since Imax = U / R = 10 / 4 = 2.5A and current is limited to the 1A

MEAS:CURR?

Measure output current

1.00

 

MEAS?

Measure output voltage

4.00

Output voltage is decreased since U = I * R = 1 * 4 = 4V

 

The OCP will “trip” when output current reach programmed value and channel stay in the CC mode for more then programmed OCP delay time. To test that with e.g. the software simulator we’ll disable channel output first, enable OCP and when change channel output back to enabled state:

 

OUTP OFF

Disable channel output

CURR:PROT:TRIP?

Check OCP status

0

OCP is not activated

CURR:PROT:STAT ON

Enable OCP

VOLT?

Check programmed output voltage

10.00

 

CURR?

Check programmed output current

1.00

 

SIMU:LOAD?

Check simulated load value

4

 

OUTP ON

Enable channel output

CURR:PROT:TRIP?

Check OCP status once again

1

OCP has been tripped

OUTP?

Check channel output state

0

Channel output is changed to OFF stated by the OCP

 

The channel output state cannot be changed to enabled until any of protection is active. We have to clear protection first. If the same load that caused the first protection trip is still connected the channel output will be disabled immediately after the protection programmed delay time expired. Therefore we also have to disconnect load or disable protection. The later method will be used in the command sequence that follows:

 

OUTP ON

First attempt to enable channel output

OUTP?

 

0

This attempt failed, the channel output remain disabled

OUTP:PROT:CLE

Channel protections reset

OUTP ON

Second to enable channel output

0

Channel output was enabled for a short time (100ms) and returns back to OFF state

CURR:PROT:TRIP?

Check OCP status

1

OCP has been tripped

OUTP:PROT:CLE

Reset channel protections once again

CURR:PROT:STAT OFF

Disable OCP

OUTP ON

Third attempt to enable channel output

OUTP?

 

1

Output is finally enabled

OUTP:MODE?

 

"CC"

Channel enters CC mode of operation

10.2. Voltage and current calibration

For optimum calibration results the following condition are recommended:

  • the calibration ambient temperature is stable and between 20 °C and 30 °C.
  • ambient relative humidity is less than 80%.
  • Allow a one hour warm-up period before verification or calibration (use e.g. SYST:CHAN:INFO:ONT:LAST? or SYST:CPU:INFO:ONT:LAST? to get that info).
  • Use short and thick cables to connect test setups.

Step

Commands

Description

1

*RST

 

2

SYST:RWL

Make sure that PSU is in remote mode and cannot be unlock from local console (TFT display)

3

INST {CH1|CH2}; OUTP ON

Select the channel to be calibrated and enable the channel output.

4

VOLT:PROT:STAT OFF

CURR:PROT:STAT OFF

POW:PROT:STAT OFF

Disable if required the voltage, current and power protections.

5

CAL ON, "<password>"

PSU enters calibration mode on the channel selected in step 1. Both voltage and current on the selected channel are set to the MINimum value. The VOLT? and CURR? commands can be optionally used here to test channel output values.

6

 

For voltage calibration, connect a digital voltmeter (DVM) across the PSU’s output terminals.

7

CAL:VOLT:LEV MIN

Set the channel to the low-end (MIN) calibration point.

8

CAL:VOLT 81.8MV

Enter the reading you obtained from the external DVM.

9

CAL:VOLT:LEV MID

Set the channel to the middle (MID) calibration point.

10

CAL:VOLT 19.68

Enter the reading you obtained from the DVM.

11

CAL:VOLT:LEV MAX

Set the channel to the high (MAX) calibration point.

12

CAL:VOLT 39.2

Enter the reading you obtained from the DVM.

13

 

For current calibration, connect current monitoring resistor (shunt) across the output terminals and connect the DVM across the shunt resistor. Its resistance has to be less then 5 Ω and rated for 25 W or more for measuring MAX current level.

14

 

Repeat step 7 through step 12 by substituting CURR for VOLT for current calibration. For example, CAL:CURR:LEV MIN.

15

CAL_CURR:RANG LOW

Power board r5B12 only: for low current range (i.e. 0 – 500 mA) calibration use this command to change the range and repeat once again procedure mentioned in step 14.

16

 

CAL:REM "<string>"

Record calibration information such as next calibration due date for future reference. The calibration string may contain up to 40 characters. You don’t need to enter current date and time since that information will be recorded automatically.

17

CAL:SAVE

Save to non-volatile memory new calibration data.

18

CAL OFF, "<password>"

PSU exit calibration mode. Both voltage and current on the selected channel are again set to the MINimum value.

19

SYST:REM

Enable local console unlock. Alternatively SYST:LOC can be executed to make local console enabled again.

10.3. Working with profiles

The following command sequence could be used to store current set of parameters to the profile location 4 in the non-volatile memory:

 

MEM:STAT:VAL? 4

Check to see if profile selected location is empty

0

 

MEM:STAT:NAME? 4

We can also check that by querying profile location name

"–Not used–"

 

INST CH1

VOLT?;:CURR?;:OUTP?

Examine currently programmed output values of the first channel

0.00;0.00;0

 

INST CH2

VOLT?;:CURR?;:OUTP?

Examine currently programmed output values of the second channel

0.00;0.00;0

 

VOLT 12;:CURR 300mA

INST CH1

VOLT 12;:CURR 300mA

OUTP 1;:OUTP 1, CH2

Reprogram both channel output values that will be stored as a new profile

*SAV 4

All profile parameters is now storing on the selected location

MEM:STAT:NAME? 4

Check profile name

""

 

MEM:STAT:NAME 4, "Dual 12V/300mA, Output ON"

Set the profile name (only ASCII characters are allowed!)

MEM:STAT:NAME? 4

Check the profile name once again

"Dual 12V/300ma, Output ON"

 

 

We can now turn the PSU off (when it enters the Stand-by mode) turn it on again and check some of the programmed parameters:

 

SYST:POW 0

The PSU enters the Stand-by mode

SYST:POW 1

Returns back from the Stand-by mode. Please note that this command can be executed with the minimum of 5 seconds delay otherwise a -200,"Execution error" will be generated (you can check that with the SYST:ERR? command)

VOLT?;:CURR?;:OUTP?

Query programmed voltage, current and output state of the currently selected channel

0.00;0.00;0

Returned data indicate that previously saved values in profile number 4 were not used

*RCL 4

VOLT?;:CURR?;:OUTP?

Recall parameters from desired location and execute query once again

12.00;0.30;1

The channel output values are now programmed using the selected profile

 

We can automate above mentioned process that channel profile parameters stored in non-volatile memory are using on power up. First we’ll check what is a current status of automatic recall and what profile will be used in the case of automatic recall:

 

MEM:STAT:REC:AUTO?

Query status of automatic profile recall during power on sequence

0

Automatic recall is turned off

MEM:STAT:REC:AUTO ON

Turn on automatic recall

MEM:STAT:REC:SEL?

Query which profile will be used when automatic recall is turned on

0

Selected profile was 0

MEM:STAT:REC:SEL 4

Change power on profile to 4

SYST:POW 0

Switch the PSU to the Stand-by mode once again

SYST:POW 1

Returns back from the Stand-by mode. Again wait at least 5 seconds before enters this command

VOLT?;:CURR?;:OUTP?

Query programmed voltage, current and output state of the currently selected channel

12.00;0.30;1

The channel output values are programmed using the selected profile

10.4. Get identification info and self-test results

The PSU’s identification information could be beneficial when more then one instrument are controlled. Additionally in the following example information about self-test will be queried:

 

*IDN?

Query identification string

EEZ,1/50/03-1/40/05 (Due),00001,M1.0.93

PSU with two different channels is identified, the first channel is 0-50V/3A and the second is 0-40V/5A. Serial number is 00001, and firmware version M1.0.93

*TST?

Execute self-test and query result

0

Self-test is passed

DIAG:TEST?

Query additional information about self-test

"1, EEPROM, installed, passed","1, Ethernet, installed, passed","1, RTC, installed, passed","1, DateTime, installed, passed","2, BP option, installed, skipped","1, CH1 IOEXP, installed, passed","1, CH1 DAC, installed, passed","1, CH1 ADC, installed, passed","1, CH2 IOEXP, installed, passed","1, CH2 DAC, installed, passed","1, CH2 ADC, installed, passed"

 

 

The self-test could be performed even when the PSU is in the Stand-by mode. We’ll first switch the PSU into the Stand-by mode. At the end of this example we are using additional diagnostic command that allows us to query information about channel’s ADC measurements.

 

SYST:POW 0

The PSU enters the Stand-by mode

DIAG:TEST?

Query additional information about self-test

"1, EEPROM, installed, passed","1, Ethernet, installed, passed","1, RTC, installed, passed","1, DateTime, installed, passed","2, BP option, installed, skipped"

Only Arduino Shield +BP module diagnostic information is returned

SYST:POW 1

Returns back from the Stand-by mode

DIAG:ADC?

Additional information about currently selected channel ADC inputs

"U_SET=12.02 V","U_MON=12.00 V","I_SET=0.30 A","I_MON=0.00 A"

U_SET and I_SET are measured values of the DAC outputs, U_MON and I_MON are actual output values. I_MON is 0 because no load is connected. A small difference between set and actual output voltage exists because calibration data are currently in use.

 

10.5. Programming output voltage using the list of values

The PSU comes with simple “arbitary waveform generator” functionality that can be accomplished using the LIST commands. The following example changes in the loop output voltage between five output values each half a second long while current is set to 3 A.

 

INST CH1

Select the channel that has to be programmed

VOLT:MODE LIST

Set voltage programming mode to the list of values

LIST:VOLT 5, 10, 20, 40, 0

Define sequence of output voltage (could be up to 256 steps)

CURR:MODE LIST

Set current programming mode to the list of values.

LIST:CURR 3

Only one output current value is defined. Single value or number of values equivalent to other parameters (LIST:VOLT and LIST:DWEL) is allowed.

LIST:DWEL 0.5

Only one value for the duration of each step is chosen. Single value or number of values equivalent to other parameters (LIST:VOLT and LIST:CURR) is allowed.

LIST:COUN INF

Repeat continuously LIST sequence

TRIG:SOUR IMM

Define type of trigger. In this case the list execution will start immediately after INIT command is received.

INIT

Start the trigger.

 

Resulting output voltage and current waveform with connected load of 15 Ω is shown on the picture below.