3 remote mode setup, Remote mode setup -45 – KEPCO BOP 1KW-MG Operator Manual, Firmware Ver.4.12 and higher User Manual
Page 111

BOP HIPWR 031014
3-45
For commands not marked with (**) failure to provide a delay of about 1 minute can result in:
• Commands that are not processed,
• The following command may be received in error, causing an error in the transmission,
• Unit lock-up requiring power cycling of the unit. If working via the GPIB bus, sending
Interface Clear and Device Clear followed by *RST will unlock the unit.
FIGURE 3-16. PROGRAMMING EXAMPLE TO VERIFY PREVIOUS COMMAND HAS COMPLETED
3.5.3
REMOTE MODE SETUP
When either of the two interface ports are in use, PAR’s 3.5.3.1 (GPIB), 3.5.3.2 and (RS 232)
describe how to configure the port to meet the user’s requirements.
The BOP can be substituted for a standard BOP that is currently being used with one of Kepco’s
BIT cards, however there are differences in operation (see PAR. 3.5.3.4 and 3.5.3.5.
#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”);
}