beautypg.com

7 waveform generation, 1 waveform overview, Waveform generation -22 – KEPCO BOP-GL 1KW Operator Manual Firmware Ver.3.05 and higher User Manual

Page 84: Waveform overview -22, E 3-6 is a p

background image

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

#include

#include

#include

/*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”);

}