Operator Manual Firmware Ver.3.05 and higher Instruction Manual

Table Of Contents
3-22 BOP-1K-GL 022814
FIGURE 3-6. PROGRAMMING EXAMPLE TO VERIFY PREVIOUS COMMAND HAS COMPLETED
3.5.7 WAVEFORM GENERATION
3.5.7.1 WAVEFORM OVERVIEW
A waveform is comprised of at least one, or as many as 126 segments which are part of a series
of LIST commands. Each segment has an individually specified value for Type, Frequency or
Period, Amplitude, Offset, Start angle, Stop angle, and Initial/Repeat. These segments are pro-
grammed using the LIST:CURR:APPLy (PAR. B.57) or LIST:VOLT:APPLy (PAR. B.79) com-
mands. The details of the waveform segments are defined in Table 3-6. Once the waveform
segments are added to the list, the list is executed by sending either
CURR:MODE LIST (PAR.
B.27) or VOLT:MODE LIST (PAR. B.94).
#include <formatio.h>
#include <utility.h>
#include <gpib.h>
#include <ansi_c.h>
/*Overhead for the use of a NATIONAL INSTRUMENTS gpib interface */
int unit_desc; // handle for the national instruments controller
int GPIbus=0; // GPIB card 0
int adr=6; // Power Supply address
char status_byte; // status byte from the power supply
#define MAV 0x10 /* bit 4 of the status byte is the Message AVailable bit by 488.2 specification */
/* Function Send_with_wait
INPUT: string to be sent to power supply
Description: adds the *OPC? query and performs serial polls to wait for the command to be completed.
*/
int Send_with_wait(char *command);
char snd[501]; // data to be sent to the power supply
char rcv [10]; // data from power supply
int j;
sprintf(snd,”%s;:*OPC?,command); // Add *OPC? to the command
// so there is a response from the
// power supply
Send(GPIbus, adr, snd, strlen(snd), 2); // Send the data to the power supply
for (j=0;j<500;j++)( // loop until ready (5 seconds max)
Delay(.05); // Wait for command to complete
ibrsp(unit_desc,&status_byte); // get status byte
if ((status_byte& 0x10) ==0x10) break;) // by looking for data in string
Receive (GPIbus, adr, rev, rev_buf_size,10); // so the error queue will not receive a 410 error
}
main( // test code to show operation of function.
unit_desc=ibdev(GPIbus,adr,adr/256,T100ms,1,0x40a);Delay(.005);
Send (GPIbus,adr,”VOLT 10;curr .01”,sizeof(“VOLT 10;curr .01”),NLEND;
Send_with_wait(“*SAV 10”);
}