D - Example Programs
Your application program will not include the dc source’s symbolic name and GPIB address. These must be specified during configuration (when you run IBCONF.EXE). Note that the primary address range is from 0 to 30 but any secondary address must be specified in the address range of 96 to 126. The dc source expects a message termination on EOI or line feed, so set EOI w/last byte of Write. It is also recommended that you set Disable Auto Serial Polling.
All function calls return the status word IBSTA%, which contains a bit (ERR) that is set if the call results in an error. When ERR is set, an appropriate code is placed in variable IBERR%. Be sure to check IBSTA% after every function call. If it is not equal to zero, branch to an error handler that reads IBERR% to extract the specific error.
Error Handling
If there is no
BASIC Controllers
The BASIC Programming Language provides access to GPIB functions at the operating system level. This makes it unnecessary to have the header files required in front of DOS applications programs. Also, you do not have to be concerned about controller "hangups" as long as your program includes a timeout statement. Because the dc source can be programmed to generate SRQ on errors, your program can use an SRQ service routine for decoding detected errors. The detectable errors are listed in Appendix C.
Example 1. HP Vectra PC Controller Using Agilent 82335 Interface
5
1000 MAX.ELEMENTS=2 :ACTUAL.ELEMENTS=0 :MAX.LENGTH=80 :ACT.LENGTH=0
1005 DIM OUTPUTS(2) :CODES$=SPACE$(40)
1010 ISC=7 :PS=706
1015 ’
1020 ’Set up the DC Source Interface for DOS driver
1025 | CALL IORESET (ISC) | ’Reset the interface | ||
1030 | IF PCIB.ERR | <> | NOERR THEN ERROR PCIB.BASERR | |
1035 | TIMEOUT=3 |
|
|
|
1040 | CALL IOTIMEOUT | (ISC, TIMEOUT) | ’Set timeout to 3 seconds | |
1045 | IF PCIB.ERR | <> | NOERR THEN ERROR PCIB.BASERR | |
1050 | CALL IOCLEAR (ISC) | ’Clear the interface | ||
1055 | IF PCIB.ERR | <> | NOERR THEN ERROR PCIB.BASERR | |
1060 | CALL IOREMOTE (ISC) | ’Set dc source to remote | ||
mode |
|
|
|
|
1065 | IF PCIB.ERR | <> | NOERR THEN ERROR PCIB.BASERR | |
1070 | ’ |
|
|
|
1075 | ’Program dc | source to CV mode with following voltage and current | ||
1080 | CODES$ = "VOLTAGE MAX;CURRENT MAX" | :GOSUB 2000 |
94