Chapter 6 Application Programs
Example Program for C and C++
136
OpenPort();
/* Query the power supply id, read response and print it */
sprintf(Buffer,"*IDN?");
SendSCPI(Buffer);
printf("Instrument identification string:\n %s\n\n",Buffer);
SendSCPI("*RST"); /* Set power-on condition */
SendSCPI("Current 2"); /* Set current limit to 2A */
SendSCPI("Output on"); /* Turn output on */
printf("Voltage Current\n\n"); /* Print heading */
/*Step from 0.6 to 0.8 volt in 0.02 steps */
for(voltage = 0.6; voltage <=0.8001; voltage +=0.02)
{
printf("%.3f",voltage); /* Display diode voltage*/
/* Set output voltage */
ErrorStatus = viPrintf(power_supply,"Volt %f\n",voltage);
if(!bGPIB)
delay(500);/* 500 msec wating for RS-232 port*/
CheckError("Unable to set voltage");
/* Measure output current */
ErrorStatus = viPrintf(power_supply,"Measure:Current?\n");
CheckError("Unable to write device");
delay(500); /* Allow output to wait for 500 msec */
/* Retrieve reading */
ErrorStatus = viScanf(power_supply,"%lf",¤t);
CheckError("Unable to read voltage");
printf("%6.4f\n",current); /* Display diode current */
}
SendSCPI("Output off"); /* Turn output off */
ClosePort();
}
/* Build the address required to open commnuication with GPIB card or RS-232.*/
/* The address format looks like this: "GPIB0::5::INSTR". */
/* To use the RS-232 interface using COM1 port, change it to "ASRL1::INSTR" */
/* address format */
void OpenPort()
{
char GPIB_Address[3];
char COM_Address[2];
char VISA_address[40]; /* Complete VISA address sent to card */
if(bGPIB)
strcpy(GPIB_Address,"5"); /* Select GPIB address between 0 to 30*/
else
strcpy(COM_Address,"1"); /* Set the number to 2 for COM2 port */
Continued on next page