Home
NI-488.2 User Manual for Windows
Contents
1. National Instruments Corp 3 3 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 Table 3 1 shows the condition that each bit position represents the bit mnemonics and the type of calls for which each bit can be set For a detailed explanation of each of the status conditions refer to Appendix A Status Word Conditions Table 3 1 Status Wor ibsta Bit Hex Mnemonic Pos Value Description ERR 15 8000 dev brd_ GPIB error TIMO Era 4000 Time limit exceeded SRQI ES SRQ interrupt received C dv fe e Controller bd dev brd 1000 Ros__f SPOLL LOK E 8 Ee al ac 5 AN 4 o tra fions tra Remesa era Contouerin Charge C ba Atenionsassened Coa taker Coa fise O C wa Device Tigger See Ca DCAS Device Clear State The language header files included on your distribution disk contain the mnemonic constants for ibsta You can check a bit position in ibsta by using its numeric value or its mnemonic constant For example bit position 15 hex 8000 detects a GPIB error The mnemonic for this bit is ERR To check for a GPIB error use either of the following statements after each NI 488 function and NI 488 2 routine as shown if ibsta amp ERR gpiberr or if ibsta amp 0x8000 gpiberr where gpiberr is an error handling routine NI 488 2 User Manual for Windows 3 4 National Instruments Corp Chapter 3 Developing Your Application
2. The following options are available at the upper level e Device maps of the boards e Help e Rename e Dis connect e Edit e Fxit National Instruments Corp 8 3 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter 8 Device Maps of the Boards Help Rename Dis connect Use lt PageUp gt or lt PageDown gt to toggle between the device maps for the different GPIB interface boards These boards are referred to as access boards The maps show which devices are assigned to each board Use the function key lt F1 gt to access the comprehensive online help feature of wibconf The help information describes the functions and common terms associated with the upper level of wibconf Use the function key lt F4 gt to rename a device Move to the device you want to rename by using the cursor control keys Press the lt F4 gt key and enter the new name of the device The device name may contain up to eight characters in lowercase or uppercase The following restrictions apply when renaming a device e Extensions xxx are not allowed e As specified by DOS the device name cannot use the following characters 5 i lt gt s p e Do not use the reserved names con or nul for your device e Do not give GPIB device names the same names as files directories or subdirectories If you name a GPIB device pltr and your file system contains the file pltr da
3. INIT FindLstn Who s Listening Get a List of Devices Device 1 Present on is Here GPIB Device 2 is Here Tell Device 1 to Identify Itself Device 3 is Here Receive Read Response from Device 1 Tell Device 2 to Identify Itself Tell Device 3 to Identify Itself Receive Read Response MUTT 10528 from Device 3 CLEAN UP Figure 2 6 Program Flowchart for Example 6 National Instruments Corp 2 15 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 7 Serial Polls Using NI 488 2 Routines This example illustrates how you can take advantage of the NI 488 2 routines to reduce the complexity of performing serial polls of multiple devices A candy manufacturer is using GPIB strain gauges to measure the consistency of the syrup used to make candy The plant has four big mixers containing syrup The syrup has to reach a certain consistency to make good quality candy This is measured by strain gauges that monitor the amount of pressure used to move the mixer arms When a certain consistency is reached the mixture is removed and a new batch of syrup is poured in the mixer The GPIB strain gauges are connected to a computer with an IEEE 488 2 interface board and the NI 488 2 software installed The process is controlled by an application that uses NI 488 2 routines to communicate with the IEEE 488 2 compliant strain gauges The following steps correspond to the pro
4. National Instruments GPIBO Configuration AT GPIB TNT Ver 2 5 Terminate Read on EOS Set EOI with EOS on Writes Type of compare on EOS EOS byte cccecceceee Send EOI at end of Write System Controller Assert REN when SC Enable Auto Serial Polling Enable CIC Protocol Bus Timing cccecces cee ewes Cable Length for High Speed Parallel Poll Duration Use this GPIB interface Base I 0 Address Interrupt Level DMA Channel DMA Transfer Mode 500nsec 15 Default Yes 11 Demand Select the GPIB board s base I 0 address by entering the address using hex digits The valid range is 0000h to O3E0h in increments of 20h bytes AS AB A AB AS Push down the highlighted side 1 Help F6 Reset Value F9 Esc Return to Map Ctl PgUp PgDn Next Prev Board Figure 8 2 Lower Level of wibconf National Instruments Corp 8 5 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter 8 You can access the lower level screens from the map level of wibconf by selecting a board or device and pressing lt F8 gt You can use the lt Up gt lt Down gt lt PageUp gt and lt PageDown gt cursor keys to select a characteristic For your convenience cursor control keys and function keys are defined at the bottom of your computer screen Selecting the
5. 0x8130 Cal1 25 ibcmd failed expected ibsta 0x100 to have the ERR bit set Disconnect all GPIB cables before trying the test again Running GPIBInfo The GPIBInfo utility program is a simple diagnostic tool you can use to obtain information about the NI 488 2 software you are using and any GPIB interface boards in your system This information helps you determine the capabilities of your NI 488 2 software and is also helpful if you need to call National Instruments for technical support If you run GPIBInfo with no specific parameters the program displays software information such as the name and version of your GPIB software the type of GPIB interface board and functions that you can use with the software and whether or not you can use the HS488 high speed protocol GPIBInfo also displays information about each GPIB interface board installed in your system including the name of the board its Controller chip the hardware settings the type of functions that the board can use and whether or not the board can use the HS488 high speed communication protocol The typical GPIBInfo output is as follows GPIBInfo Sep 29 1993 Copyright c 1993 National Instruments Corp All rights reserved Software Information The NI 488 2 Software for Windows 3 is loaded You are running Version 2 5 for the AT GPIB TNT board It supports both the NI 488 functions and the NI 488 2 routines It supports the HS488 high speed protocol NI
6. Error Variable iberr If the ERR bit is set in the status word ibsta a GPIB error has occurred When an error occurs the error type is specified by the value in iberr Note The value in iberr is meaningful as an error type only when the ERR bit is set indicating that an error has occurred For more information on error codes and solutions refer to Chapter 4 Debugging Your Application or Appendix B Error Codes and Solutions Count Variables ibcnt and ibcntl The count variables are updated after each read write or command function ibcnt isa 16 bit integer and ibcnt1 is a 32 bit integer If you are reading data the count variables indicate the number of bytes read If you are sending data or commands the count variables reflect the number of bytes sent In your application program you can use the count variables to null terminate an ASCII string of data received from an instrument For example if data is received in an array of characters you can use ibcnt1 to null terminate the array and print the measurement on the screen as follows char rdbuf 512 ibrd ud rdbuf 20L if ibsta amp ERR rdbuf ibentl 0 printf Read s n rdbuf else error ibcnt1 is the number of bytes received Data begins in the array at index zero 0 therefore ibcnt1 is the position for the null character that marks the end of the string Using wibic to Communicate with Devices Before you begi
7. 3 12 reading measurement 3 16 triggering instruments 3 15 waiting for measurement 3 15 to 3 16 NI 488 2 DLL choosing how to access 3 1 requirements for direct access 3 1 unloading or reloading NI 488 2 driver 1 9 NI 488 2 routines See also NI 488 2 applications programming parallel polling 7 12 programming considerations 3 3 serial polling 7 8 to 7 10 serial polling examples using AllSpoll 7 9 to 7 10 using FindRQS 7 9 using in wibic issuing set command before using 5 13 Receive 5 13 to 5 14 Send 5 13 SendList 5 13 wibic syntax 5 8 to 5 9 NI 488 2 software 1 6 to 1 9 See also application development NI 488 functions NI 488 2 routines C language files 1 7 driver and driver utilities 1 6 to 1 7 interaction with Windows 1 8 reloading 1 9 unloading 1 9 Visual Basic files 1 7 win 32S files 1 8 nivdmad 386 device 1 6 nivgpibd 386 device 1 6 NRFD not ready for data line 1 3 number syntax in wibic 5 4 O output options GPIB Spy utility 6 4 National Instruments Corp Index 13 NI 488 2 User Manual for Windows Index P parallel polling 7 10 to 7 12 application example 2 18 to 2 19 implementing 7 10 to 7 12 setting duration of 8 10 using NI 488 functions 7 10 to 7 11 using NI 488 2 routines 7 12 PPoll routine 7 12 PPollConfig routine 7 12 PPollUnconfig routine 7 12 primary GPIB address definition 1 2 purpose 8 7 setting 8 7 print display the ASCII string function wibic
8. 5 17 problem solving See debugging programming See application development debugging GPIB programming techniques R readme txt file 1 6 ReadStatusByte routine 7 8 Receive routine reading measurements 3 16 using in wibic 5 13 to 5 14 REM status word condition bit position hex value and type table 3 4 description A 4 REN remote enable line purpose table 1 3 setting for automatic assertion 8 9 repeat addressing communication errors 4 6 enabling 8 11 repeat function n times n function wibic 5 16 repeat previous function function wibic 5 15 requesting service See service requests routines See NI 488 2 routines RQS status word condition bit position hex value and type table 3 4 description A 2 to A 3 running applications See compiling linking and running applications NI 488 2 User Manual for Windows Index 14 National Instruments Corp Index S secondary GPIB address definition 1 2 setting 8 7 Send routine configuring instruments 3 15 using in wibic 5 13 SendCmds function 7 2 SendIFC routine 3 13 SendList routine 5 12 serial polling 7 5 to 7 10 application example using NI 488 2 routines 2 16 to 2 17 automatic serial polling 7 6 to 7 7 autopolling and interrupts 7 7 enabling 8 9 stuck SRQ state 7 6 to 7 7 service requests from IEEE 488 devices 7 5 from IEEE 488 2 devices 7 6 setting timeout value 8 8 SRQ and serial polling with NI 488 device functions 7
9. Application Examples Chapter 2 Example 9 Non Controller Example This example illustrates how you can use the NI 488 2 software to emulate a GPIB device that is not the GPIB Controller A software engineer has written firmware to emulate a GPIB device for a research project and is testing it using an application that makes simple GPIB calls The following steps correspond to the program flowchart in Figure 2 9 1 The application brings the device online 2 The application waits for any of three events to occur the device to become listen addressed become talk addressed or receive a GPIB clear message 3 As soon as one of the events occurs the application takes an action based upon the event that occurred If the device was cleared the application resets the internal state of the device to default values If the device was talk addressed it writes data back to the Controller If the device was listen addressed it reads in new data from the Controller NI 488 2 User Manual for Windows 2 20 National Instruments Corp Chapter 2 Application Examples Device Controller Wait to be Talk Addressed Listen Addressed or Cleared Is This the Clear Event Is This the Talk Addressed Event Write Out New Data New Data Figure 2 9 Program Flowchart for Example 9 National Instruments Corp 2 21 NI 488 2 User Manual for Windows Chapter 3 Developing Your Application This chapt
10. National Instruments Corp 2 11 NI 488 2 User Manual for Windows Application Examples Chapter 2 GPIB Cable Computer Digital Film Recorder INIT ibclr Clear Film Recorder Clear Command ibwrt Advance Film ibwait Request Service Wait for the Film Recorder to Did You Request Request Service Service Recorder Finished Loading Film Exit Application and Repair Film Recorder continues Figure 2 5 Program Flowchart for Example 5 NI 488 2 User Manual for Windows 2 12 National Instruments Corp Chapter 2 Computer Continued Application Examples Digital Film Recorder Yes ibwrt Create a 6a Single Pass Image ibwait Wait for Film Recorder to Request Service Read Response From Film Recorder Advance Film ibwait Wait for Film Recorder to Request Service Data for Red Green or Blue Pass Request Service Did You Request Service These steps are repeated 3 times once for each color pass Request Service Did You Request Service ibrsp 9 Read Response From Film Recorder Response Figure 2 5 Program Flowchart for Example 5 Continued National Instruments Corp 2 13 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 6 Basic Communication with IEEE 488 2 Compliant Devices This example is an introduction to communicating with IEEE 488 2 compliant devices A test engin
11. Programming Close Board ibon1 Are All Boards Closed Figure 3 2 General Program Shell Using NI 488 2 Routines NI 488 2 User Manual for Windows 3 12 National Instruments Corp Chapter 3 Developing Your Application General Program Steps and Examples The following steps demonstrate how to use the NI 488 2 routines in your program This example configures a digital multimeter reads 10 voltage measurements and computes the average of these measurements Step 1 Initialization Use the SendIFC routine to initialize the bus and the GPIB interface board so that the GPIB board is Controller In Charge CIC The only argument of SendIFC is the GPIB interface board number SendIFC 0 if ibsta amp ERR gpiberr SendIFC error Step 2 Find All Listeners Use the FindLstn routine to create an array of all of the instruments attached to the GPIB The first argument is the interface board number the second argument is the list of instruments that was created the third argument is a list of instrument addresses that the procedure actually found and the last argument is the maximum number of devices that the procedure can find that is it must stop if it reaches the limit The end of the list of addresses must be marked with the NOADDR constant which is defined in the header file that you included at the beginning of the program for loop 0 loop lt 30 loop instruments loop loop instrument
12. RMA number must be obtained from the factory and clearly marked on the outside of the package before any equipment will be accepted for warranty work National Instruments will pay the shipping costs of returning to the owner parts which are covered by warranty National Instruments believes that the information in this manual is accurate The document has been carefully reviewed for technical accuracy In the event that technical or typographical errors exist National Instruments reserves the right to make changes to subsequent editions of this document without prior notice to holders of this edition The reader should consult National Instruments if errors are suspected In no event shall National Instruments be liable for any damages arising out of or related to this document or the information contained in it EXCEPT AS SPECIFIED HEREIN NATIONAL INSTRUMENTS MAKES NO WARRANTIES EXPRESS OR IMPLIED AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE CUSTOMER S RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE ON THE PART OF NATIONAL INSTRUMENTS SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID BY THE CUSTOMER NATIONAL INSTRUMENTS WILL NOT BE LIABLE FOR DAMAGES RESULTING FROM LOSS OF DATA PROFITS USE OF PRODUCTS OR INCIDENTAL OR CONSEQUENTIAL DAMAGES EVEN IF ADVISED OF THE POSSIBILITY THEREOF This limitation of the liability of National Instruments will apply regardless of the form of action
13. This process is a three wire interlocked handshake and it guarantees that devices send and receive message bytes on the data lines without transmission error Table 1 1 summarizes the GPIB handshake lines Table 1 1 GPIB Handshake Lines NRED not ready for data Listening device is ready not ready to receive a message byte Also used by the Talker to signal high speed GPIB transfers NDAC not data accepted Listening device has has not accepted a message byte DAV data valid Talking device indicates signals on data lines are stable valid data Interface Management Lines Five GPIB hardware lines manage the flow of information across the bus Table 1 2 summarizes the GPIB interface management lines Table 1 2 GPIB Interface Management Lines ATN attention Controller drives ATN true when it sends commands and false when it sends data messages IFC interface clear System Controller drives the IFC line to initialize the bus and make itself CIC REN remote enable System Controller drives the REN line to place devices in remote or local program mode SRQ service request Any device can drive the SRQ line to asynchronously request service from the Controller EOI end or identify Talker uses the EOI line to mark the end of a data message Controller uses the EOI line when it conducts a parallel poll National Instruments Corp 1 3 NI 488 2 User Manual for Windows Introduction Chapter 1 Setting Up and Conf
14. to wait for a trigger from the GPIB interface board before starting a measurement TRIGGER 2 and to assert the SRQ line when the measurement completes and the multimeter is ready to send the result SRE 16 Step 4 Trigger the Device If you configure the device to wait for a trigger you must send a trigger command to the device before reading the measurement value Then instruct the device to send the next triggered reading to its GPIB output buffer ibtrg ud if ibsta amp ERR 1 TIMO gpiberr ibtrg error ibwrt ud VAL1 5L if ibsta amp ERR gpiberr ibwrt error Step 5 Wait for the Measurement After you trigger the device the RQS bit is set when the device is ready to send the measurement You can detect RQS by using the ibwait function The second parameter indicates what you are waiting for Notice that the ibwait function also returns when the I O timeout value is exceeded printf Waiting for RQS n ibwait ud TIMO RQS if ibsta amp ERR TIMO gpiberr ibwait error When SRQ has been detected serial poll the instrument to determine if the measured data is valid or if a fault condition exists For IEEE 488 2 instruments you can find out by checking the message available MAV bit bit 4 in the status byte that you receive from the instrument National Instruments Corp 3 9 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 ibrsp ud am
15. 10 measurements have been read Then print the average of the readings as shown printf The average of the 10 readings is f n sum 10 Step 10 Place the Board Offline Before ending your application program take the board offline using the ibon1l function ibonl 0 0 NI 488 2 User Manual for Windows 3 16 National Instruments Corp Chapter 3 Developing Your Application Compiling Linking and Running Your Application The following sections describe how to compile link and run your application program To see examples that show how to include specific lines of code in your program refer to the program examples included with your NI 488 2 software If you discover errors when you execute the program refer to Chapter 4 Debugging Your Application If you want to verify the NI 488 and NI 488 2 calls made by your application you can use GPIB Spy the GPIB applications monitor for Windows described in Chapter 6 GPIB Spy Microsoft C Before you compile your C application program make sure that the following line is included at the beginning of your program include windecl h After you have written your C application program you must compile your application program using one of the following compilers Microsoft C Version 7 0 with Microsoft SDK Software Development Kit Version 3 1 or Microsoft Visual C Version 1 0 also known as Microsoft C Version 8 0 Then link your application with the C language inte
16. 14 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility Set Select Device or Board You can use the set command to select 488 2 mode or to communicate with a different device The following example switches communication from using NI 488 2 routines for gpib0 to using a unit descriptor udo previously acquired by an ibdev call 488 2 0 set udo udo Help Display Help Information The help feature displays a menu of topics to choose from Each topic lists relevant functions and other information You can access help for a specific NI 488 function or NI 488 2 routine by typing help followed by the call name for example help ibwrt Help describes the function syntax for all NI 488 functions and NI 488 2 routines Repeat Previous Function The function repeats the most recent function executed The following example issues an ibsic command and then repeats that same command gpib0 ibsic 0130 cmpl cic atn gpib0 0130 cmpl cic atn Turn Display Off and Turn Display On The function turns off all screen output except for the prompt This function is useful when you want to repeat any I O function quickly without waiting for screen output to be displayed The function turns the screen output on In the following example 24 consecutive letters of the alphabet are read from a device using three ibrd calls ud0 ibrd 8 2100 end cmp1 count 8
17. 17 Chapter 6 GPIB SPY sesnasenvisenea us eo an A es 6 1 OVEIVICW bai inistaiicieeri iii eddie dann ea einai aly 6 1 Starting GPIB Spy eaaa hehe dies hide hao A EE AEAEE EA AEE A 6 1 Exiting GPIB Spy eaaa ese sensensonsesaeoacosesaebacsienneprenieeneaes 6 2 Viewing Call Details aa aere EE Ee EE Eer E A E OS 6 2 GPIB Spy Configuration Options seeseeeeseesesieseesesesesrrsrsresresresreresresresesresesees 6 3 Callsto Highlighter e E EEEE E AEA 6 3 Calls To Trap Ofisinin an a a e a a 6 3 Buffer HIStory sirere ieena eaaa bec 6 3 Set Hishhsht Color sescuseted cece uve ea ith Berets 6 3 Store Configurations vee nei iets dees ate eines 6 4 GPIB Spy Output Options nisiseme eerie ea E EE 6 4 TO Screeny stc ne A AOT N A A E 6 4 Ta PUE aes voces a A ia tua EONAR EA TOEO OS 6 4 Clear Screenin hena a aa E Ae EAD iE e 6 4 GPIB Spo HOD reiret eae RE RE E ERE REE E EEE ARA 6 5 Performance Considerations aterros d EEEE 6 5 Chapter 7 GPIB Programming Techniques 0 0 0 0 00 cccccccccceessesseeeesseeeeeeesteeneeseeneeeee 7 1 Termination of Data Transfers seanina etetea n R a aei 7 1 High Speed Data Transfers HS488 00 0 eeeeseceseceneceseeeseceseeseeeseeeneeeseees 7 2 Enabling AS48835 oaa eses aa iavecnsdebeeboas sda lonteviensee 7 2 System Configuration Effects on HS488 seese 7 3 Waiting for GPIB Conditions 0 eee eeeeseceseceeeeseeeeeeseeeeseeeseceseseseeeeeaeen 7 3 Device Level Calls and Bus Management ceeeesesseceseceteeeseeeseeeee
18. 61 62 63 64 65 66 67 68 abcdefgh ud0 National Instruments Corp 5 15 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 ud0 ibrd 8 udO ud0 ibrd 8 2100 end cmp1 count 8 71 72 73 74 75 76 77 78 qrstuvwx n Repeat Function n Times The n function repeats the execution of the specified function n times where n is an integer In the following example the message He11o is sent five times to the device described by udo ud0 5 ibwrt Hello In the following example the word Hello is sent five times 20 times and then 10 more times ud0 5 ibwrt Hello ud0 20 ud0 10 Notice that the multiplier does not become part of the function name that is ibwrt Hello is repeated 20 times not 5 ibwrt Hello Execute Indirect File The function reads a specified file and executes the wibic functions listed in that file in sequence as if they were entered in that order from the keyboard The following example executes the wibic functions listed in the file userfile gpib0 userfile The following example repeats the operation three times gpib0 3 userfile The display mode that is in effect before this function was executed can be changed by functions in the indirect file NI 488 2 User Manual for Windows 5 16 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility Print Display the ASCII
19. EOI with the last byte of a write operation and has EOS characters disabled include decl h char ppr dev ibdev 0 3 0 T3s 1 0 Pass the binary bit pattern 0110 0110 or hex 66 to ibppe ibppc dev 0x66 If the GPIB interface board configures itself for a parallel poll you should still use the ibppc function Pass the board index or a board unit descriptor value as the first argument in ibppc In addition if the individual status bit ist of the board needs to be changed use the ibist function In the following example the GPIB board is to configure itself to participate in a parallel poll It asserts DIOS when ist 1 if a parallel poll is conducted ibppc 0 Ox6C ibist 0 1 2 Conduct the parallel poll using ibrpp and check the response for a certain value The following example code performs the parallel poll and compares the response to hex 10 which corresponds to DIOS If that bit is set the ist of the device is 1 ibrpp dev amp ppr if ppr amp 0x10 printf ist 1 n 3 Unconfigure the device for parallel polling with ibppc Notice that any value having the parallel poll disable bit set bit 4 in the bit pattern disables the configuration so you can use any value between hex 70 and 7E ibppe dev 0x70 National Instruments Corp 7 11 NI 488 2 User Manual for Windows GPIB Programming Techniques Chapter 7 Parallel Polling with NI 488 2 Routines Follow these steps t
20. GPIB configuration information file that describes the default configuration of the NI 488 2 software e nivgpibd 386 the National Instruments virtual GPIB device allows you to use DMA to transfer buffers located above 16 MB in memory The setup program offers to install this virtual device for you e nivdmad 386 is an improved version of the virtual DMA device vdmad used by Windows 3 0 in 386 enhanced mode The setup program offers to install this virtual device for you if you are running Windows 3 0 NI 488 2 User Manual for Windows 1 6 National Instruments Corp Chapter 1 Introduction ibdiag exe is a program that you can use to test the GPIB hardware and ensure that it is functioning properly wibtest exe is the Windows NI 488 2 software installation test gpibinfo exe is a utility you can use to obtain information about your GPIB hardware and software such as the version of the NI 488 2 software and the type of interface board you are using wibic exe is an interactive control program that you use to communicate with the GPIB devices interactively using NI 488 2 functions and routines It helps you to learn the NI 488 2 routines and to program your instrument or other GPIB devices wibconf exe is a software configuration program that changes the configuration parameters of the NI 488 2 software for Windows gpibspy exe is the GPIB activity monitor program It is a debugging tool that you can use to monitor the NI 488 2
21. IIA mode switch 8 11 interrupt jumper setting 8 11 parallel poll duration 8 10 primary GPIB address 8 7 secondary GPIB address 8 7 send EOI at end of write 8 9 serial poll timeout 8 8 set EOI with EOS on writes 8 8 System Controller 8 9 National Instruments Corp Index 17 NI 488 2 User Manual for Windows Index terminate read on EOS 8 8 timeout setting 8 7 type of compare on EOS 8 8 use this GPIB interface 8 10 default configurations 8 12 exiting lt F9 gt or lt Escape gt 8 12 to 8 13 checking for errors 8 13 lower level device board characteristics 8 5 to 8 6 changing board or device lt Control PageUp gt and lt Control PageDown gt 8 6 changing characteristics lt PageUp gt lt PageDown gt lt Home gt or lt End gt 8 6 Help option lt F1 gt 8 6 Reset Value lt F6 gt 8 6 Return to Map lt F9 gt of lt Escape gt 8 6 screen illustration 8 5 options for starting table 8 2 overview 8 1 purpose 1 7 reconfiguring GPIB driver 4 5 to 4 6 starting 8 1 to 8 2 upper level device map 8 3 to 8 5 upper level device map options device maps of boards 8 4 Dis connect lt F5 gt 8 4 Edit lt F8 gt 8 5 Exit lt F9 gt or lt Escape gt 8 5 Help lt F1 gt 8 4 Rename lt F4 gt 8 4 screen illustration 8 3 wibic utility auxiliary functions repeat previous function 5 15 execute indirect file 5 16 turn display on 5 15 turn display off 5
22. National Instruments products involving medical or clinical treatment can create a potential for accidental injury caused by product failure or by errors on the part of the user or application designer Any use or application of National Instruments products for or involving medical or clinical treatment must be performed by properly trained and qualified medical personnel and all traditional medical safeguards equipment and procedures that are appropriate in the particular situation to prevent serious injury or death should always continue to be used when National Instruments products are being used National Instruments products are NOT intended to be a substitute for any form of established process procedure or equipment used to monitor or safeguard human health and safety in medical or clinical treatment Contents About This Manual ec scas sc74 ciesivetgcevee decd vouetaienndadenale oir xiii How to Use This Manual Set ee eseesecesecssecesecenecneecseeceeeeeeseeeseeaeonse xiii Organization of This Manual 0 eee eeeeesceseceneeeseeeeeeseesseeseesseesseesaeeeaeesaae xiv Conventions Used in This Manual eeeseeeeseeseeeeesesressresesresresresresresresrea XV Related Documentation c00 8 a sini gi tiaia an a aain xvi Customer C mmu nicatloNssnienceicioiiksie ii i aaa a A xvi Chapter One Introduction sere A EEN O R Maas 1 1 GRIB OVERVIEW aianei r NA EE OON AEAEE 1 1 Talkers Listeners and Controllers ccccc
23. String You can use the print function to echo a string to the screen The following example shows how you can use ASCII or hex with the print command devl print hello hello devi print and r n x67 x6 x6 x64 x62 x79 x65 and goodbye You can also use print to display comments from indirect files The print string appears even if the display is suppressed with the function Buffer Set Buffer Display Mode You can set the type of display used for buffers to control how much of the buffer is displayed full displays the entire buffer brief displays the first and last eight bytes of the buffer ascii displays the entire buffer in ASCII mode and off displays none of the buffer National Instruments Corp 5 17 NI 488 2 User Manual for Windows Chapter 6 GPIB Spy This chapter explains how to use the GPIB Spy utility to monitor and debug your application program Overview GPIB Spy is a GPIB application monitor utility for Windows applications It monitors the NI 488 and NI 488 2 calls made to the NI 488 2 driver for Windows and records and displays information about the calls You can use the GPIB Spy application to locate and analyze errors in your application or in the configuration of the NI 488 2 software Starting GPIB Spy Start GPIB Spy by double clicking on the GPIB Spy icon in the GPIB group in the Program Manager This activates GPIB Spy and brings up the main GPIB Spy window All NI 488 and NI 488 2 c
24. The following example shows ibdev opening an available device and assigning it to access gpib0o board 0 with a primary address of 6 pad 6 a secondary address of hex 67 sad 0x67 a timeout of 10 s tmo 13 the END message enabled eot 1 and the EOS mode disabled eos 0 ibdev 0 6 0x67 13 1 0 id 32256 udo If you use ibdev without specifying parameters wibic prompts you for the input parameters as shown in the following example ibdev enter board index 0 enter primary address 6 enter secondary address 0x67 enter timeout 13 enter EOI on last byte flag 1 enter end of string mode byte 0 id 32256 udo Three distinct errors can occur with the ibdev call e EDVR No device is available the board index entered refers to a nonexistent board that is not 0 1 2 or 3 or Windows cannot locate the goib d11 file and or gpib ini file The following example illustrates an EDVR error ibdev 4 6 0x67 7 1 0 id 1 8000 err error EDVR 2 ENEB The board index entered refers to a known board such as 0 but the driver cannot find the board In this case run wibconf to verify that the base address of the board is set correctly and that the Use This GPIB Interface field is set to yes National Instruments Corp 5 11 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 e EARG One of the last five parameters is an invalid value The ibdev
25. The following steps correspond to the program flowchart in Figure 2 2 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application sends a GPIB clear command to the oscilloscope This command clears the internal registers of the oscilloscope reinitializing it to default values and settings 3 The application sends a command to the oscilloscope telling it to read a waveform each time it is triggered Predefining the task in this way decreases the execution time required Each trigger of the oscilloscope is now sufficient to get a new run 4 The application sends a GPIB trigger command to the oscilloscope which causes it to acquire data 5 The application queries the oscilloscope for the acquired data The oscilloscope sends the data 6 The application reads the data from the oscilloscope 7 The application calls an external graphics routine to display the acquired waveform Steps 4 5 6 and 7 are repeated until all of the desired data has been acquired by the oscilloscope and received by the computer 8 As a cleanup step before exiting the application returns the interface board to its original state by taking it offline NI 488 2 User Manual for Windows 2 4 National Instruments Corp Chapter 2 Application Examples GPIB Cable Computer Oscilloscope Clear Clear Oscilloscope Command Define Task to Be Done When Oscilloscope is Triggered Trigger Osc
26. To File 6 4 To Screen 6 4 overview 6 1 performance considerations 6 5 purpose 1 7 starting 6 1 viewing call details 6 2 gpib dll file 1 6 See also NI 488 2 DLL GPIBInfo utility purpose 1 7 running 4 2 to 4 3 gpib ini file 1 6 B 2 H handshake lines 1 3 Help display help information function 5 15 National Instruments Corp Index 9 NI 488 2 User Manual for Windows Index high speed data transfers HS488 7 2 to 7 3 enabling HS488 7 2 to 7 3 setting cable length 8 10 system configuration effects 7 3 highlight color setting 6 3 I ibask function 7 3 ibclr function clearing devices 3 8 using in wibic example 5 2 ibcmd function 7 2 ibent and ibentl variables See count variables ibcnt and ibcntl ibconfig function configuring GPIB board as CIC 7 3 to 7 4 determining assertion of EOI line 7 1 enabling autopolling 7 6 enabling EVENT bit 7 5 enabling high speed data transfers 7 2 to 7 3 reconfiguring GPIB driver 4 5 to 4 6 ibdev function conducting parallel polls 7 11 opening devices 3 8 using in wibic 5 10 to 5 11 example 5 2 ibdiag utility purpose 1 7 testing hardware configuration 4 6 ibeos function 7 1 ibeot function 7 1 iberr See error variable iberr ibevent function 7 5 ibfind function 5 10 ibonl function placing board offline 3 16 placing device offline 3 10 using in wibic example 5 4 ibppe function conducting parallel polls 7 10 unconfiguring device for
27. Windows is installed in the default directory c windows just press lt Return gt If Windows is not installed in the default directory enter the path and directory where Windows is installed so that wibconf can find the correct gpib ini file to modify for example c win31 gpib ini How can I determine which type of GPIB board I have installed Run the GPIBInfo utility If yourun GPIBInfo without specifying any parameters it returns information about the GPIB boards currently configured for use in your system If you know the base I O address of a GPIB interface board you can enter it as a parameter for specific information For example gpibinfo 2CO returns information about the GPIB board at base I O address 2C0 How can I determine which version of the NI 488 2 software I have installed Run the GPIBInfo utility If you run GPIBInfo without specifying any parameters it provides information about the version of the NI 488 2 software currently installed Why can t I launch Windows after installing Windows 3 1 on top of my Windows 3 0 installation If the system ini file contains conflicting information about which virtual devices to load Windows fails to start In this case the system ini file is probably trying to load two virtual DMA devices The system ini file should include the lines to load only one virtual DMA device You can either delete unwanted lines or change them to comment lines by adding a semicolon at the beginni
28. application starts the scan by writing the scan command to the scanner 7 The application reads the scan data into the computer 8 As a cleanup step before exiting the application returns the interface board to its original state by taking it offline NI 488 2 User Manual for Windows 2 8 National Instruments Corp Chapter 2 Application Examples GPIB Cable Computer Scanner Reset Internal State Resolution Scanned Data CLEAN UP Figure 2 4 Program Flowchart for Example 4 National Instruments Corp 2 9 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 5 Service Requests This example illustrates how an application communicates with a GPIB device that uses the GPIB service request SRQ line to indicate that it needs attention A graphic arts designer is transferring digital images stored on her computer to a roll of color film using a GPIB digital film recorder A GPIB cable connects the GPIB port on the film recorder to the IEEE 488 2 interface board installed in her computer She has installed the NI 488 2 software on the host computer and is familiar with the programming instructions for the film recorder as described in the film recorder s user manual She places a fresh roll of film in the camera and launches a simple application she has written using high level GPIB commands With the aid of the application she records a few images on film The following
29. applications Borland C 3 17 direct entry with C 3 18 to 3 22 direct entry with Visual Basic 3 23 Microsoft C 3 17 Visual Basic 3 18 configuration 1 4 to 1 6 See also GPIB Spy utility wibconf utility controlling more than one board 1 5 linear and star system configuration illustration 1 4 requirements 1 5 to 1 6 configuration errors 4 5 to 4 6 configuration file for wibconf batch mode 8 13 to 8 14 Configure CFGn message 7 2 Configure Enable CFE message 7 2 Controller in Charge CIC Active Controller as CIC 1 1 CIC protocol 7 3 8 9 configuring GPIB board as CIC 7 3 to 7 4 8 9 System Controller as 1 1 Controllers definition 1 1 emulation of non controller GPIB example 2 20 to 2 21 idle Controller 1 1 System Controller 1 1 8 9 count in wibic 5 10 count variables ibcnt and ibentl 3 5 customer communication xvi C 1 D data lines 1 2 data transfers high speed HS488 7 2 to 7 3 enabling 7 2 to 7 3 system configuration effects 7 3 terminating 7 1 to 7 2 DAV data valid line 1 3 DCAS status word condition bit position hex value and type table 3 4 description A 5 monitoring for messages from Controller 7 4 debugging See also GPIB Spy utility common questions 4 7 to 4 8 to 4 9 communication errors 4 6 repeat addressing 4 6 termination method 4 6 configuration errors 4 5 to 4 6 NI 488 2 User Manual for Windows Index 4 National Instruments Corp Index global status
30. cable runs between the scanner and the computer He is using an application written by an intern in the department who has read the scanner s instruction manual and is familiar with the scanner s programming requirements The following steps correspond to the program flowchart in Figure 2 4 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application sends a GPIB clear message to the scanner initializing it to its power on defaults 3 The scanner needs to detect a delimiter indicating the end of a command In this case the scanner expects the commands to be terminated with lt CR gt lt LF gt carriage return r and linefeed n The application sets its end of string EOS byte to lt LF gt The linefeed code indicates to the scanner that no more data is coming and is called the end of string byte It flags an end of string condition for this particular GPIB scanner The same effect could be accomplished by asserting the EOI line when the command is sent 4 With the exception of the scan resolution all the default settings are appropriate for the task at hand The application changes the scan resolution by writing the appropriate command to the scanner 5 The scanner sends back information describing the status of the change resolution command This is a string of bytes terminated by the end of string character to tell the application it is done changing the resolution 6 The
31. call returns with a new prompt and the EARG error invalid function argument If the ibdev call returns with an EARG error you must identify which parameter is incorrect and use the appropriate command to correct it In the following example pad has an invalid value You can correct it with an ibpad call as shown sibdev 0 66 0x67 7 1 0 id 32256 8100 err cmpl error EARG ud0 ibpad 6 previous value 16 ibwrt The ibwrt command sends data from one GPIB device to another For example to send the six character data string F3R5T1 from the computer to a device you enter the following string at the prompt as shown in the following example ud0O ibwrt F3R5T1 0100 cmp1 count 6 The returned status word contains the cmp1 bit which indicates a successful I O completion The byte count 6 indicates that all six characters were sent from the computer and received by the device ibrd The ibrd command causes a GPIB device to receive data from another GPIB device The following example acquires data from the device and displays it on the screen in hex format and in its ASCII equivalent along with the status word and byte count ud0 ibrd 20 2100 end cmp1 count 18 4e 44 43 56 28 30 30 30 NDCV9 2e 30 30 34 37 45 2b 30 0047 0 x Od Oa 0 0 E 0 NI 488 2 User Manual for Windows 5 12 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility Common NI 488 2 Routines
32. calls made by your Windows applications C Language Files The NI 488 2 software contains the following C language files readme mc is a documentation file that contains information about the C language interface gpib 1ib is the Microsoft C version 5 1 or higher and Borland C version 2 0 or higher language interface library You must link this library with your application program so that your program can access the NI 488 2 dynamic link library windecl h is an include file It contains NI 488 function and NI 488 2 routine prototypes and various predefined constants Visual Basic Language Files The distribution disk contains the following language files for Microsoft Visual Basic readme vb is a documentation file that contains information about the Visual Basic language interface vbib bas is the Visual Basic version 1 0 or higher language source file which defines the NI 488 functions and NI 488 2 routines that call the gpib d1l niglobal bas is the Visual Basic global module that includes certain predefined constant declarations and declares the global variables National Instruments Corp 1 7 NI 488 2 User Manual for Windows Introduction Chapter 1 Win 32s Files e gpib 32 d11 is a 32 bit translation dynamic link library that handles the 32 bit to 16 bit translation e gpib 16 d11 isa 16 bit translation dynamic link library e wibic32 exe is a Win32s version of the wibic application Sample Applicati
33. check the Continuously item in the View menu the Call Details window is updated as each new GPIB is recorded and you cannot scroll through the details for each recorded call If you uncheck the Continuously item in the View menu you can use the lt Page Up gt or lt Page Down gt keys to scroll through the call details of all recorded calls If a call to the driver produces a GPIB error condition the corresponding Call Details window displays an iberr Help button Clicking on this button launches an interactive help utility which helps you identify and correct the problem Figure 6 2 shows the GPIB Spy Call Details window for the NI 488 function ibwrt GPIB SPY Call Details dN pMew S OE View Function Brd Dev ibsta Task ID 2e17 iberr Associated Windows ibcntl 2cic WIBIC Count 0000 52 65 73 65 74 3b 20 54 Reset T 0008 72 69 67 67 65 72 20 35 rigger 5 0010 Od Oa 6 Figure 6 2 GPIB Spy Call Details Window for ibwrt NI 488 2 User Manual for Windows 6 2 National Instruments Corp Chapter 6 GPIB Spy GPIB Spy Configuration Options Calls To Highlight You can choose for GPIB Spy to highlight certain calls based on bits set in ibsta If you want to modify this option then select the Calls to Highlight menu item from the Configure menu Use the dialog box to select which ibsta bits should cause a recorded call to be highlighted in the main GPIB Spy window The default configuration of GPIB Spy is t
34. configuration settings for each device and board customizes the communications and other options to be used with that board or device The access board uses these settings either when device functions are called to program the device or when board functions are called to program the board The following options are available at the lower level e Change Characteristics e Change Board or Device e Help e Reset Value e Return to Map Change To change a specific characteristic of a device or a board move the Characteristics cursor to or click the mouse on the field for that characteristic You can also use lt PageUp gt lt PageDown gt lt Home gt or lt End gt to select other characteristics of a device or board When the cursor is on the characteristic either use the left right arrow keys to select between different options or input the option directly from the keyboard Instructions on the right side of the screen inform you which method is appropriate for the selected characteristic Change Board Use lt Control PageUp gt and lt Control PageDown gt to change to the or Device next or previous GPIB board or device For example if you are editing dev3 and press lt Control PageUp gt you will then be editing dev4 Help Use the function key lt F1 gt to access the comprehensive online help feature of wibconf The help information describes the functions and common terms associated with the lower level of wibconf Reset
35. device3 connect boardl1 find boardO pad 2 tmo 30sec eos 0x1E sc no bin 8 bit tmng 350nsec This example makes the following changes 1 Change the name of the first device to plotter 2 Disconnect the second device 3 Connect the third device to board 1 gpib1 4 Change the configuration of board 0 gpib0 e Primary address to 2 pad 2 e Timeout setting to 30 s tmo 30sec e EOS byte to hex 1E eos 0x1E e System Controller capability to NO sc no e Type of compare on EOS to 8 bit bin 8 bit e GPIB bus timing to 350 ns tmng 350nsec Table 8 2 contains a list of the valid pairs of items You can enter number values as decimal or hexadecimal Hexadecimal numbers must be preceded with 0x For example decimal 64 would be written as 0x40 For more information about valid input values refer to the relevant function descriptions in the NI 488 2 Function Reference Manual for DOS Windows NI 488 2 User Manual for Windows 8 14 National Instruments Corp Chapter amp wibconf Windows Interface Bus Configuration Utility Table 8 2 wibconf Batch Mode Command Pairs First Item Mnemonic Explanation Second Item Find board or device Primary GPIB address Secondary GPIB address Timeout settings Set EOI with EOS on write Type of compare on EOS Set EOI with last byte of write System Controller board only Assert REN when SC board only Enable auto serial polling board only Timing board only 2msec 500nsec or 350nsec CIC p
36. does not know of this device it can never serial poll the device and unassert SRQ e A GPIB bus tester or similar equipment might be forcing the SRQ line to be asserted e A cable problem might exist involving the SRQ line NI 488 2 User Manual for Windows B 68 National Instruments Corp Appendix B Error Codes and Solutions Although the occurrence of ESRQ warns you of a definite GPIB problem it does not affect GPIB operations except that you cannot depend on the RQS bit while the condition lasts Solutions Check to see if other devices not used by your application are asserting SRQ Disconnect them from the GPIB if necessary ETAB 20 ETAB occurs only during the FindLstn FindRQS and ibevent functions ETAB indicates that there was some problem with a table used by these functions e Inthe case of FindLstn ETAB means that the given table did not have enough room to hold all the addresses of the Listeners found e Inthe case of FindRQS ETAB means that none of the devices in the given table were requesting service e Inthe case of ibevent ETAB means the event queue overflowed and event information was lost Solutions In the case of FindLstn increase the size of result arrays In the case of FindRQS check to see if other devices not used by your application are asserting SRQ Disconnect them from the GPIB if necessary In the case of ETAB returned from ibevent call ibevent more often to empty the queue N
37. functions that affect the GPIB e Any board level NI 488 functions that issue GPIB command bytes such as ibcmd ibcmda ibln ibrpp e ibcac ibgts e Any of the NI 488 2 routines that issue GPIB command bytes such as SendCmds PPoll Send Receive NI 488 2 User Manual for Windows B 2 National Instruments Corp Appendix B Error Codes and Solutions Solutions e Use ibsic or SendIFC to make the GPIB board become CIC on the GPIB e Use ibrsc 1 to make sure your GPIB board is configured as System Controller e In multiple CIC situations always be certain that the CIC bit appears in the status word ibsta before attempting these calls If it does not appear you can perform an ibwait for CIC call to delay further processing until control is passed to the board ENOL 2 ENOL usually occurs when a write operation is attempted with no Listeners addressed For a device write this error indicates that the GPIB address configured for that device in the software does not match the GPIB address of any device connected to the bus that the GPIB cable is not connected to the device or that the device is not powered on ENOL can also occur in situations in which the GPIB board is not the CIC and the Controller asserts ATN before the write call in progress has ended Solutions e Make sure that the GPIB address of your device matches the GPIB address of the device to which you want to write data e Use the appropriate hex code in ibcmd
38. have a complex configuration with one or more interface boards and multiple devices The following sections discuss some differences between NI 488 functions and NI 488 2 routines National Instruments Corp 3 1 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 Using NI 488 Functions One Device for Each Board If your system has only one device attached to each board the NI 488 functions are probably sufficient for your programming needs Some other factors that make the NI 488 functions more convenient include the following e With NI 488 asynchronous I O functions ibcmda ibrda and ibwrta you can initiate an I O sequence while maintaining control over the CPU for non GPIB tasks e NI 488 functions include built in file transfer functions ibrdf and ibwrtf e With NI 488 functions you can control the bus in non typical ways or communicate with non compliant devices The NI 488 functions consist of high level or device functions that hide much of the GPIB management operations and low level or board functions that offer you more control over the GPIB than NI 488 2 routines The following sections describe these different function types NI 488 Device Functions Device functions are high level functions that automatically execute commands that handle bus management operations such as reading from and writing to devices or polling them for status If you use device functions you do not need to under
39. how you could use ibdev to open a device assign it to access board gpib0O choose a primary address of 6 with no secondary address set a timeout of 10 s enable the END message and disable the EOS mode ibdev enter board index 0 enter primary address 6 enter secondary address 0 enter timeout 13 enter EOI on last byte flag 1 enter end of string mode byte 0 id 32256 ud0 You could also input all the same information with the ibdev command as follows ibdev 0 6 0 13 1 0 id 32256 udo 3 Clear the device as follows ud0O ibclr 0100 cmp1 NI 488 2 User Manual for Windows 5 2 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility 4 Write the function range and trigger source instructions to your device Refer to the instrument s user manual for the command bytes that work with your instrument udO ibwrt enter string RST VAC AUTO TRIGGER 2 SRE 16 0100 cmpl count 35 or ud0 ibwrt RST VAC AUTO TRIGGER 2 SRE 16 0100 cmp1 count 35 5 Trigger the device as follows ud0 ibtrg 0100 cmpl 6 Wait for a timeout or for your device to request service If the current timeout limit is too short use ibtmo to change it Use the ibwait command as follows udO ibwait enter wait mask TIMO RQS 0900 rqs cmpl or ud0 ibwait TIMO RQS 0900 rqs cmpl 7 Read the serial poll status byte This serial poll status b
40. is the preferred method of GPIB application development Starting wibconf The simplest way to use wibconf is to double click on the wibconf icon in your GPIB group in the Windows Program Manager Windows pops up a dialog box labeled Parameters By default wibconf looks for the NI 488 2 software configuration file gpib ini in the c windows directory If you installed Windows in a directory other than c windows specify the full path to the goib ini file in the Parameters box For example if you installed Windows in the directory d win3 type d win3 gpib ini in the Parameters dialog box If you installed Windows in the default directory simply press lt Return gt National Instruments Corp 8 1 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter 8 Table 8 1 lists the options you can select when you start wibconf Table 8 1 Options for Starting wibconf driver Configure a specific driver wibconf configures the given driver configuration file for example wibconf d win3 gpib ini h Help This option causes wibconf to display a summary of options b filename Batch mode configuration wibconf is run in batch mode using the configuration information contained in the given file for example wibconf b gpib cfg See the wibconf Batch Mode section later in this chapter Expert mode This option disables wibconf warning messages when you exit wibconf See the Exiting wibcon
41. message has been sent either by the GPIB board or by another Controller LOK is cleared when the System Controller unasserts the Remote Enable REN GPIB line National Instruments Corp A 3 NI 488 2 User Manual for Windows Status Word Conditions Appendix A REM brd REM indicates whether or not the board is in the remote state REM is set whenever the Remote Enable REN GPIB line is asserted and the GPIB board detects that its listen address has been sent either by the GPIB board or by another Controller REM is cleared in the following situations e When REN becomes unasserted e When the GPIB board as a Listener detects that the Go to Local GTL command has been sent either by the GPIB board or by another Controller e When the ibloc function is called while the LOK bit is cleared in the status word CIC brd CIC indicates whether the GPIB board is the Controller In Charge CIC is set when the SendIFC routine or ibsic function is executed either while the GPIB board is System Controller or when another Controller passes control to the GPIB board CIC is cleared either when the GPIB board detects Interface Clear IFC from the System Controller or when the GPIB board passes control to another device ATN brd ATN indicates the state of the GPIB Attention ATN line ATN is set whenever the GPIB ATN line is asserted and it is cleared when the ATN line is unasserted TACS brd TACS indicates whether the GPIB board is
42. message sent to the multimeter Send 0 fluke VAC AUTO TRIGGER 2 SRE 16 29L NLend if ibsta amp ERR gpiberr Send setup error Step 6 Trigger the Instrument In the previous step the multimeter was instructed to wait for a trigger before conducting a measurement Now send a trigger command to the multimeter You could use the Trigger routine to accomplish this but because the Fluke 45 is IEEE 488 2 compatible you can just send it the trigger command TRG The VAL1 command instructs the meter to send the next triggered reading to its output buffer Send 0 fluke TRG VAL1 11L NLend if ibsta amp ERR gpiberr Send trigger error Step 7 Wait for the Measurement After the meter is triggered it takes a measurement and displays it on its front panel and then asserts SRQ You can detect the assertion of SRQ using either the Test SRQ or WaitSRQ routine If you have a process that you want to execute while you are waiting for the measurement use Test SRQ For this example you can use the WaitSRQ routine The first argument in Wait SRQ is the GPIB board number The second argument is a flag returned by Wait SRQ that indicates whether or not SRQ is asserted WaitSRQ 0 amp SRQasserted if SRQasserted gpiberr WaitSRQ error After you have detected SRQ use the ReadStatusByte routine to poll the meter and determine its status The first argument is the GPIB board number the second argu
43. must be set to the same value as the DMA channel arbitration level for Micro Channel systems setting for the GPIB board itself Setting the DMA channel is explained in the getting started manual that you received with your GPIB interface board Note On some systems you can only enable or disable the use of DMA with the wibconf utility You cannot change the DMA channel setting Refer to your getting started manual for information on how to change the DMA channel Interrupt Jumper Setting Board Characteristic Only This field specifies the interrupt line used by the GPIB board It must be set to the same value as the interrupt level setting for the GPIB board itself Setting the interrupt level is explained in the getting started manual that you received with your GPIB board Note On some systems you can only enable or disable the use of interrupts with the wibconf utility You cannot change the IRQ request line Refer to your getting started manual for information on how to change the interrupt level Enable Repeat Addressing Device Characteristic Only Normally devices are not addressed each time a read or write operation is performed If no is selected read or write operations do not readdress the selected device if the same operation was just performed with that device Avoiding readdressing saves some time when you have several GPIB operations to perform But it might be a problem for some older IEEE 488 1 devices that require the
44. of 0 The END message is sent with the last byte of each data message to a device No end of string EOS character is recognized The timeout value for I O and wait functions is set for 10 s Each GPIB board and device is set to perform I O transfers using DMA Automatic serial polling is enabled At the end of each NI 488 2 routine the NI 488 2 driver leaves the bus in its currently addressed state IEEE 488 2 standard Exiting wibconf After you have made all your changes you can exit wibconf by pressing lt F9 gt or lt Esc gt The program prompts you to save the changes Select Yes to save the changes No to discard the changes or cancel to remain in wibconf NI 488 2 User Manual for Windows 8 12 National Instruments Corp Chapter 8 wibconf Windows Interface Bus Configuration Utility Checking for Errors Unless you started in expert mode wibconf checks for possible problems before quitting It alerts you to situations such as the following e GPIB addressing conflict between a device and its access board e GPIB boards not present in the host machine at the specified address e Timeouts disabled on a device or board To disable automatic checking when starting wibconf use the e option wibconf Batch Mode The wibconf batch mode offers an alternative method for modifying the configurations of the NI 488 2 driver Batch mode can also modify the loaded driver In batch mode the configuration information is containe
45. on EOS field EOS Byte Some devices can be programmed to terminate a read operation when a selected character is detected A linefeed character hex 0A is a common EOS byte The default option for this characteristic is OOH Note The driver does not automatically append an EOS byte to the end of data strings on write operations You must explicitly include this byte in your data string The EOS byte is used only so that the driver terminates read operations properly NI 488 2 User Manual for Windows 8 8 National Instruments Corp Chapter 8 wibconf Windows Interface Bus Configuration Utility Send EOI at End of Write Some devices as Listeners require that the Talker terminate a data message by asserting the EOI line with the last byte A yes response causes the GPIB board to assert the EOI line on the last data byte The default option for this characteristic is yes System Controller Board Characteristic Only This field appears on the board characteristics screen only The System Controller in a GPIB system is the device that maintains ultimate control over the bus In some situations such as a network of computers linked by the GPIB another device may be System Controller and the GPIB board should be designated as not System Controller A no response would designate not System Controller and a yes response would designate System Controller capability The GPIB board is usually designated as System Controller The default opt
46. parallel polling 7 12 ibrd function using in wibic 5 12 example 5 4 ibrpp function 7 11 NI 488 2 User Manual for Windows Index 10 National Instruments Corp Index ibrsp function conducting serial polls 7 6 7 7 to 7 8 using in wibic example 5 3 ibsta See status word ibsta ibtrg function triggering devices 3 9 using in wibic example 5 3 ibwait function conducting serial polls 7 7 to 7 8 Talker Listener applications 7 4 terminating stuck SRQ state 7 6 to 7 7 using in wibic example 5 3 waiting for GPIB conditions 7 3 waiting for measurement 3 9 to 3 10 ibwrt function configuring devices 3 9 using in wibic 5 12 example 5 3 IDN query 3 13 to 3 14 IEEE Standard 488 1 1987 See GPIB IFC interface clear line 1 3 Interface Bus Interactive Control utility See wibic utility interface management lines 1 3 interrupt jumper setting 8 11 interrupts and autopolling 7 6 to 7 7 L LACS status word condition bit position hex value and type table 3 4 description A 4 monitoring for message from Controller 7 4 linking applications See compiling linking and running applications listen address setting 1 2 Listeners 1 1 See also Talker Listener applications LOK status word condition bit position hex value and type table 3 4 description A 3 M manual See documentation Message Available MAV bit 7 6 National Instruments Corp Index 11 NI 488 2 User Manual for Windows Ind
47. state is terminated and the driver attempts a new set of serial polls Autopolling and Interrupts If autopolling and interrupts are both enabled the NI 488 2 software can perform autopolling after any device level NI 488 call as long as no GPIB I O is currently in progress This means that an automatic serial poll can occur even when your application is not making any calls to the NI 488 2 software Autopolling can also occur when a device level ibwait for RQS is in progress Autopolling is not allowed whenever an application calls a board level NI 488 function or any NI 488 2 routine or the stuck SRQ ESRQ condition occurs If autopolling is enabled and interrupts are disabled you can use autopolling in the following situations only e During a device level ibwait for RQS e Immediately after a device level NI 488 function is completed before control is returned to the application program SRQ and Serial Polling with NI 488 Device Functions You can use the device level NI 488 function ibrsp to conduct a serial poll ibrsp conducts a single serial poll and returns the serial poll response byte to the application program If automatic serial polling is enabled the application program can use ibwait to suspend program execution until RQS appears in the status word ibsta The program can then call ibrsp to obtain the serial poll response byte The following example illustrates the use of the ibwait and ibrsp functions ina typical SRQ se
48. steps correspond to the program flowchart in Figure 2 5 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application brings the film recorder to a ready state by issuing a device clear instruction The film recorder is now set up for operation using its default values The graphic arts designer has previously established that the default values for the film recorder are appropriate for the type of film she is using 3 The application advances the new roll of film into position so the first image can be exposed on the first frame of film This is done by sending the appropriate instructions as described in the film recorder programming guide 4 The application waits for the film recorder to signify that it is done loading the film by waiting for RQS request for service The film recorder asserts the GPIB SRQ line when it has finished loading the film 5 As soon as the film recorder asserts the GPIB SRQ line the application s wait for the RQS event completes The application conducts a serial poll by sending a special command message to the film recorder that directs it to return a response in the form of a serial poll status byte This byte contains information indicating what kind of service the film recorder is requesting or what condition it is flagging In this example it indicates the completion of a command 6 Acolor image transfers to the digital film recorder in three c
49. whether in contract or tort including negligence Any action against National Instruments must be brought within one year after the cause of action accrues National Instruments shall not be liable for any delay in performance due to causes beyond its reasonable control The warranty provided herein does not cover damages defects malfunctions or service failures caused by owner s failure to follow the National Instruments installation operation or maintenance instructions owner s modification of the product owner s abuse misuse or negligent acts and power failure or surges fire flood accident actions of third parties or other events outside reasonable control Copyright Under the copyright laws this publication may not be reproduced or transmitted in any form electronic or mechanical including photocopying recording storing in an information retrieval system or translating in whole or in part without the prior written consent of National Instruments Corporation Trademarks NI 488 NI 488 2 and TNT4882C are trademarks of National Instruments Corporation Product and company names listed are trademarks or trade names of their respective companies WARNING REGARDING MEDICAL AND CLINICAL USE OF NATIONAL INSTRUMENTS PRODUCTS National Instruments products are not designed with components and testing intended to ensure a level of reliability suitable for use in treatment and diagnosis of humans Applications of
50. your application program One way wibic helps you to learn about your instrument and to troubleshoot problems is by displaying the following information on your screen whenever you enter a command e The results of the status word ibsta in hexadecimal notation e The mnemonic constant of each bit set in ibsta e The mnemonic value of the error variable iberr if an error exists the ERR bit is setin ibsta e The count value for each read write or command function e The data received from your instrument Example Using NI 488 Functions This section shows how you might use wibic to test a sequence of NI 488 device function calls You do not need to remember the parameters that each function takes If you enter the function name only wibic prompts you for the necessary parameters National Instruments Corp 5 1 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 1 Torun wibic double click on the wibic icon in the GPIB group in the Program Manager A window appears with the following information displayed National Instruments IEEE 488 Interface Bus Interactive Control Program WIBIC Copyright c 1993 National Instruments Corp Version 3 0 Win16 Version Date May 28 1993 Version Time 09 42 25 All rights reserved Type help for help or q to quit 2 Use ibdev to find the device name which is assigned to your device in the wibconf program The following example shows
51. 085 91 640 0533 Sweden 08 730 49 70 08 730 43 70 Switzerland 056 200 51 51 056 200 51 55 Taiwan 02 377 1200 02 737 4644 U K 01635 523545 01635 523154 National Instruments Corp Cl NI 488 2 User Manual for Windows 512 794 5678 Technical Support Form Photocopy this form and update it each time you make changes to your software or hardware and use the completed copy of this form as a reference for your current configuration Completing this form accurately before contacting National Instruments for technical support helps our applications engineers answer your questions more efficiently If you are using any National Instruments hardware or software products related to this problem include the configuration forms from their user manuals Include additional pages if necessary Name Company Address Fax Phone Computer brand Model Processor Operating system Speed MHz RAM MB Display adapter Mouse yes no Other adapters installed Hard disk capacity MB Brand Instruments used National Instruments hardware product model Revision Configuration continues National Instruments software product Version Configuration The problem is List any error messages The following steps will reproduce the problem Documentation Comment Form National Instruments encourages you to comme
52. 14882 bas The NI 488 2 software also includes the source code for nine example programs which are described in Chapter 2 Application Examples Items to Include e Include the appropriate GPIB header file This file contains prototypes for the NI 488 2 routines and constants that you can use in your application program e Check for errors after each NI 488 2 routine e Declare and define a function to handle GPIB errors This function takes the device offline and closes the application If the function is declared as void gpiberr char msg function prototype then your application invokes it as follows if ibsta amp ERR gpiberr GPIB error National Instruments Corp 3 11 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 NI 488 2 Program Shell Figure 3 2 is a flowchart of the steps to create your application program using NI 488 2 routines Initialize Specified GPIB Interface SendIFC Are All Boards Initialized a Making igh Low Level High Level or High Level Low Level Call Make a Low Level Call Make a High Level Call e Address Devices to Listen SendSetup e Send Data to Device Send e Send Data to Addressed Listener e Receive Data from Device SendDataBytes Receive e Address Device to Talk ReceiveSetup e Clear Device DevClear e Receive Data from Addressed Talker e Serial Poll Device RcvRespMsg ReadStatusByte and so on and so on Finished GPIB
53. 15 buffer set buffer display mode 5 17 help display help information 5 15 n repeat function n times 5 16 print display the ASCII string 5 17 set select device or board 5 15 table of functions 5 14 checking for display errors 4 4 communicating with devices 3 5 count 5 10 debugging applications 4 4 error information 5 9 to 5 10 NI 488 2 User Manual for Windows Index 18 National Instruments Corp Index NI 488 functions examples 5 1 to 5 4 ibdev 5 10 to 5 12 ibfind 5 10 ibrd 5 12 ibwrt 5 12 NI 488 2 routines issuing set command before using 5 13 Receive 5 13 to 5 14 Send 5 13 SendList 5 13 overview 5 1 programming considerations 3 5 purpose 1 7 status word 5 9 syntax 5 4 to 5 9 addresses 5 5 board level functions table 5 7 device level functions table 5 6 NI 488 functions 5 5 to 5 7 NI 488 2 routines 5 8 to 5 9 numbers 5 4 strings 5 5 wibtest utility diagnostic messages 4 1 to 4 2 cable connections 4 2 presence of board 4 1 to 4 2 presence of driver 4 1 purpose 1 7 win 32S files 1 8 Windows interaction with NI 488 2 software 1 8 Windows Interface Bus Interactive Control utility See wibic utility National Instruments Corp Index 19 NI 488 2 User Manual for Windows
54. 488 2 User Manual for Windows 4 2 National Instruments Corp Chapter 4 Debugging Your Application Hardware Information GPIBO an AT GPIB TNT board using the TNT4882C chip It supports both the NI 488 functions and NI 488 2 routines It supports the HS488 high speed protocol It uses base I O address 0x2C0 It uses interrupt level 11 It uses DMA channel 5 You can also run GPIBInfo by specifying the base I O address of a GPIB board in your system If GPIBInfo finds a board at the given address it displays information about that board This feature of GPIBInfo is useful in determining whether you have a GPIB board installed at a particular address If you have a board installed at base I O address 2CO hex entering gpibinfo 0x2c0 produces the following output GPIBInfo Sep 29 1993 Copyright c 1993 National Instruments Corp All rights reserved The board at base I O address 0x2C0 appears to be an AT GPIB TNT It uses the TNT4882C GPIB Controller chip It supports both the NI 488 functions and the NI 488 2 routines It supports the HS488 high speed protocol The NI 488 2 software is configured to access this board as GPIBO Debugging with the Global Status Variables After each function call to your NI 488 2 driver ipbsta iberr ibcnt and ibcnt1l are updated before the call returns to your application You should check for an error after each GPIB call Refer to Chapter 3 Developing Your Application for more information
55. 488 2 software installed An application using NI 488 2 routines operates the three monitoring units The application will obtain information from the multiple units by conducting a parallel poll and will then determine when to pour the metals into the mixture tank The following steps correspond to the program flowchart in Figure 2 8 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application configures the temperature transducer in the first monitoring unit by choosing which of the eight GPIB data lines the transducer uses to respond when a parallel poll is conducted The application also sets the temperature threshold The transducer manufacturer has defined the individual status ist bit to be true when the temperature threshold is reached and the configured status mode of the transducer is assert the data line When a parallel poll is conducted the transducer asserts its data line if the temperature has exceeded the threshold 3 The application configures the temperature transducer in the second monitoring unit for parallel polls 4 The application configures the temperature transducer in the third monitoring unit for parallel polls 5 The application conducts non GPIB activity while the metals are heated 6 The application conducts a parallel poll of all three temperature transducers to determine whether the metals have reached the appropriate temperature Each transducer a
56. 7 to 7 8 with NI 488 2 routines 7 8 to 7 10 service requests See also SRQ service request line application examples 2 10 to 2 13 serial polling TEEE 488 devices 7 5 IEEE 488 2 devices 7 6 stuck SRQ state 7 6 to 7 7 Talker Listener applications 7 4 set command 5 13 Set select device or board function 5 15 setting up your system See configuration setup utility 1 6 software See NI 488 2 software SPOLL status word condition bit position hex value and type table 3 4 description A 3 SRQ service request line See also service requests purpose table 1 3 serial polling using NI 488 device functions 7 7 to 7 8 using NI 488 2 routines 7 8 to 7 10 stuck SRQ state 7 6 to 7 7 SRQI status word condition bit position hex value and type table 3 4 description A 2 National Instruments Corp Index 15 NI 488 2 User Manual for Windows Index status word ibsta 3 3 to 3 4 ATN A 4 CIC A 4 CMPL A 3 DCAS 7 4 A 5 DTAS 7 4 A 5 END A 2 ERR A 2 EVENT A 3 LACS 7 4 A 4 layout table 3 4 LOK A 3 programming considerations 3 3 to 3 4 purpose and use 3 3 to 3 4 REM A 4 RQS A 2 to A 3 SPOLL A 3 SRQI A 2 TACS 7 4 A 4 TIMO A 2 wibic example 5 9 string syntax in wibic 5 5 stuck SRQ state 7 6 to 7 7 System Controller as Controller in Charge 1 1 configuring 8 9 T TACS status word condition bit position hex value and type table 3 4 description A 4 mon
57. 88 2 Driver The NI 488 2 driver for Windows is a dynamic link library DLL which is loaded and unloaded automatically When a Windows application first accesses the NI 488 2 DLL it loads the DLL into memory When the last Windows application using the NI 488 2 DLL has exited the DLL is unloaded from memory The NI 488 2 DLL might use the services of the virtual device driver nivgpibd 386 If you have more than 16 MB of RAM in your computer and you use DMA to read from and write to your GPIB instrument then you must have the nivgpibd 386 device installed If it is not installed the EDMA error might be returned You can remove the nivgpibd 386 device by editing the system ini file as follows 1 Locate the system ini file in the Windows directory usually c windows 2 Find the line in the 386Enh section that is of the following form device drive path nivgpibd 386 where drive is the drive usually c and path is the path where the NI 488 2 software is installed for example c at gpibw 3 Change this command line to a comment by adding a semicolon at the beginning of the line as follows device drive path nivgpibd 386 4 Restart Windows so that the change in system ini can take effect National Instruments Corp 1 9 NI 488 2 User Manual for Windows Chapter 2 Application Examples This chapter contains nine sample applications designed to illustrate specific GPIB concepts and techniques that can he
58. An NI 488 2 routine called with an invalid address e PPollConfig called with an invalid data line or sense bit Solutions e Make sure that the parameters passed to the NI 488 function or NI 488 2 routine are valid e Do not use a device descriptor in a board function or vice versa ESAC 5 ESAC results when ibsic ibsre SendIFC or EnableRemote is called when the GPIB board does not have System Controller capability Solutions Give the GPIB board System Controller capability by calling ibrsc 1 or by using wibconf to configure that capability into the software NI 488 2 User Manual for Windows B 4 National Instruments Corp Appendix B Error Codes and Solutions EABO 6 EABO indicates that an I O operation has been canceled usually due to a timeout condition Other causes for this error are calling ibstop or receiving the Device Clear message from the CIC while performing an I O operation Frequently the I O is not progressing the Listener is not continuing to handshake or the Talker has stopped talking or the byte count in the call which timed out was more than the other device was expecting Solutions e Use the correct byte count in input functions or have the Talker use the END message to signify the end of the transfer e Lengthen the timeout period for the I O operation using ibtmo e Make sure that you have configured your device to send data before you request data ENEB 7 ENEB occurs when no
59. Application Sample programs using direct entry are included with the National Instruments driver The C sample programs are console type applications They illustrate how to use the function calls the NI 488 2 driver exports Since most of the popular compilers support console type applications as well as GUI applications you can create console type applications without knowing Windows GUI programming A console type application is a Win16 program that uses text based input and output instead of a graphical interface This allows you to quickly create a Win16 application by using simple input and output functions like printf and scanf You must define the direct entry prototypes of the functions used in your application program There are three methods of accessing the Dynamic Link Library DLL directly The NI 488 2 Function Reference Manual for DOS Windows provides the format for the first two methods Refer to it for the C direct entry syntax for NI 488 functions and NI 488 2 routines The direct entry sample programs use the third method The three methods of direct entry are documented in the Microsoft Windows Software Development Kit SDK Guide s online help file The first method of accessing the DLL follows Method 1 List Functions in the Module Definition File To use the first method list the names of the functions in the imports section in the application s def file You must create a module definition file such as cprog def Thi
60. Corp B 7 NI 488 2 User Manual for Windows Error Codes and Solutions Appendix B EBUS 14 EBUS results when certain GPIB bus errors occur during device functions All device functions send command bytes to perform addressing and other bus management Devices are expected to accept these command bytes within the time limit specified by the default configuration or the ibtmo function EBUS results if a timeout occurred while sending these command bytes Solutions e Verify that the instrument is operating correctly e Check for loose or faulty cabling or several powered off instruments on the GPIB e If the timeout period is too short for the driver to send command bytes increase the timeout period ESTB 15 ESTB is reported only by the ibrsp function ESTB indicates that one or more serial poll status bytes received from automatic serial polls have been discarded because of a lack of storage space Several older status bytes are available however the oldest is being returned by the ibrsp call Solutions e Call ibrsp more frequently to empty the queue e Disable autopolling with the ibconfig function or the wibconf utility ESRQ 16 ESRQ occurs only during the ibwait function or the WaitSRQ routine ESRQ indicates that a wait for RQS is not possible because the GPIB SRQ line is stuck on This situation can be caused by the following events e Usually a device unknown to the software is asserting SRQ Because the software
61. EN 8 1 Upper and Lower Levels of wibconf eseeeeeeseesseresresesresrrsrserssrsresrrsrssresesen 8 2 Upper Level Device Map cn ci estes 8 3 Device Maps of the Boards 0 ceeeeesesseceeeeneeeneeeeeeeeeen 8 4 Hel priest ath earn AE E e tones haves Aion 8 4 IRGNAME r r aa e AE EEr E E RE 8 4 Disjonn ct rosana raoa OE EE N e 8 4 Edit esttginiio eis e a R A Ta 8 5 E te een Rite a ea ad RAR 8 5 Lower Level Device Board Characteristics ccscccesceeeteeeeeeeeen 8 5 Change Characteristics ccescesessesseeseceseceeeeeeeseeseseaeenee 8 6 Change Board or Device eee eeeeeecseeeeeeeesceseeeeneeeneeeneeeae 8 6 Helaian aaien n e ia r EEA e iaa 8 6 Reset Valt sinceron a e ee 8 6 Retufn t Mapsen sh isinne haein aa EEE aaa 8 6 Board and Device Configuration Options sessessesesesseereeresessesresresreereresreerea 8 7 Primary GPIBAdAreSS sce tat ios E Sed id Set ES E SRE 8 7 Secondary GPIB Address 0 ee eseseessececceseceseeseeenecenesseeesneeeeeeeees 8 7 Timieout Settun 8 5154 sivesecas sesive acsperneapissdietteavertnaphieinaseih aaeh 8 7 Serial Poll Timeouts Device Characteristic Only ceeeeeee 8 8 Terminate Read on EOS criei nran aa E 8 8 Set EOI with EOS on Writes seseesseseesessseseeseesessessessresessesnensesess 8 8 Type of Compare on EOS 0 ei ceeessecesseeeseceseeeeeeeeeseseaeeseeeaeeeaeenees 8 8 EOS Bytes unner a faniestnnaad a a 8 8 Send EOI at End of Write 2 0 0 cececescees
62. GPIB board exists at the I O address specified in the configuration program This happens when the board is not physically plugged into the system the I O address specified during configuration does not match the actual board setting there is a system conflict with the base I O address or the Use This GPIB Interface field in wibconf is not set correctly Solutions e Make sure there is a GPIB board in your computer that is properly configured both in hardware and software using a valid base I O address e Make sure that the Use This GPIB Interface field in wibconf is set to Yes EDMA 8 EDMaA is returned when an error occurs using DMA for data transfers If your computer has more than 16 MB of RAM and you do not have the National Instruments virtual GPIB device nivgpibd 386 installed the NI 488 2 software returns EDMA if you are using DMA and the data buffer is located in memory above 16 MB National Instruments Corp B 5 NI 488 2 User Manual for Windows Error Codes and Solutions Appendix B If you are using Windows 3 0 with DMA for data transfers and you do not have the National Instruments virtual DMA device nivdmad 386 installed the NI 488 2 software returns EDMA if you try to use DMA to transfer data Solutions e Install the appropriate virtual device in the system ini file in the Windows directory in the 386Enh section The following line installs the virtual GPIB device device drive path nivgpib 386 wh
63. NI 488 2 User Manual for Windows January 1996 Edition Part Number 370902A 01 Copyright 1993 1996 National Instruments Corporation All Rights Reserved National Instruments Corporate Headquarters 6504 Bridge Point Parkway Austin TX 78730 5039 512 794 0100 Technical support fax 800 328 2203 512 794 5678 Branch Offices Australia 03 9 879 9422 Austria 0662 45 79 90 0 Belgium 02 757 00 20 Canada Ontario 519 622 9310 Canada Qu bec 514 694 8521 Denmark 45 76 26 00 Finland 90 527 2321 France 1 48 14 24 24 Germany 089 741 31 30 Hong Kong 2645 3186 Italy 02 48301892 Japan 03 5472 2970 Korea 02 596 7456 Mexico 95 800 010 0793 Netherlands 0348 433466 Norway 32 84 84 00 Singapore 2265886 Spain 91 640 0085 Sweden 08 730 49 70 Switzerland 056 200 51 51 Taiwan 02 377 1200 U K 01635 523545 Limited Warranty The media on which you receive National Instruments software are warranted not to fail to execute programming instructions due to defects in materials and workmanship for a period of 90 days from date of shipment as evidenced by receipts or other documentation National Instruments will at its option repair or replace software media that do not execute programming instructions if National Instruments receives notice of such defects during the warranty period National Instruments does not warrant that the operation of the software shall be uninterrupted or error free A Return Material Authorization
64. SI IEEE Standard 488 1 1987 IEEE Standard Digital Interface for Programmable Instrumentation e ANSI IEEE Standard 488 2 1992 IEEE Standard Codes Formats Protocols and Common Commands e Microsoft Windows User s Guide Customer Communication National Instruments wants to receive your comments on our products and manuals We are interested in the applications you develop with our products and we want to help if you have problems with them To make it easy for you to contact us this manual contains comment and configuration forms for you to complete These forms are in Appendix C Customer Communication at the end of this manual NI 488 2 User Manual for Windows xvi National Instruments Corp Chapter 1 Introduction This chapter gives an overview of GPIB and the NI 488 2 software GPIB Overview The ANSI IEEE Standard 488 1 1987 also known as GPIB General Purpose Interface Bus describes a standard interface for communication between instruments and controllers from various vendors It contains information about electrical mechanical and functional specifications The GPIB is a digital 8 bit parallel communications interface with data transfer rates of 1 Mbytes s and above The bus supports one System Controller usually a computer and up to 14 additional instruments The ANSI IEEE Standard 488 2 1987 extends IEEE 488 1 by defining a bus communication protocol a common set of data codes and formats and a generic set o
65. The primary GPIB address is used to compute the talk and listen addresses of devices and boards The NI 488 2 driver automatically forms a listen address by adding hex 20 to the primary address and a talk address by adding hex 40 to the primary address For example a primary address of hex 10 has a listen address of hex 30 and a talk address of hex 50 Secondary GPIB Address Any device or board using extended addressing must be assigned a secondary address in the range hex 60 to hex 7E 96 to 126 decimal or you can select NONE to disable secondary addressing As with primary addressing the secondary GPIB address of a device is set within that device either with hardware switches or by a software program The address set within the device must correspond to the address in the memory resident driver Refer to the device documentation for instructions about secondary addressing The default setting for this characteristic is NONE for all boards and devices Timeout Setting The timeout value is the approximate length of time that GPIB functions wait for data to be transferred or commands to be sent It is also the length of time that the ibwait function waits for an event before returning if the TIMO bit is set in the event mask For example if the SRQI bit and TIMO bit in the event mask are passed to the ibwait function and no SRQ is detected then the function times out after the timeout period has elapsed The default option for this chara
66. Value Use the function key lt F6 gt to reset a characteristic option to its previous value Return to Map At the lower level the function key lt F9 gt or lt Escape gt returns you to the upper level device map of wibconf NI 488 2 User Manual for Windows 8 6 National Instruments Corp Chapter 8 wibconf Windows Interface Bus Configuration Utility Board and Device Configuration Options To view detailed information about each characteristic position the cursor in the field for that characteristic For information on characteristics specific to a particular driver check the getting started manual that came with your interface board The following paragraphs describe the options available in wibconf for the NI 488 2 software for Windows Primary GPIB Address All devices and boards must be assigned a unique primary address in the range hex 00 to hex 1E 0 to 30 decimal The default primary address of all GPIB boards is 0 The GPIB primary address of any device is set within the device either with hardware switches or a by software program The address set within the device must correspond to the address in the memory resident driver In the NI 488 2 driver for Windows the default primary addresses of dev1 through dev16 and dev17 through dev32 are through 16 respectively Refer to the device documentation for instructions about setting the device address GPIB boards do not have hardware switches to select the GPIB address
67. a device to be a Talker It can be any one of the 31 primary addresses The concurrent processing of more than one program or task National Instruments Corp Glossary 5 NI 488 2 User Manual for Windows Glossary N NDAC Not Data Accepted NRFD Not Ready For Data P parallel poll PIO PPC Parallel Poll Configure PPD Parallel Poll Disable PPE Parallel Poll Enable PPU Parallel Poll Unconfigure programmed I O R RAM resynchronize RQS One of the three GPIB handshake lines See handshake One of the three GPIB handshake lines See handshake The process of polling all configured devices at once and reading a composite poll response See serial poll See programmed I O Parallel Poll Configure is the GPIB command used to configure an addressed Listener to participate in polls Parallel Poll Disable is the GPIB command used to disable a configured device from participating in polls There are 16 PPD commands Parallel Poll Enable is the GPIB command used to enable a configured device to participate in polls and to assign a DIO response line There are 16 PPE commands Parallel Poll Unconfigure is the GPIB command used to disable any device from participating in polls Low speed data transfer between the GPIB board and memory in which the CPU moves each data byte according to program instructions See DMA Random acc ess memory The NI 488 2 software and the user appl
68. about how to use these variables within your program to automatically check for errors After you determine which GPIB call is failing and note the corresponding values of the global variables refer to Appendix A Status Word Conditions and Appendix B Error Codes and Solutions These appendixes will help you interpret the state of the driver National Instruments Corp 4 3 NI 488 2 User Manual for Windows Debugging Your Application Chapter 4 Debugging with wibic If your application does not automatically check for and display errors you can locate an error by using wibic Simply issue the same functions or routines one at a time as they appear in your application program Because wibic returns the status values and error codes after each call you should be able to determine which GPIB call is failing For more information about wibic refer to Chapter 5 wibic Windows Interface Bus Interactive Control Utility After you determine which GPIB call is failing and note the corresponding values of the global variables refer to Appendix A Status Word Conditions and Appendix B Error Codes and Solutions These appendixes will help you interpret the state of the driver Debugging with GPIB Spy The NI 488 2 software includes GPIB Spy an applications monitor utility that is useful as a debugging tool You can use GPIB Spy to monitor the NI 488 and NI 488 2 calls made by your Windows application You can configure GPIB Spy to suspend
69. addressed as a Talker TACS is set whenever the GPIB board detects that its talk address and secondary address if enabled has been sent either by the GPIB board itself or by another Controller TACS is cleared whenever the GPIB board detects the Untalk UNT command its own listen address a talk address other than its own talk address or Interface Clear IFC LACS brd LACS indicates whether the GPIB board is addressed as a Listener LACS is set whenever the GPIB board detects that its listen address and secondary address if enabled has been sent either by the GPIB board itself or by another Controller LACS is also set whenever the GPIB board shadow handshakes as a result of the ibgts function LACS is cleared whenever the GPIB board detects the Unlisten UNL command its own talk address Interface Clear IFC or that the ibgts function has been called without shadow handshake NI 488 2 User Manual for Windows A 4 National Instruments Corp Appendix A Status Word Conditions DTAS brd DTAS indicates whether the GPIB board has detected a device trigger command DTAS is set whenever the GPIB board as a Listener detects that the Group Execute Trigger GET command has been sent by another Controller DTAS is cleared on any call immediately following an ibwait call if the DTAS bit is set in the ibwait mask parameter DCAS brd DCAS indicates whether the GPIB board has detected a device clear command DCAS is set wheneve
70. al Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility Table 5 3 Syntax for NI 488 2 Routines in wibic Continued SetRWLS addrlist Put devices in remote with lockout state TestSys addrlist Causes multiple devices to perform self tests Status Word In wibic all NI 488 functions except ibfind and ibdev and NI 488 2 routines return the status word ibsta in two forms a hex value in square brackets and a list of mnemonics in parentheses In the following example the status word is on the second line It shows that the device function write operation completed successfully udO ibwrt f2t3x 0100 cmp1 count 5 ud0 For more information about the status word refer to Chapter 3 Developing Your Application Error Information If an NI 488 function or NI 488 2 routine completes with an error wibic displays the relevant error mnemonic In the following example the error condition EBUS has occurred during a data transfer ud0 ibwrt f2t3x 8100 err cmpl error EBUS count 1 udo In this example the addressing command bytes could not be transmitted to the device This indicates that either dev1 is powered off or the GPIB cable is disconnected National Instruments Corp 5 9 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 For a detailed list of the error codes and their meanings refer to Chapter 4 Debugging Your A
71. alls made while GPIB Spy is active are recorded in the main GPIB Spy window GPIB Spy can be turned on and off by choosing SpyOn from the Spy menu When GPIB Spy is on the caption on the main GPIB Spy window is GPIB Spy recording When GPIB Spy is off the caption is GPIB Spy Figure 6 1 shows the main GPIB Spy window with several NI 488 calls recorded in it GPIB Spy recording N Spy Configure Output Help ASK BD DEV CALL IBSTA IBCHNTL IBERR ibdeyv ibclr ibrsp ibtrg ibrd ibtno ibask ibconfig ibwrt ibclr 0 4 1 4 8 8 8 8 8 4 0 Figure 6 1 Main GPIB Spy Window National Instruments Corp 6 1 NI 488 2 User Manual for Windows GPIB Spy Chapter 6 Exiting GPIB Spy Exit GPIB Spy by choosing Exit from the Spy menu Caution When you exit GPIB Spy all of the recorded information is lost See the section in this chapter entitled GPIB Spy Output Options if you want to avoid losing the information Viewing Call Details To see detailed information about calls recorded in GPIB Spy use the Call Details window You can activate the Call Details window in two different ways If you double click on any recorded call in the main GPIB Spy window the call details for that particular call are displayed in the Call Details window You can also select the View Details option from the Spy menu which makes the Call Details window the top level window You can use the Call Details window in two ways If you
72. and NI 488 2 routines in your application program Chapter 8 wibconf Windows Interface Bus Configuration Utility contains a description of wibconf the software configuration program you can use to configure the NI 488 2 software for Windows Appendix A Status Word Conditions gives a detailed description of the conditions reported in the status word ibsta Appendix B Error Codes and Solutions lists a description of each error some conditions under which it might occur and possible solutions Appendix C Customer Communication contains forms you can use to request help from National Instruments or to comment on our products and manuals The Glossary contains an alphabetical list and description of terms used in this manual including abbreviations acronyms metric prefixes mnemonics and symbols The ndex contains an alphabetical list of key terms and topics in this manual including the page where you can find each one NI 488 2 User Manual for Windows xiv National Instruments Corp About This Manual Conventions Used in This Manual The following conventions are used in this manual bold bold italic italic monospace bold monospace italic monospace lt gt IEFE 488 and TEEE 488 2 NI 488 2 software Text in bold denotes windows menus menu options and dialog box options Bold italic text denotes a note caution or warning Italic text denotes emphasis cross references field names o
73. arameters where mn is mnemonic for a configuration parameter or equivalent integer value Enable disable DMA Change disable EOS message Enable disable END message Return the oldest recorded event ibfind udname Return unit descriptor where udname is the symbolic name of a board for example or gpib0 ibgts v Go from Active Controller to standby ibist v Set clear ist Read the state of all GPIB control lines Check for presence of device on the GPIB at pad sad iblines ibln v v ibloc Go to local ibonl v Place device online or offline ibpad v Change primary address ibwait mask Wait for selected event where mask is a hex octal or decimal integer or a mask bit mnemonic Write data Write data asynchronously ibwrtf flname Write data from a file where flname is pathname of file to write 5 7 National Instruments Corp NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 wibic Syntax for NI 488 2 Routines Table 5 3 summarizes the syntax of NI 488 2 routines in wibic v represents a number and string represents a string address represents an address and addrlist represents a list of addresses separated by commas For more information about the routine parameters use the wibic help feature or refer to the NJ 488 2 Function Reference Manual for DOS Windows Table 5 3 Syntax for NI 488 2 Routines in wibic continues NI 488 2 User Manual for Windows 5 8 Nation
74. ational Instruments Corp B 9 NI 488 2 User Manual for Windows Appendix C Customer Communication For your convenience this appendix contains forms to help you gather the information necessary to help us solve technical problems you might have as well as a form you can use to comment on the product documentation Filling out a copy of the Technical Support Form before contacting National Instruments helps us help you better and faster National Instruments provides comprehensive technical assistance around the world In the U S and Canada applications engineers are available Monday through Friday from 8 00 a m to 6 00 p m central time In other countries contact the nearest branch office You may fax questions to us at any time Corporate Headquarters 512 795 8248 Technical support fax 800 328 2203 Branch Offices Phone Number Fax Number Australia 03 9 879 9422 03 9 879 9179 Austria 0662 45 79 90 0 0662 45 79 90 19 Belgium 02 757 00 20 02 757 03 11 Canada Ontario 519 622 9310 519 622 9311 Canada Quebec 514 694 8521 514 694 4399 Denmark 45 76 26 00 45 767111 Finland 90 527 2321 90 502 2930 France 1 48 14 24 24 1 48 14 24 14 Germany 089 741 31 30 089 714 60 35 Hong Kong 2645 3186 2686 8505 Italy 02 48301892 02 48301915 Japan 03 5472 2970 03 5472 2977 Korea 02 596 7456 02 596 7455 Mexico 95 800 010 0793 5 520 3282 Netherlands 0348 433466 0348 430673 Norway 32 84 84 00 32 84 86 00 Singapore 2265886 2265887 Spain 91 640 0
75. bcnt int SerialPollResponse DevicePad AddrList ibent DeviceResponse SerialPollResponse return Example 2 Using AllSpoll This example illustrates the use of Al1Spo11 to serial poll three devices void GetAl1lSerialPollResponses Addr4882 t AddrList short ResponseList int WaitResult WaitSRQ 0 amp WaitResult if WaitResult printf SRQ is asserted n National Instruments Corp 7 9 NI 488 2 User Manual for Windows GPIB Programming Techniques Chapter 7 Use Allspoll to serial poll all the devices at once AllSpoll 0 AddrList ResponseList if ibsta amp ERR for i 0 AddrList i NOADDR i printf Device at pad x returned byte x n AddrList i ResponseList i return Parallel Polling Although parallel polling is not widely used it is a useful method for obtaining the status of more than one device at the same time The advantage of a parallel poll is that it can easily check up to eight individual devices at once In comparison eight separate serial polls would be required to check eight devices for their serial poll response bytes Implementing a Parallel Poll You can implement parallel polling with either NI 488 functions or NI 488 2 routines If you use NI 488 2 routines to execute parallel polls you do not need extensive knowledge of the parallel polling messages However you should use the NI 488 functio
76. before exiting wibconf 8 13 communication errors 4 6 repeat addressing 4 6 termination method 4 6 configuration errors 4 5 to 4 6 timing errors 4 6 wibic error information 5 9 to 5 10 error variable iberr 3 5 ESAC error code definition table 4 5 description B 4 ESRQ error code definition table 4 5 description B 8 to B 9 ESTB error code definition table 4 5 description B 8 ETAB error code definition table 4 5 description B 8 EVENT bit enabling 7 5 event queue 7 5 Event Status bit ESB 7 6 EVENT status word condition bit position hex value and type table 3 4 description A 3 execute indirect file function wibic 5 16 National Instruments Corp Index 7 NI 488 2 User Manual for Windows Index F fax technical support C 1 FindLstn routine 3 13 FindRQS routine 7 8 7 9 functions See auxiliary functions wibic NI 488 functions G General Purpose Interface Bus See GPIB global variables 3 3 to 3 5 count variables ibcnt and ibentl 3 5 debugging applications 4 3 error variable iberr 3 5 status word ibsta 3 3 to 3 4 A 1 to A 5 GPIB configuration 1 4 to 1 6 See also wibconf utility controlling more than one board 1 5 linear and star system configuration illustration 1 4 requirements 1 5 to 1 6 definition 1 1 overview 1 1 sending messages across 1 2 to 1 3 data lines 1 2 handshake lines 1 3 interface management lines 1 3 Talkers Listeners and Contr
77. called the Configure CFGn message Because HS488 can operate only with cable lengths of 1 to 15 meters only CFGn values of 1 through 15 hex 61 through 6F are valid If the cable length was configured correctly in wibconf you can determine how many meters of cable are in your system by calling ibask option IbaHSCableLength in your application program For CFE and CFGn messages refer to Appendix A Multiline Interface Messages in the NI 488 2 Function Reference Manual for DOS Windows System Configuration Effects on HS488 Maximum data transfer rates can be limited by your host computer and GPIB system setup For example even though the theoretical maximum transfer rate with HS488 is 8 Mbytes s the maximum transfer rate obtainable on PC compatible computers with an ISA bus is 2 Mbytes s The same IEEE 488 cabling constraints for a 350 ns T1 delay apply to HS488 As you increase the amount of cable in your GPIB configuration the maximum data transfer rate using HS488 decreases For example two HS488 devices connected by two meters of cable can transfer data faster than three HS488 devices connected by four meters of cable Waiting for GPIB Conditions You can use the ibwait function to obtain the current ibsta value or to suspend your application until a specified condition occurs on the GPIB If you use ibwait witha parameter of zero it immediately updates ibsta and returns If you want to use ibwait to wait for one or more events to occ
78. ceceneceeeeeeeeeeeeeceeneeeseeentneeen 8 9 System Controller Board Characteristic Only ss cc 8 9 Assert REN when SC Board Characteristic Only eseeeeee 8 9 Enable Auto Serial Polling Board Characteristic Only 0 8 9 Enable CIC Protocol Board Characteristic Only ceeeeereeeee 8 9 Bus Timing Board Characteristic Only 0 0 ceeeseeseeeeeeseeseeeneeeees 8 10 Cable Length for High Speed Board Characteristic Only 8 10 Parallel Poll Duration Board Characteristic Only ceseeee 8 10 Use This GPIB Interface Board Characteristic Only 08 8 10 Base I O Address Board Description Only ees eeeeeeseeeeeeneeeee 8 10 DMA Channel Board Characteristic Only eccceesceesseeeeeeeeeeeees 8 11 Interrupt Jumper Setting Board Characteristic Only 0 0 eee 8 11 Serial Poll Timeout Device Characteristic Only escesseeeeen 8 11 Enable Repeat Addressing Device Characteristic Only 4 8 11 GPIB PCII ITA Mode Switch oo eeessesseceeeseeeseeeeseesaeeseeeseenees 8 11 Default Configurations in WibCONE oe eee eeeceeeesecesecseeeseeeeeeseeeseeeseeeeeneenaee 8 12 National Instruments Corp ix NI 488 2 User Manual for Windows Contents Exiting WibCOnL eiiieaen iei siae s saus I E EEEIEE ar EEEE Eni vase 8 12 Checking Tor Errors isisdisietuciac ie aad A RE 8 13 wibconf Batch Moderisano e o eaa a Ea 8 13 Appendix A Status Word Conditio
79. cific commands are sent across the GPIB to change their state You might need to configure your NI 488 2 driver to perform repeat addressing if your device does not remain in its currently addressed state Refer to Chapter 8 wibconf Windows Interface Bus Configuration Utility or to the description of ibconfig option IbcREADDR in the NI 488 2 Function Reference Manual for DOS Windows for more information about reconfiguring your software Termination Method You should be aware of the data termination method that your device uses By default your NI 488 2 software is configured to send EOI on writes and terminate reads on EOI or a specific byte count If you send a command string to your device and it does not respond it might be because it does not recognize the end of the command You might need to send a termination message such as lt CR gt lt LF gt after a write command as follows ibwrt dev COMMAND x0A x0D 9 NI 488 2 User Manual for Windows 4 6 National Instruments Corp Chapter 4 Debugging Your Application Common Questions Can I have the DOS and Windows drivers installed at the same time Yes there is nothing wrong with installing both However it is better not to access them at the same time What do I do if ibdiag or wibtest fail with an error Refer to the Running wibtest section of this chapter and to the section about ibdiag in your getting started manual for specific information about what might ca
80. command to print the new image and immediately returns without waiting for the I O operation to be completed 4 The application saves the image obtained to a file 5 The application inquires as to whether the printing operation has completed by issuing a GPIB wait command If the status reported by the wait command indicates completion CMPL is in the status returned and more scans need to be acquired Steps 2 through 5 are repeated until the scans have all been acquired If the status reported by the wait command in Step 5 does not indicate that printing is finished statistical computations are performed on the scan obtained and Step 5 is repeated 6 Asacleanup step before exiting the application returns the interface board to its original state by taking it offline NI 488 2 User Manual for Windows 2 6 National Instruments Corp Chapter 2 Application Examples GPIB Cable Computer Color Printer Print Image Non GPIB Activity Save to Disk Non GPIB Activity Compute Statistics More Images CLEAN UP Figure 2 3 Program Flowchart for Example 3 National Instruments Corp 2 7 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 4 End of String Mode This example illustrates how to use the end of string modes to detect that the GPIB device has finished sending data A journalist is using a GPIB scanner to scan some pictures into his personal computer for a news story A GPIB
81. cteristic is 10 s National Instruments Corp 8 7 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter amp Serial Poll Timeouts Device Characteristic Only This timeout value controls the length of time the driver waits for a serial poll response from a device The IEEE 488 1 specification does not specify the length of time a Controller should wait for the response byte The default of 1 s should work for most devices If you seem to have problems with serial polls try using a longer timeout value Terminate Read on EOS Some devices send an EOS byte signaling the last byte of a data message A yes response in this field causes the GPIB board to terminate a read operation when it receives the EOS byte The default option for this characteristic is no Set EOI with EOS on Writes A yes response in this field causes the GPIB board to assert the EOI line when the EOS byte is detected on a write operation The default option for this characteristic is no Type of Compare on EOS This field specifies the type of comparison to be made with the EOS byte You can state whether to compare all eight bits or just the seven least significant bits which are in ASCII or ISO International Standards Organization format The default option for this characteristic is 7 bit Note This field is only meaningful if a yes response was given for either the Set EOI with EOS on Write field or the Terminate Read
82. d 3 The interface board returns a response byte of hex 42 4 The current CIC passes control to the GPIB board If the current CIC does not pass control the NI 488 2 driver returns the ECIC error code to your application This error can occur if the current CIC does not understand the CIC Protocol If this happens you could send a device specific command requesting control for the GPIB board Then use a board level ibwait command to wait for CIC Talker Listener Applications Although designed for Controller In Charge applications you can also use the NI 488 2 software in most non Controller situations These situations are known as Talker Listener applications because the interface board is not the GPIB Controller A typical Talker Listener application waits for commands from the Controller and responds as appropriate The following paragraphs describe some programming techniques for Talker Listener applications Waiting for Messages from the Controller A Talker Listener application typically uses ibwait with a mask of 0 to monitor the status of the interface board Then based on the status bits set in ibsta the application takes whatever action is appropriate For example the application could monitor the status bits TACS Talker Active State and LACS Listener Active State to determine when to send data to or receive data from the Controller The application could also monitor the DCAS Device Clear Active State and DTAS Device Tr
83. d use the LoadLibrary and Get ProcAddress functions to load the library and retrieve a pointer to the function The Direct Entry sample programs use this method At the beginning of your program declare the following global variable for the DLL as follows HINSTANCE GpibLib NULL NI 488 2 User Manual for Windows 3 20 National Instruments Corp Chapter 3 Developing Your Application The prototypes for each function can be found in the M 488 2 Function Reference Manual for DOS Windows For functions that return an integer value like ibdev you must cast the pointer to the function as follows int _far pascal Pname where Pname is the name of the pointer to the function For functions that is the NI 488 2 calls that do not return a value you must cast the pointer to the function as follows void _ far pascal Pname where Pname is the name of the pointer to the function A function is followed by its list of parameters and pointers to the three global variables as described in the N J 488 2 Function Reference Manual for DOS Windows The following is an example of how to cast the function pointer and how to set up the parameter list for ibdev and ibonl int _far pascal Pibdev int BdIndx int pad int sad int tmo int eot int eos int far ibsta int _far iberr long _far ibcntl int _far pascal Pibonl int ud int v int _far ibsta int _far iberr long _far ibcntl You must load the GPIB DLL libra
84. d in a configuration file that you create To use the configuration file that you created enter the following command wibconf b filename where filename is the name of the configuration file You must include at least one space between b and filename The configuration file is a free form text file consisting of pairs of items Each item must be separated by at least one space or new line character The first item of a pair is a mnemonic that represents a board or device characteristic or a device map configuration function for example rename connect disconnect to be configured The second item of a pair is the value to which the first item mnemonic should be set Before configuring a board or device that board or device must be found by the find name pair where name is board or device and is the index of the GPIB board or device you are configuring When wibconf is run in batch mode it checks the syntax of the first item in the pair and the value range of the second item and it reports any errors as it finds them Ifa value range error is found the correct range of values is displayed If any errors are found the driver is not configured National Instruments Corp 8 13 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter 8 The following example is a sample configuration file followed by an explanation of each entry find devicel name plotter find device2 disconnect find
85. description B 7 ECIC error code definition table 4 5 description B 2 to B 3 EDMA error code definition table 4 5 description B 5 to B 6 EDVR error code definition table 4 5 description B 1 to B 2 wibic example 5 11 EFSO error code definition table 4 5 description B 7 end of string character See EOS END status word condition bit position hex value and type table 3 4 description A 1 to A 2 ENEB error code definition table 4 5 description B 5 wibic example 5 11 ENOL error code definition table 4 5 description B 3 EOI end or identify line purpose table 1 3 send EOI at end of write 8 9 set EOI with EOS on writes 8 8 termination of data transfers 7 1 to 7 2 EOIP error code definition table 4 5 description B 6 to B 7 EOS configuring EOS mode 7 1 end of string mode application example 2 8 to 2 9 set EOI with EOS on writes 8 8 setting character for EOS byte 8 8 terminate read on EOS 8 8 type of compare on EOS 8 8 ERR status word condition bit position hex value and type table 3 4 description A 1 NI 488 2 User Manual for Windows Index 6 National Instruments Corp Index error codes and solutions EABO B 5 EADR B 3 to B 4 EARG B 4 EBUS B 8 ECAP B 7 ECIC B 2 to B 3 EDMA B 5 to B 6 EDVR B 1 to B 2 EFSO B 7 ENEB B 5 ENOL B 3 EOIP B 6 to B 7 ESAC B 4 to B 5 ESRQ B 8 to B 9 ESTB B 8 ETAB B 9 table of codes 4 5 error conditions checking for errors
86. e If EOT mode is enabled the NI 488 2 driver asserts the GPIB EOI line when the last byte of a write is sent out on the GPIB If it is disabled the EOI line is not asserted with the last byte of a write You can use the ibeos function to enable disable or configure the EOS modes EOS mode configuration includes the following information e A 71 bit or 8 bit EOS byte e EOS comparison method This indicates whether the EOS byte has seven or eight significant bits For a 7 bit EOS byte the eighth bit of the EOS byte is ignored e EOS write method If this is enabled the NI 488 2 driver automatically asserts the GPIB EOI line when the EOS byte is written to the GPIB If the buffer passed into an ibwrt call contains five occurrences of the EOS byte the EOI line is asserted as each of the five EOS bytes are written to the GPIB If an ibwrt buffer does not contain an occurrence of the EOS byte the EOI line is not asserted unless the EOT mode is enabled in which case the EOI line is asserted with the last byte of the write e EOS read method If this is enabled the NI 488 2 driver terminates ibrd ibrda and ibrdf calls when the EOS byte is detected on the GPIB when the GPIB EOI line is asserted or when the specified count is reached If the EOS read method is disabled ibrd ibrda and ibrdf calls terminate only when the GPIB EOI line is asserted or the specified count has been read National Instruments Corp 7 1 NI 488 2 User Manual fo
87. e SPOLL in Talker Listener applications to determine when the Controller has serial polled the GPIB board The SPOLL bit is disabled by default Use the ibconfig function option IbcSPol11Bit to enable it When this bit is enabled it is set after the board has been polled SPOLL is cleared on any call immediately after an ibwait call if the SPOLL bit was set in the wait mask or immediately following a call to ibrsv EVENT brd Use EVENT in Talker Listener applications applications in which the GPIB interface is not the Controller to monitor the order of GPIB device clear group execute trigger and send interface clear commands The usual DCAS and DTAS bits of ibsta might be insufficient The EVENT bit is disabled by default If you want to use this bit you must use the ibconfig function option IbcEvent Queue to enable it When you enable this bit the DCAS and DTAS bits are disabled When an event occurs this bit is set and any I O in progress is aborted The application can then call the ibevent function to determine which event occurred CMPL dev brd CMPL indicates the condition of I O operations It is set whenever an I O operation is complete CMPL is cleared while the I O operation is in progress LOK brd LOK indicates whether the board is in a lockout state While LOK is set the EnableLocal routine or ibloc function is inoperative for that board LOK is set whenever the GPIB board detects that the Local Lockout LLO
88. e code file for Example 7 It uses NI 488 2 routines to communicate with GPIB devices that use the GPIB SRQ line to request service e ppoll c is the source code file for Example 8 It uses NI 488 2 routines to conduct parallel polls e non cic c is the source code file for Example 9 It illustrates how you can use the NI 488 2 driver in a non Controller application National Instruments Corp 2 1 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 1 Basic Communication This example focuses on the basics of establishing communication between a host computer and a GPIB device A technician needs to monitor voltage readings using a GPIB multimeter His computer is equipped with an IEEE 488 2 interface board The NI 488 2 software is installed and a GPIB cable runs from the computer to the GPIB port on the multimeter The technician is familiar with the multimeter remote programming command set This list of commands is specific to his multimeter and is available from the multimeter manufacturer He sets up the computer to direct the multimeter to take measurements and record each measurement as it occurs To do this he has written an application that uses some simple high level GPIB commands The following steps correspond to the program flowchart in Figure 2 1 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application sends the multimeter an instructi
89. e device status word ibsta is set 4 The polling continues until SRQ is unasserted or an error condition is detected 5 To empty the queue use the ibrsp function ibrsp returns the first queued response Other responses are read in first in first out FIFO fashion If the RQS bit of the status word is not set when ibrsp is called a serial poll is conducted and returns whatever response is received You should empty the queue as soon as an automatic serial poll occurs because responses might be discarded if the queue is full 6 If the RQS bit of the status word is still set after ibrsp is called the response byte queue contains at least one more response byte If this happens you should continue to call ibrsp until RQS is cleared Stuck SRQ State If autopolling is enabled and the GPIB interface board detects an SRQ the driver serial polls all open devices connected to that board The serial poll continues until either SRQ unasserts or all the devices have been polled NI 488 2 User Manual for Windows 7 6 National Instruments Corp Chapter 7 GPIB Programming Techniques If no device responds positively to the serial poll or if SRQ remains in effect because of a faulty instrument or cable a stuck SRQ state is in effect If this happens during an ibwait for RQS the driver reports the ESRQ error If the stuck SRQ state happens no further polls are attempted until an ibwait for RQS is made When ibwait is issued the stuck SRQ
90. e driver returns EOIP NI 488 2 User Manual for Windows B 6 National Instruments Corp Appendix B Error Codes and Solutions Solutions Resynchronize the driver and the application before making any further GPIB calls Resynchronization is accomplished by using one of the following three functions e ibwait If the returned ibsta contains CMPL then the driver and application are resynchronized e ibstop The I O is canceled the driver and application are resynchronized e ibonl The I O is canceled and the interface is reset the driver and application are resynchronized ECAP 11 ECAP results when your GPIB board lacks the ability to carry out an operation or when a particular capability has been disabled in the software and a call is made that requires the capability Solutions Check the validity of the call or make sure your GPIB interface board and the driver both have the needed capability EFSO 12 EFSO results when an ibrdf or ibwrtf call encounters a problem performing a file operation Specifically this error indicates that the function is unable to open create seek write or close the file being accessed The specific DOS error code for this condition is contained in ibcnt1l Solutions e Make sure the filename path and drive that you specified are correct e Make sure that the access mode of the file is correct e Make sure there is enough room on the disk to hold the file National Instruments
91. ed in hex format along with its ASCII equivalent The wibic program also displays the status word and the count of transferred bytes National Instruments Corp 5 13 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 488 2 0 Receive 5 10 STOPend 2124 end cmpl cic lacs count 5 48 65 6c 6c 6f Hello Auxiliary Functions Table 5 4 summarizes the auxiliary functions that you can use in wibic Table 5 4 Auxiliary Functions in wibic set udname Select active device or board where udname is the symbolic name of the new device or board for example dev1 or gpibo Call ibfind or ibdev initially to open each device or board help option Display help information where option is any NI 488 or NI 488 2 call If you do not enter an option a menu of options appears Pa Repeat previous function Turn display off Turn display on n function Execute function n times where function represents the correct wibic function syntax Execute previous function n times filename Execute indirect file where filename is the pathname of a file that contains wibic functions to be executed print string Display string on screen where string is an ASCII character sequence octal bytes hex bytes or special symbols buffer option Set the type of display used for buffers Valid options are full brief ascii and off The default is full NI 488 2 User Manual for Windows 5
92. eee eeeeeeeseceseeeneeeseeeseeeseeeaeeeaee 3 3 Status Word ibsta sennie osa e ea an Ennan En ENE Eaa 3 3 Error Variable Demm nA aee e A A AE NE EAE a 3 5 Count Variables ibcnt and ibcntl oo ee eeeeeeceeeeneceeeeeeeeeeeeeees 3 5 Using wibic to Communicate with Devices eeeseeseceseceseceeeeeeeeeeeneesase 3 5 Writing Your NI 488 Application 0 0 eee ceeecssecseecseeeseeeeeeseesseseseeeaeeeaens 3 6 Items tounclude s 2 6 Az teiagetinethinnn nina ira Rede 3 6 NI 488 Program Shell oo cece eseseeceeeeseeeseeeseeeeeeeecsseesaeeeaeeseeeaeeu 3 7 General Program Steps and Examples 0 cc cecesessseseeeeeeeeeseeeeees 3 8 Step 1 Open a Device eee ceeeeeeeseceeceseceeeseeeeeeeeeeees 3 8 Step 2 Clear the Devices si nacionani iaia 3 8 Step 3 Configure the Device 0 0 0 ee eeeeseeeseeeeeeneeeseeeeeen 3 9 Step 4 Trigger the Device 0 eee eeeeeseeereeeeeeeeeeeeeeeees 3 9 Step 5 Wait for the Measurement 2 0 0 eee eeeeseeeeeeeeeeeee 3 9 Step 6 Read the Measurement eee eeeeseeeeeeseeeeeeeeeee 3 10 Step 7 Process the Data s cevescndagn de eekea eas 3 10 Step 8 Place the Device Offline ee ee eseeseereeeeeees 3 10 Writing Your NI 488 2 Application cee eeeeeeeseceeeeneceseeeeeesecneeeaeesaeeaeeees 3 11 Items to Include innen agenesi aiaee aiae a ta shes 3 11 NI 488 2 Program Shellman erenaam ei aA ia 3 12 General Program Steps and Examples sseseseeeseeeeeeeereeeereereereeree 3 13 Step1 Imi
93. eeeeee 7 3 Talker Listener Applications ssnin nnee an n A E a E E a 7 4 Waiting for Messages from the Controller cece eeeeeeeeeeseeeeeeeees 7 4 Using the Event Queue s c icccccchiescaessessaseetbedeiiebespseeesbscsssestbenaeseatusane 7 5 Requestin s Service ioe oenar E AAE AEE E EEEE ARAA 7 5 Serial PONE eener e aee odie sat T E A N Ea a ts 7 5 Service Requests from IEEE 488 Devices n se 7 5 Service Requests from IEEE 488 2 Devices ssec 7 6 Automatic Serial Polling cece ce eeeeseesseeeecseeeseesseceseceecseeeseeseeesees 7 6 SIMCK SRO SE perraos ia AN 7 6 Autopolling and Interrupts eseseeeeseeeeeeeeesreeereeresrrsrssrsreee 7 7 SRQ and Serial Polling with NI 488 Device Functions 0 7 7 SRQ and Serial Polling with NI 488 2 Routines 7 8 Example 1 Using FindRQS 0 ce ceceeeseeseeeeeeseeeseeeaeense 71 9 Example 2 Using AllSpoll oc ee eeeeeeseeseeeneeeeeeeeeeees 7 9 NI 488 2 User Manual for Windows viii National Instruments Corp Contents Parallel Pollin tsnena ee iniecta a a tates ae ER 7 10 Implementing a Parallel Poll oo ee eeeeseeeeeseeeeeceseceeeeneeeaeeeees 7 10 Parallel Polling with NI 488 Functions eeeceseeeee 7 10 Parallel Polling with NI 488 2 Routines eee 7 12 Chapter 8 wibconf Windows Interface Bus Configuration Utility 8 1 OVVIE W eenei diee ETE E EEE EAEE Ue casnee dg 8 1 Starting wibCOne lt issct5iasd geetdagieteasiasu a a a e e
94. eer in a metal factory is using IEEE 488 2 compliant tensile testers to determine the strength of metal rods as they come out of production There are several tensile testers and they are all connected to a central computer equipped with an IEEE 488 2 interface board These machines are fairly voluminous and it is difficult for the engineer to reach the address switches of each machine For the purposes of his future work with these tensile testers he needs to determine the setting of each GPIB address switch He can do so with the aid of a simple application he has written The following steps correspond to the program flowchart in Figure 2 6 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application issues a command to detect the presence of listening devices on the GPIB and compiles a list of the addresses of all such devices 3 The application sends an identification query IDN to all of the devices detected on the GPIB in Step 2 4 The application reads the identification information returned by each of the devices as it responds to the query in Step 3 5 Asacleanup step before exiting the application returns the interface board back to its original state by taking it offline NI 488 2 User Manual for Windows 2 14 National Instruments Corp Chapter 2 Application Examples GPIB Cable GPIB Cable GPIB Cable Computer Tensile Tester 1 Tensile Tester 2 Tensile Tester 3
95. eereereeree 5 7 Syntax for NI 488 2 Routines in Wibic eessseeseeeeeeseesrisrrsssesrreresesreerrer 5 8 Auxiliary Functions in Wibic seseeseesseeseesessessessesrsresresirsrestssesresressesresreses 5 14 Options for Starting wibconf eeessesseeseesiesessesreeresrsstesirerssessrsresressesresreses 8 2 wibconf Batch Mode Command Pairs ss sssessseseeeseesseesseessessseessessressrsssen 8 15 Status Word Bits cess arroari eea e EEE E O T a A 1 GPIB Error Codes soneran a A EAS ha con hens B 1 National Instruments Corp xi NI 488 2 User Manual for Windows About This Manual This manual describes the features and functions of the NI 488 2 software for Windows The NI 488 2 software is meant to be used with Microsoft Windows version 3 0 or higher This manual assumes that you are already familiar with Windows How to Use This Manual Set Getting Started Manual Installation and Configuration Experienced Users Novice Users if NI 488 2 User NI 488 2 Function Manual for Windows Reference Manual f for DOS Windows Application Function Development and Routine and Examples Descriptions EM eee H ey Use the getting started manual to install and configure your GPIB hardware and NI 488 2 software for Windows Use the NI 488 2 User Manual for Windows to learn the basics of GPIB and how to develop an application
96. en 2 17 Figure 2 8 Program Flowchart for Example 8 cc cceseesscesecseeseeeseeeeeeeeeeseeeseeeseens 2 19 Figure 2 9 Program Flowchart for Example 9 0 0 ces cescesscssecseeseeeseeeeeeeseeeeeeseeeaeons 2 21 Figure 3 1 General Program Shell Using NI 488 Device Functions 0 0 0 0 cece 3 7 Figure 3 2 General Program Shell Using NI 488 2 Routines n se 3 12 Figure 6 1 Main GPIB Spy Window 0 eee ceeeeseeseeseceseeseesseeseseseceaeeeeeaeesseesaeeseees 6 1 Figure 6 2 GPIB Spy Call Details Window for IDWIt eee eeeeeeeeeseceseeeeeeeeeneeeaee 6 2 Figure 8 1 Upper Level of Wibconf 0 eee ceeeesesseceseeeeeseeeeceseceneceeeseeeseeseeeseeesees 8 3 Figure 8 2 Lower Level of wibconf ce eeeeeeesecsseeseeeecsseesceeeessecesecaeceeesessaesseeeu 8 5 NI 488 2 User Manual for Windows x National Instruments Corp Table 1 1 Table 1 2 Table 3 1 Table 4 1 Table 5 1 Table 5 2 Table 5 3 Table 5 4 Table 8 1 Table 8 2 Table A 1 Table B 1 Contents Tables GPIB Handshake Lines 000 eccceecccccsecesseeesceeeseeceneeeeeeceeeceaceeeaeeenaeeeeneeesase 1 3 GPIB Interface Management Lines 0 0 cece eeeeseceseceneceseceseceseeeseeeeeneeense 1 3 Status Word ibsta Layout seere nieder e diaria aa 3 4 GPIB Error Codes aena a e a aKa EEEE EEKE KE EEEE aS 4 5 Syntax for Device Level NI 488 Functions in Wibic eeeseeeeeeeeeereeren 5 6 Syntax for Board Level NI 488 Functions in Wibic eeeeeeeseeee
97. er explains how to develop a GPIB application program using NI 488 functions and NI 488 2 routines Choosing How to Access the NI 488 2 DLL Applications can access the NI 488 2 dynamic link library gpib d11 either by using the NI 488 2 language interfaces for C or Visual Basic or by directly accessing the gpib d1l The NI 488 2 language interface is the easiest and fastest method and it is adequate for most applications If you want to access the gpib d11 from languages other than C and Visual Basic or if you have special needs for accessing the gpib d11 then you must use the direct entry functions These functions are identical to the NI 488 and NI 488 2 calls except for the following two differences e You must preface each function name by the characters DLL For example instead of using the NI 488 function ibwrt use the direct entry function DLLibwrt e The number of arguments taken by each function is increased by three The last three parameters are in order a pointer to the ibsta variable a pointer to the iberr variable and a pointer to the ibcnt1 variable Your application must declare its own ibsta iberr and ibcnt1 variables to use the direct entry functions Choosing Between NI 488 Functions and NI 488 2 Routines Your NI 488 2 software includes two distinct sets of subroutines to meet your application needs For most application programs the NI 488 functions are sufficient You should use the NI 488 2 routines if you
98. ere drive and path describe the location of nivgpib 386 on your hard drive e By default only one GPIB board at a time can perform DMA If you need to perform DMA transfers on multiple GPIB boards at the same time add a new section to your system ini file vgpibd In this section add the option NumBoardsUsingDMA and set it equal to the number of boards that will be performing DMA For example if you want two boards to perform DMA concurrently add the following lines to the bottom of your system ini file vgpibd NumBoardsUsingDMA 2 e To install the virtual DMA device first change the default virtual DMA device line to a remark line by adding a semicolon Then add a line to install the National Instruments virtual DMA device as follows device vdmad device drive path nivdmad 386 where drive and path describe the location of nivdmad 386 on your hard drive Note You must restart Windows after you modify the system ini file e Alternatively you can correct the EDMA problem by disabling DMA in the software You can use ibdma to disable DMA EOIP 10 EOIP occurs when an asynchronous I O operation has not finished before some other call is made During asynchronous I O you can only use ibstop ibwait and ibon1l or perform other non GPIB operations Once the asynchronous I O has begun further GPIB calls other than ibstop ibwait or ibonl are strictly limited If a call might interfere with the I O operation in progress th
99. erred data could become corrupted If you specify a cable length longer than what you actually use the data is transferred successfully but more slowly than if you specified the correct cable length In addition to using ibconfig to configure your GPIB board for HS488 the Controller In Charge must send out GPIB command bytes interface messages to configure other devices for HS488 transfers If you are using device level calls the NI 488 2 software automatically sends the HS488 configuration message to devices If you enabled the HS488 protocol in wibconf the NI 488 2 software sends out the HS488 configuration message when you use ibdev to bring a device online If you call ibconfig to change the GPIB cable length the NI 488 2 software sends out the HS488 message again the next time you call a device level function If you are using board level functions or NI 488 2 routines and you want to configure devices for high speed you must send the HS488 configuration messages using ibcmd or SendCmds The HS488 configuration message is made up of two GPIB command bytes The first byte the Configure Enable CFE message hex 1F places all HS488 devices into their configuration mode Non HS488 devices should ignore this message The second byte is a GPIB secondary command that indicates the number of meters of NI 488 2 User Manual for Windows 7 2 National Instruments Corp Chapter 7 GPIB Programming Techniques cable in your system It is
100. evice offline 3 10 processing of data 3 10 program shell illustration 3 7 reading measurement 3 10 triggering devices 3 9 waiting for measurement 3 9 to 3 10 NI 488 functions 3 2 to 3 3 advantages 3 2 board functions 3 2 to 3 3 device functions 3 2 one device per board 3 2 to 3 3 NI 488 2 applications configuring instruments 3 15 finding all Listeners 3 13 flowchart of programming with routines 3 12 general steps and examples 3 13 to 3 16 identifying instruments 3 13 to 3 14 initialization 3 13 initializing instruments 3 14 items to include 3 11 placing board offline 3 16 processing of data 3 16 program shell illustration 3 12 reading measurement 3 16 triggering instruments 3 15 waiting for measurement 3 15 to 3 16 NI 488 2 routines 3 3 wibic for communicating with devices 3 5 asynchronous I O application example 2 6 to 2 7 ATN attention line 1 3 ATN status word condition bit position hex value and type table 3 4 description A 4 automatic serial polling See serial polling auxiliary functions wibic repeat previous function 5 15 execute indirect file 5 16 turn display on 5 15 turn display off 5 15 buffer set buffer display mode 5 17 help display help information 5 15 n repeat function n times 5 16 print display the ASCII string 5 17 set select device or board 5 15 table of functions 5 14 NI 488 2 User Manual for Wind
101. ex messages sending across GPIB 1 2 to 1 3 data lines 1 2 handshake lines 1 3 interface management lines 1 3 Microsoft C See C language N n repeat function n times function wibic 5 16 NDAC not data accepted line 1 3 NI 488 applications programming clearing devices 3 8 configuring devices 3 9 flowchart of programming with device level functions 3 7 general steps and examples 3 8 to 3 10 items to include 3 6 opening devices 3 8 placing device offline 3 10 processing of data 3 10 program shell illustration 3 7 reading measurement 3 10 triggering devices 3 9 waiting for measurement 3 9 to 3 10 NI 488 functions See also auxiliary functions wibic one device per board 3 2 to 3 3 parallel polling 7 10 to 7 12 programming considerations advantages of using 3 2 board functions 3 2 to 3 3 device functions 3 2 serial polling 7 7 to 7 8 using in wibic examples 5 1 to 5 4 ibdev 5 10 to 5 11 ibfind 5 10 ibrd 5 12 ibwrt 5 12 syntax 5 5 to 5 7 NI 488 2 applications programming configuring instruments 3 15 finding all Listeners 3 13 flowchart of programming with routines 3 12 general steps and examples 3 13 to 3 16 identifying instruments 3 13 to 3 14 initialization 3 13 initializing instruments 3 14 items to include 3 11 NI 488 2 User Manual for Windows Index 12 National Instruments Corp Index placing board offline 3 16 processing of data 3 16 program shell illustration
102. f common device commands Talkers Listeners and Controllers GPIB devices can be Talkers Listeners or Controllers A Talker sends out data messages Listeners receive data messages The Controller usually a computer manages the flow of information on the bus It defines the communication links and sends GPIB commands to devices Some devices are capable of playing more than one role A digital voltmeter for example can be a Talker and a Listener If your personal computer has a National Instruments GPIB interface board and NI 488 2 software installed it can function as a Talker Listener and Controller Controller In Charge and System Controller You can have multiple Controllers on the GPIB but only one Controller at a time can be the active Controller or Controller In Charge CIC The CIC can either be active or inactive Standby Controller Control can pass from the current CIC to an idle Controller but only the System Controller usually a GPIB interface board can make itself the CIC National Instruments Corp 1 1 NI 488 2 User Manual for Windows Introduction Chapter 1 GPIB Addressing All GPIB devices and boards must be assigned a unique GPIB address A GPIB address is made up of two parts a primary address and an optional secondary address The primary address is a number in the range 0 to 30 The GPIB Controller uses this address to form a talk or listen address that is sent over the GPIB when communicating w
103. f section later in this chapter Video access through BIOS This option causes wibconf to use the system BIOS routines when writing to the screen This is slower than the default of direct screen access but is more compatible with certain nonstandard systems m Monochrome mode This option causes wibconf to run in monochrome mode even if you have a color monitor Upper and Lower Levels of wibconf wibconf operates at both an upper and a lower level The upper level consists of the device map that gives a graphical picture of the GPIB system The lower level consists of screens describing the individual boards and devices that make up the system NI 488 2 User Manual for Windows 8 2 National Instruments Corp Chapter 8 wibconf Windows Interface Bus Configuration Utility Upper Level Device Map Figure 8 1 shows the upper level of wibconf National Instruments GPIB Device Map AT GPIB TNT Ver 2 5 Use the cursor keys or mouse to select board devices Use PgUp PgDn for maps of other boards Use the function keys to select an action F1 Help F4 Rename F5 Dis connect F8 Edit F9 Esc Exit Figure 8 1 Upper Level of wibconf As shown in Figure 8 1 the upper level screen of wibconf displays the names of all devices controlled by the driver It also indicates which devices if any are accessed through each interface board You can move around the map by using the cursor control keys or the mouse
104. g a parallel poll For a normal bus configuration the Controller and devices on the same bus use the default duration of 2 us If you are using a GPIB bus extender in transparent parallel poll mode you should increase the poll duration to 10 us so that the bus extender can operate transparently to your applications Use This GPIB Interface Board Characteristic Only If you do not want the driver to try to access a board at the selected base address because you do not have a board in the system select no for this option When this field is set to no the driver returns the EDVR error as soon as a program tries to access the board By default access board gpib0 is enabled and gpibl gpib2 and gpib3 are disabled Base I O Address Board Description Only This field specifies the I O address of the GPIB board It must be set to the same value as the base I O address setting for the GPIB board itself Setting the base I O address level is explained in the getting started manual that you received with your GPIB interface board Note On some systems this field is read only and you cannot change it using wibconf Refer to your getting started manual for information on how to change the I O address NI 488 2 User Manual for Windows 8 10 National Instruments Corp Chapter amp wibconf Windows Interface Bus Configuration Utility DMA Channel Board Characteristic Only This field specifies the DMA channel used by the GPIB board It
105. generate the import library type in the following text implib gpib lib c windows system gpib dll where c windows system is the path to your Windows System directory The file named gpib 1ib is the name of the file generated by the imp1ib utility For more information about the implib utility program refer to the Windows online help or other documentation supplied with your compiler After you have written your Microsoft C application program compile your program and use the Mq option of Microsoft C to create a QuickWin application This option is available starting with Microsoft C C Version 7 0 with the Microsoft Software Development Kit SDK or with Microsoft Visual C Version 1 x The following command compiles and links a Microsoft QuickWin application named cprog with the import library file gpib lib cl Mq cprog c gpib lib After you have written your Borland C C application program compile your program and use the W option of Borland C C to create a Windows application The following command compiles and links a Borland C C Windows application named cprog with the import library file gopib 1lib bee W cprog c gpib 1lib To run your application choose the Run option from the File menu in the Program Manager window Enter the path and name of the compiled program in the dialog box that appears The third method of accessing the DLL follows Method 3 Use LoadLibrary and GetProcAddress To use the third metho
106. gram flowchart in Figure 2 7 1 The application initializes the GPIB by bringing the interface board in the computer online 2 The application configures the strain gauges to request service when they have a significant pressure reading or a mechanical failure occurs They signal their request for service by asserting the SRQ line 3 The application waits for one or more of the strain gauges to indicate that they have a significant pressure reading This wait event ends as soon as the SRQ line is asserted 4 The application serial polls each of the strain gauges to see if it requested service 5 Once the application has determined which one of the strain gauges requires service it takes a reading from that strain gauge 6 If the reading matches the desired consistency a dialog window appears on the computer screen and prompts the mixer operator to remove the mixture and start a new batch Otherwise a dialog window prompts the operator to service the mixer in some other way Steps 3 through 6 are repeated as long as the mixers are in operation 7 After the last batch of syrup has been processed the application returns the interface board to its original state by taking it offline NI 488 2 User Manual for Windows 2 16 National Instruments Corp Chapter 2 Application Examples GPIB Cable GPIB Cable GPIB Cable Computer Strain Strain Gauge 2 Gauge 3 SendList Configure Strain Gauges to 2 Request Service W
107. hen The Have a Reading WaitSRQ Wait for 1 or More Strain Gauges to Request Request Service FindRQS Did You Request Serial Poll Each Service Strain Gauge Requesting 4 CN D1 ia You Request 6 Service is Located a Receive Get a Reading From Strain Until One Response Gauge Does the Gauge Need Service Provide Whatever A Service is Mixture is Ready Display Remove Required Mixture Message Done for the Day CLEAN UP Figure 2 7 Program Flowchart for Example 7 National Instruments Corp 2 17 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 8 Parallel Polls This example illustrates how you can use NI 488 2 routines to obtain information from several IEEE 488 2 compliant devices at once using a procedure called parallel polling The process of manufacturing a particular alloy involves bringing three different metals to specific temperatures before mixing them to form the alloy Three vats are used each containing a different metal Each is monitored by a GPIB ore monitoring unit The monitoring unit consists of a GPIB temperature transducer and a GPIB power supply The temperature transducer is used to probe the temperature of each metal The power supply is used to start a motor to pour the metal into the mold when it reaches a predefined temperature The three monitoring units are connected to the IEEE 488 2 interface board of a computer that has the NI
108. ication must resynchronize after asynchronous I O operations have completed Request Service NI 488 2 User Manual for Windows _ Glossary 6 National Instruments Corp SDC serial poll Service Request source handshake SPD Serial Poll Disable SPE Serial Poll Enable SRQ Service Request status byte status word synchronous System Controller National Instruments Corp Glossary Seconds Selected Device Clear is the GPIB command used to reset internal or device functions of an addressed Listener See DCL and IFC The process of polling and reading the status byte of one device at atime See parallel poll See SRQ The GPIB interface function that transmits data and commands Talkers use this function to send data and the Controller uses it to send commands See acceptor handshake and handshake Serial Poll Disable is the GPIB command used to cancel an SPE command Serial Poll Enable is the GPIB command used to enable a specific device to be polled That device must also be addressed to talk See SPD The GPIB line that a device asserts to notify the CIC that the device needs servicing The IEEE 488 2 defined data byte sent by a device when it is serially polled See ibsta Refers to the relationship between the NI 488 2 driver functions and a process when executing driver functions is predictable the process is blocked until the driver completes the function The single de
109. ices receive the parallel poll disable message AddressList 0 3 AddressList 1 NOADDR PPollUnconfig 0 AddressList NI 488 2 User Manual for Windows 7 12 National Instruments Corp Chapter 8 wibconf Windows Interface Bus Configuration Utility This chapter contains a description of wibconf the software configuration program you can use to configure the NI 488 2 software for Windows Overview The wibconf utility is a screen oriented interactive program you can use to view or modify the configuration parameters of your GPIB interface boards and the GPIB devices connected to them Usually you use wibconf to modify the hardware settings of your GPIB interface boards The wibconf utility can read in and display configuration parameters for the NI 488 2 driver file on disk You can then save the changes back to the disk file wilbconf also has a supplementary batch mode which can be used for configuring in a non interactive fashion Instead of using wibconf you can configure your driver programmatically by using the ibconfig function to alter any of the board or device characteristics while your program is running If you use dynamic configuration you do not need to run wibconf before you start your application Also you can run your application on any computer with the appropriate NI 488 2 software regardless of its configuration because the application configures the driver as necessary Programmatic configuration
110. igger Active State bits to determine if the Controller has sent the device clear DCL or SDC or trigger GET messages to the interface board If the application detects a device clear from the Controller it might reset the internal state of message buffers If it detects a trigger message from the Controller the application might begin an operation such as taking a voltage reading if the application is actually acting as a voltmeter NI 488 2 User Manual for Windows 7 4 National Instruments Corp Chapter 7 GPIB Programming Techniques Using the Event Queue Some applications need to know the order in which certain messages are sent by the Controller To monitor the ordering of these messages your application program must enable the EVENT bit using ibconfig option IbcEventQueue When the EVENT bit is enabled the DCAS and DTAS bits are no longer activated Instead all DCAS and DTAS messages are stored in a queue in the order that they are received The event queue also stores interface clear IFC messages When the queue contains some information the NI 488 2 software sets the EVENT bit in ibsta When the application program detects EVENT it can call the function ibevent to retrieve the first event that occurred Retrieving events from the queue ensures that the application can respond to device clear device trigger and interface clear messages in the correct order Requesting Service Another type of event that might be importa
111. iguring Your System Devices are usually connected with a cable assembly consisting of a shielded 24 conductor cable with both a plug and receptacle connector at each end With this design you can link devices in a linear configuration a star configuration or a combination of the two Figure 1 2 shows the linear and star configurations Linear Device A Configuration Star Configuration gt Device B evice C Figure 1 2 Linear and Star System Configuration NI 488 2 User Manual for Windows 1 4 National Instruments Corp Chapter 1 Introduction Controlling More Than One Board Multiboard drivers such as the NI 488 2 driver for Windows can control more than one interface board Figure 1 3 shows an example of a multiboard system configuration gpibo is the access board for the voltmeter and gpib1 is the access board for the plotter and printer The control functions of the devices automatically access their respective boards Another GPIB Printer Figure 1 3 Example of Multiboard System Setup Configuration Requirements To achieve the high data transfer rate that the GPIB was designed for you must limit the physical distance between devices and the number of devices on the bus The following restrictions are typical e A maximum separation of four meters between any two devices and an average separation of two meters over the entire bus e A maximum total cable
112. illoscope to Trigger Get Reading Command Request Data from Oscilloscope Read Oscilloscope Finished Reading CLEAN UP Figure 2 2 Program Flowchart for Example 2 National Instruments Corp 2 5 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 3 Asynchronous I O This example illustrates how an application conducts data transfers with a GPIB device and immediately returns to perform other non GPIB related tasks while GPIB I O is occurring in the background This asynchronous mode of operation is particularly useful when the requested GPIB activity may take some time to complete In this example a research biologist is trying to obtain CAT scans of a laboratory animal s liver She will print out a color copy of each scan as it is acquired The entire operation is computer controlled The CAT scan machine sends the images it acquires to a computer that has the NI 488 2 software installed and is connected to a GPIB color printer The biologist is familiar with the command set of her color printer as described in the color printer s user manual She acquires and prints images with the aid of an application program she wrote using high level GPIB commands The following steps correspond to the program flowchart in Figure 2 3 1 The application initializes the GPIB by bringing the interface board in the computer online 2 An image is scanned in 3 The application sends the GPIB printer a
113. in wibic Set You must use the set command before you can use NI 488 2 routines in wibic The syntax for this form of the set command is as follows set 488 2 n where n represents a board number for example n 0 for gpibo The 488 2 prompt indicates that you are in NI 488 2 mode on board n The following example shows how to enter into 488 2 mode on board gpibo set 488 2 0 488 2 0 Send and SendList The Send routine sends data to a single GPIB device You can use the SendList command to send data to multiple GPIB devices For example suppose you want to send the five character string IDN followed by the new line character with EOI You want to send the message from the computer to the devices at primary address 2 and 17 To do this enter the SendList command at the 488 2 0 prompt as shown in the following example 488 2 0 SendList 2 17 IDN NLend 0128 cmpl cic tacs count 6 The returned status word contains the cmp1 bit which indicates a successful I O completion The byte count 6 indicates that six characters including the added new line were sent from the computer and received by both devices Receive The Receive routine causes the GPIB board to receive data from another GPIB device The following example acquires 10 data bytes from the device at primary address 5 It stops receiving data when 10 characters have been received or when the END message is received The acquired data is then display
114. ines eee eeceeseceseceeecneeeeeeeeesees 5 8 Status Wordi noninar o a RO E KEE Aiea R Ran 5 9 Error Diforma neee e E E EEEE A E EREA 5 9 Eo i E t E RENEE E EE a EEE E E E E E EE E E E 5 10 Common NI 488 Functions essene inssi er ie oa EE n 5 10 IDIR en ees cuits ce recess Canoes a von toi AA A 5 10 IDDOY siria SRE ele eee iene 5 10 Waneer nno QUAIL a a a a Gu aie 5 12 Didera E TA E E EEE AE E SS 5 12 Common NI 488 2 Routines in WIbiC eseeeseeseeeesesesrrsresesresrreresessesresreerereees 5 13 o L S E EE AE A E E N A Carvinoen 5 13 Send and SendEnStnireine nn ern a E E 5 13 RECEIVE ponina a O E aidan ae 5 13 Atixaliary PunctiOns eseon a n sisal eink ee A 5 14 Set Select Device or Board cceeccccceessscceesseecesseeeeeseeeessseeeesaness 5 15 Help Display Help Information cece eseseeseeseceeeneeeeeeneeneeens 5 15 National Instruments Corp Vii NI 488 2 User Manual for Windows Contents Repeat Previous Function cccecceescccesceeeeeceeceeeeeeeneeeeeeceeeeease 5 15 Turn OFF Display and Turn ON Display eeeeeeeeeeee 5 15 n Repeat Function n Times eecceesseeeeeceeeeeeneeeeeeeeeeessnreeseeees 5 16 Execute Indirect File c cc cccccccesccsscesccsscessessecssceseceseenseenseeseens 5 16 Print Display the ASCII String 0 eee eeeeeeseesecereceeeeeeeeneeneeense 5 17 Buffer Set Buffer Display Mode ce eeeeeeeeeeeeeeseeeseeeseeeaeeeaeene 5
115. ion for this characteristic is yes Note You should not have more than one designated System Controller in any GPIB system Assert REN when SC Board Characteristic Only A yes response to this field causes Remote Enable REN to be asserted automatically whenever the board is placed online if that the board has System Controller capability If you give a no response an explicit call to ibsre is required to assert REN The default option for this characteristic is no Enable Auto Serial Polling Board Characteristic Only This option enables or disables automatic serial polls of devices when the GPIB Service Request SRQ line is asserted Positive poll responses are stored following the polls and can be read with the ibrsp device function Normally this feature does not conflict with devices that conform to the IEEE 488 1 specification If a conflict exists with a device use a no response for this field to disable this feature The default option for this characteristic is yes Enable CIC Protocol Board Characteristic Only If a device level NI 488 function is called after control has been passed to another device enabling this protocol causes the board to assert SRQ with a Serial Poll status byte of hex 42 The current Controller must recognize that the board wants to regain control If the current Controller passes control back to the board the device call proceeds as intended If control is not passed within the timeout period o
116. ir GPIB address to be sent with each I O operation Select yes to enable repeat addressing in such a situation The default option for this characteristic is no GPIB PCHI ITA Mode Switch The driver that is included with the GPIB PCII and GPIB PCIIA interface board kits is the same for each kit and can run with both boards Use this field to indicate the type of board that is installed in your system You can have both a GPIB PCII and a GPIB PCIIA interface board installed in your system at the same time National Instruments Corp 8 1 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter amp Default Configurations in wibconf This section lists the default configuration values of the NI 488 2 driver Thirty two devices with symbolic names dev1 through dev32 Four access boards with symbolic names gpib0 gpib1 gpib2 and gpib3 You cannot change the access board names Access board gpib0 is enabled gpib1 gpib2 and gpib3 are disabled The GPIB addresses of the first 16 devices are the same as the device number For example dev is at address 1 These 16 devices are assigned to the access board gpibo The remaining 16 devices that is devices 17 through 32 are assigned to the access board gpib1 Their GPIB addresses range from 1 through 16 respectively For example dev17 is at address 1 Each GPIB interface board is System Controller for its independent bus and has a GPIB address
117. ith a device A talk address is formed by setting bit 6 the TA Talk Active bit of the GPIB address A listen address is formed by setting bit 5 the LA Listen Active bit of the GPIB address For example if a device is at address 1 the Controller sends hex 41 address 1 with bit 6 set to make the device a Talker Because the Controller is usually at primary address 0 it sends hex 20 address 0 with bit 5 set to make itself a Listener Figure 1 1 shows the configuration of the GPIB address bits Bit GPIB Primary Address range 0 to 30 Figure 1 1 GPIB Address Bits Meaning With some devices you can use secondary addressing A secondary address is a number in the range hex 60 to hex 7E When secondary addressing is in use the Controller sends the primary talk or listen address of the device followed by the secondary address of the device Sending Messages Across the GPIB Devices on the bus communicate by sending messages Signals and lines transfer these messages across the GPIB interface which consists of 16 signal lines and eight ground return shield drain lines The 16 signal lines are discussed in the following sections Data Lines Eight data lines DIO1 through DIO8 carry both data and command messages NI 488 2 User Manual for Windows 1 2 National Instruments Corp Chapter 1 Introduction Handshake Lines Three hardware handshake lines asynchronously control the transfer of message bytes between devices
118. itoring for message from Controller 7 4 talk address setting 1 2 Talker Listener applications 7 4 to 7 5 event queue 7 5 requesting service 7 5 waiting for messages from Controller 7 4 Talkers 1 1 technical support C 1 terminate read on EOS 8 8 termination methods errors caused by 4 6 termination of data transfers 7 1 to 7 2 TestSRQ routine 7 8 timeout value setting 8 7 serial poll timeouts 8 8 timing errors 4 6 NI 488 2 User Manual for Windows Index 16 National Instruments Corp Index TIMO status word condition bit position hex value and type table 3 4 description A 2 TNT4882C hardware 7 2 TRG command 3 15 triggering devices example 2 4 to 2 5 troubleshooting See debugging wibic utility turn display off function wibic 5 15 turn display on function wibic 5 15 Vv Visual Basic compiling linking and running applications 3 18 direct entry 3 23 files available with NI 488 2 software 1 7 W wait function See ibwait function WaitSRQ routine conducting serial polls 7 8 waiting for measurement 3 15 to 3 16 wibconf utility batch mode 8 13 to 8 15 command pairs table 8 15 configuration file 8 13 to 8 14 configuration options 8 7 to 8 11 assert REN when SC 8 9 base I O address 8 10 bus timing 8 10 cable length for high speed 8 10 DMA channel 8 11 enable auto serial polling 8 9 enable CIC protocol 8 9 enable repeat addressing 8 11 EOS byte 8 8 GPIB PCII
119. length of 20 m e A maximum of 15 devices connected to each bus with at least two thirds powered on National Instruments Corp 1 5 NI 488 2 User Manual for Windows Introduction Chapter 1 For high speed operation the following restrictions apply e All devices in the system must be powered on e Cable lengths as short as possible up to a maximum of 15 m of cable for each system e At least one equivalent device load per meter of cable If you want to exceed these limitations you can use bus extenders to increase the cable length or expander to increase the number of device loads Extenders and expanders are available from National Instruments The following sections describe the NI 488 2 software which controls the flow of communication on the GPIB The NI 488 2 Software Package The following section highlights important elements of the NI 488 2 software for Windows and describes the function of each element NI 488 2 Driver and Driver Utilities The NI 488 2 software contains the following driver and utility files e readme txt is a documentation file that contains important information about the NI 488 2 software and a description of any new features Before you use the software read this file for the most recent information e setup exe is a Windows setup executable that installs the NI 488 2 software e gpib d1l isa 16 bit dynamic link library that implements the NI 488 and NI 488 2 functions e gpib ini is the
120. lp you write your own applications The description of each example includes the programmer s task a program flowchart and numbered steps which correspond to the numbered blocks on the flowchart Use this chapter along with your NI 488 2 software which includes the C and Visual Basic source code for each of the nine examples The programs are listed in order of increasing complexity If you are new to GPIB programming you might want to study the contents and concepts of the first sample simple c before moving on to more complex examples The following example programs are included with your NI 488 2 software e simple c is the source code file for Example 1 It illustrates how you can establish communication between a host computer and a GPIB device e clr _trg c is the source code file for Example 2 It illustrates how you can clear and trigger GPIB devices e asynch c is the source code file for Example 3 It illustrates how you can perform non GPIB tasks while data is being transferred over the GPIB e eos c is the source code file for Example 4 It illustrates the concept of the end of string EOS character e xrqs c is the source code file for Example 5 It illustrates how you can communicate with GPIB devices that use the GPIB SRQ line to request service This sample is written using NI 488 functions e easy4882 c is the source code file for Example 6 It is an introduction to NI 488 2 routines e xrqs4882 c is the sourc
121. ls are executed automatically by the driver whenever a device asserts the GPIB SRQ line See I O address Basic Input Output System A rudimentary function that performs a single operation Glossary I1 NI 488 2 User Manual for Windows Glossary C CFE CFGn CIC Controller In Charge CIC CPU D DAV Data Valid DCL Device Clear device level function DIO1 through DIO8 DLL DMA direct memory access driver NI 488 2 User Manual for Windows Configuration Enable is the GPIB command which precedes CFGn and is used to place devices into their configuration mode These GPIB commands CFG1 through CFG15 follow CFE and are used to configure all devices for the number of meters of cable in the system so that HS488 transfers occur without errors See Controller In Charge The device that manages the GPIB by sending interface messages to other devices Central processing unit One of the three GPIB handshake lines See handshake Device Clear is the GPIB command used to reset the device or internal functions of all devices See SDC See DCL A function that combines several rudimentary board operations into one function so that the user does not have to be concerned with bus management or other GPIB protocol matters The GPIB lines that are used to transmit command or data bytes from one device to another Dynamic link library High speed data transfer between the GPIB board and me
122. ment National Instruments Corp 3 15 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 is the GPIB address of the instrument and the last argument is a variable that ReadStatusByte uses to store the status byte of the instrument ReadStatusByte 0 fluke amp statusByte if ibsta amp ERR gpiberr ReadStatusByte error After you have obtained the status byte you must check to see if the meter has a message to send You can do this by checking the message available MAV bit bit 4 in the status byte if statusByte amp MAVbit gpiberr Improper Status Byte printf Status Byte 0x x n statusByte Step 8 Read the Measurement Use the Receive function to read the measurement over the GPIB The first argument is the GPIB interface board number and the second argument is the GPIB address of the multimeter The third argument is a string into which the Receive function places the data bytes from the multimeter The fourth argument represents the number of bytes to be received The last argument indicates that the Receive message terminates upon receiving a byte accompanied with the END message Receive 0 fluke buffer 10L STOPend if ibsta amp ERR gpiberr Receive error buffer ibcntl 0 printf Reading s n buffer sum AsciiToFloat buffer end of loop started in Step 5 Step 9 Process the Data Repeat Steps 5 through 8 in a loop until
123. mory that is not handled directly by the CPU Not available on some systems See programmed I O Device driver software installed within the operating system Glossary 2 National Instruments Corp E END or END message EOI EOS or EOS byte EOT ESB G GET Go To Local GPIB GPIB address GPIB board Group Executed Trigger GTL Glossary A message that signals the end of a data string END is sent by asserting the GPIB End or Identify EOD line with the last data byte A GPIB line that is used to signal either the last byte of a data message END or the parallel poll Identify IDY message A 7 or 8 bit end of string character that is sent as the last byte of a data message End of transmission The Event Status bit is part of the IEEE 488 2 defined status byte which is received from a device responding to a serial poll Group Execute Trigger is the GPIB command used to trigger a device or internal function of an addressed Listener See GTL General Purpose Interface Bus is the common name for the communications interface system defined in ANSI IEEE Standard 488 1 1987 and ANSI IEEE Standard 488 2 1987 The address of a device on the GPIB composed of a primary address MLA and MTA and an optional secondary address MSA The GPIB board has both a GPIB address and an I O address Refers to the National Instruments family of GPIB interface boards See GET Go To Local is the GPIB c
124. n the computer via the GPIB board and other devices on the GPIB The address of the GPIB board from the point of view of the CPU as opposed to the GPIB address of the GPIB board Also called port address or board address An Individual Status bit of the status byte used in the Parallel Poll Configure function National Instruments Corp L LAD Listen Address language interface listen address Listener low level function M MAV MB memory resident MLA My Listen Address MSA My Secondary Address MTA My Talk Address multitasking Glossary Kilobytes See MLA Code that enables an application program that uses NI 488 functions or NI 488 2 routines to access the driver See MIA A GPIB device that receives data messages from a Talker See board level function Meters The Message Available bit is part of the IEEE 488 2 defined status byte which is received from a device responding to a serial poll Megabytes of memory Resident in RAM A GPIB command used to address a device to be a Listener It can be any one of the 31 primary addresses My Secondary Address is the GPIB command used to address a device to be a Listener or a Talker when extended two byte addressing is used The complete address is a MLA or MTA address followed by an MSA address There are 31 secondary addresses for a total of 961 distinct listen or talk addresses for devices A GPIB command used to address
125. n writing your application program you might want to use the wibic utility With wibic Windows Interface Bus Interactive Control you communicate with your instruments from the keyboard rather than from an application program You can use wibic to learn to communicate with your instruments using the NI 488 functions or NI 488 2 routines For specific device communication instructions refer to the user manual that came with your instrument For information about using wibic and for detailed examples refer to Chapter 5 wibic Windows Interface Bus Interactive Control Utility After you have learned how to communicate with your devices in wibic you are ready to begin writing your application program National Instruments Corp 3 5 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 Writing Your NI 488 Application This section discusses items you should include in your application program general program steps and an NI 488 example In this manual the example code is presented in C The NI 488 2 software includes the source code for C devsamp c Visual Basic devsamp bas direct entry functions in C d1ldev c and direct entry functions in Visual Basic dlldev bas The NI 488 2 software also includes the source code for nine application examples which are described in Chapter 2 Application Examples Items to Include e Include the appropriate GPIB header file This file contains prototypes for the NI 488 func
126. name passed to ibfind is not configured in the software In this case the variable ibcnt1 contains the DOS error code 2 Device Not Found National Instruments Corp B NI 488 2 User Manual for Windows Error Codes and Solutions Appendix B e An invalid unit descriptor is passed to any function call In this case the variable ibcnt1 contains the DOS error code 6 Invalid handle e The driver gpib d11 is not installed e The driver configuration file gpib ini is not located in the windows directory In this case the variable ibcnt1 contains the value 1 e The driver file gpib ini is in the windows directory but not compatible with the driver file gpib d11 that you are using In this case the variable ibcnt1 contains a negative value other than 1 Solutions e Use ibdev to open a device without specifying its symbolic name e Use only device or board names that are configured in the utility program wibconf as parameters to the ibfind function e Use the unit descriptor returned from ibfind as the first parameter in subsequent NI 488 functions Examine the variable before the failing function to make sure the function has not been corrupted e Make sure the NI 488 2 driver is installed by checking that gpib d11 and gpib ini are in the windows directory usually c windows ECIC 1 ECIC is returned when one of the following board functions or routines is called while the board is not CIC e Any device level NI 488
127. nce Manual for DOS Windows for the Visual Basic direct entry syntax for NI 488 and NI 488 2 functions If you are using Microsoft Visual Basic 1 0 you must edit niglobal bas to define the constants true and false as follows 1 0 global const true global const false oil In Microsoft Visual Basic 2 0 and higher true and false are reserved words therefore these constants are no longer defined in niglobal bas After you have written your Visual Basic application choose the Start option from the Run menu to execute your program National Instruments Corp 3 23 NI 488 2 User Manual for Windows Chapter 4 Debugging Your Application This chapter describes several ways to debug your application program Running wibtest Before you run your application program you should run the software diagnostic test wibtest that came with your NI 488 2 software The wibtest program is an NI 488 2 application that makes calls to the driver If wibtest passes your GPIB hardware and NI 488 2 software are interacting correctly The following paragraphs describe the messages you might receive while running wibtest and how to resolve each problem The term gpibx refers to one of the boards gpib0 gpib1 gpib2 and gpib3 Presence Test of Driver The wibtest program tests for the presence of the NI 488 2 driver gpib d11 and the NI 488 2 configuration information file gpib ini If gpib d11 is not in the Windows directory a warning box po
128. nd the multimeter use the DevClear routine to clear it The first argument is the GPIB board number The second argument is the GPIB address of the multimeter Then send the IEEE 488 2 reset command to the meter DevClear 0 fluke if ibsta amp ERR gpiberr DevClear error Send 0 fluke RST 4L NbLend if ibsta amp ERR gpiberr Send RST error sum 0 0 for m 0 m lt 10 m start of loop for Steps 5 through 8 NI 488 2 User Manual for Windows 3 14 National Instruments Corp Chapter 3 Developing Your Application Step 5 Configure the Instrument After initialization the instrument is ready to receive instructions To configure the multimeter use the Send routine to send device specific commands The first argument is the number of the access board The second argument is the GPIB address of the multimeter The third argument is a string of bytes to send to the multimeter The bytes in this example instruct the meter to measure volts alternating current VAC using auto ranging AUTO to wait for a trigger from the Controller before starting a measurement TRIGGER 2 and to assert SRQ when the measurement has been completed and the meter is ready to send the result SRE 16 The fourth argument represents the number of bytes to be sent The last argument NLend is a constant defined in the header file which tells Send to append a linefeed character with EOI asserted to the end of the
129. ng another set of functions the il functions for example result iltrg ud If you are using Visual Basic and prefer calling functions instead of subroutines then you can use the il functions With some of the ib commands for example ibrd the length of the string buffer is automatically calculated within the actual subroutine which eliminates the need to pass in the length as an extra parameter Before you run your Visual Basic application include the files niglobal bas and vbib bas in your application project file If you are using Microsoft Visual Basic 1 0 you must editniglobal bas to define the constants true and false as follows global const true 1 global const false 0 In Microsoft Visual Basic 2 0 and higher true and false are reserved words therefore these constants are no longer defined in niglobal bas After you have written your Visual Basic application choose the Start option from the Run menu to execute your program Direct Entry with C Before you compile your C application program make sure that the following lines are included at the beginning of your program ifdef cplusplus extern C endif include windecl h int ibsta iberr NI 488 2 global status variables long ibcntl ifdef cplusplus endif You must define the global status variables in your application program NI 488 2 User Manual for Windows 3 18 National Instruments Corp Chapter 3 Developing Your
130. ng of the line The virtual DMA device is loaded in the 386Enh section of the system ini file The correct one to use with Windows 3 1 is loaded by the following line device vdmad The correct one to use with Windows 3 0 is loaded by the following line device drive path nivdmad 386 where drive and path describe the location of the nivdmad 386 file on your hard disk for example c at gpibw NI 488 2 User Manual for Windows 4 8 National Instruments Corp Chapter 4 Debugging Your Application What information should I have before I call National Instruments When you call National Instruments you should have the results of the diagnostic tests ibdiag and wibtest along with the output from the GPIBInfo utility Also make sure you have filled out the technical support form in Appendix C Customer Communication National Instruments Corp 4 9 NI 488 2 User Manual for Windows Chapter 5 wibic Windows Interface Bus Interactive Control Utility This chapter introduces you to wibic the interactive control program that you can use to communicate with GPIB devices interactively Overview With the wibic program you communicate with the GPIB devices through functions you enter at the keyboard For specific information about how to communicate with your particular device refer to the manual that came with the device You can use wibic to practice communicating with the instrument troubleshoot problems and develop
131. ng saves the entire I O buffer Note that the full buffer setting is likely to degrade the performance of your application and the whole windows system especially if the application is transferring large GPIB buffers Set Highlight Color You can use this option to configure the highlight color which is used to highlight information in the GPIB Spy windows To change the highlight color select the Set Highlight Color menu item from the Configure menu This causes the standard Windows color selection dialog box to pop up Choose a new color and click on OK The default highlight color is red National Instruments Corp 6 3 NI 488 2 User Manual for Windows GPIB Spy Chapter 6 Store Configuration You can use this option to make the current GPIB Spy configuration the default GPIB Spy configuration If you want to set the default GPIB Spy configuration select the Store Configuration menu item from the Configure menu GPIB Spy Output Options To Screen You can use this option to select the number of NI 488 and NI 488 2 calls that are displayed in GPIB Spy By default GPIB Spy displays 100 calls Only the most recent information is stored so that when the number of recorded calls exceeds the limit the oldest information is discarded To change the number of calls displayed select the To Screen menu item from the Output menu Then enter the new number and click OK to save the change To File You can use this option to specify an outp
132. ns 2 0 00 ccc eesesseesnesseesesneeseesneesecseesneeneenneeneensense A 1 Appendix B Error Codes and Solutions 0 0 0 0 0 ccccccccecesssesessesseesseeseeseesneeneeseesneeneeneeneenen B 1 Appendix C Customer Communication oc cccececccecseeseeseeseesneeseeseesneeseeseeaneeneeneeseeneeeee Cl Glossary via nits iinet tito E IAS Glossary 1 WN CK cis ss ae r a a atau ieai aeons Re estates Index 1 Figures Fisure 1 1 GPIB Address Bits sscsiicssij ennn a rae e ria iea 1 2 Figure 1 2 Linear and Star System Configuration 0 cece eesesseeeneeeceeseeeseeeseeeaeees 1 4 Figure 1 3 Example of Multiboard System Setup 0 eee eeseeseceseceeceseceseeneeeseeense 1 5 Figure 1 4 How the NI 488 2 Software Works with Windows s es 1 8 Figure 2 1 Program Flowchart for Example 1 oo ccc ceeeesessecsseeseeeseeeseeeseeeeeeseeeaeees 2 3 Figure 2 2 Program Flowchart for Example 2 0 0 0 escessesccssecseeseeeseeeseeeseeeeeeseeeaeens 2 5 Figure 2 3 Program Flowchart for Example 3 ces ceseesessecsseeseeeseeeseeeseeeeeeseeeseoes 2 7 Figure 2 4 Program Flowchart for Example 4 00 0 ces ceseesessecseeeseeeseeeeeeeseeeeeeseeeseens 2 9 Figure 2 5 Program Flowchart for Example 5 0 0 ces ceseesessecseeseeeseeeseeeseeeseeeseeeseons 2 12 Figure 2 6 Program Flowchart for Example 6 ces cescesessececeeseeeeeeeseeeeeeeeeaeesaeens 2 15 Figure 2 7 Program Flowchart for Example 7 cccccesscesssceeeeeeeeeeeeeeeeeeecesneesseeen
133. ns for parallel polling when the GPIB board is not the Controller and must configure itself for a parallel poll and set its own individual status bit ist Parallel Polling with NI 488 Functions Follow these steps to implement parallel polling using NI 488 functions Each step contains example code 1 Configure the device for parallel polling using the ibppc function unless the device can configure itself for parallel polling ibppc requires an 8 bit value to designate the data line number the ist sense and whether or not the function configures or unconfigures the device for the parallel poll The bit pattern is as follows 0 1 1 E S D2 D1 DO E is to disable parallel polling and 0 to enable parallel polling for that particular device NI 488 2 User Manual for Windows 7 10 National Instruments Corp Chapter 7 GPIB Programming Techniques S is 1 if the device is to assert the assigned data line when ist 1 and 0 if the device is to assert the assigned data line when ist 0 D2 through DO determine the number of the assigned data line The physical line number is the binary line number plus one For example DIO3 has a binary bit pattern of 010 The following example code configures a device for parallel polling using NI 488 functions The device asserts DIO7 if its ist 0 In this example the ibdev command is used to open a device that has a primary address of 3 has no secondary address has a timeout of 3 s asserts
134. nt in a Talker Listener application is the serial poll A Talker Listener application can call ibrsv with a serial poll response byte when it needs to request service from the Controller If the application needs to know when the Controller has read the serial poll response byte it can enable the SPOLL bit in ibsta using ibconfig option IbcSPol1Bit The NI 488 2 software sets the SPOLL bit when the Controller serial polls the board Serial Polling You can use serial polling to obtain specific information from GPIB devices when they request service When the GPIB SRQ line is asserted it signals the Controller that a service request is pending The Controller must then determine which device asserted the SRQ line and respond accordingly The most common method for SRQ detection and servicing is the serial poll This section describes how you can set up your application to detect and respond to service requests from GPIB devices Service Requests from IEEE 488 Devices IEEE 488 devices request service from the GPIB Controller by asserting the GPIB SRQ line When the Controller acknowledges the SRQ it serial polls each open device on the bus to determine which device requested service Any device requesting service returns a status byte with bit 6 set and then unasserts the SRQ line Devices not requesting service return a status byte with bit 6 cleared Manufacturers of IEEE 488 devices use lower order bits to communicate the reason for the service
135. nt on the documentation supplied with our products This information helps us provide quality products to meet your needs Title NI 488 2 User Manual for Windows Edition Date January 1996 Part Number 370902A 01 Please comment on the completeness clarity and organization of the manual continues If you find errors in the manual please record the page numbers and describe the errors Thank you for your help Name Title Company Address Phone Mail to Technical Publications National Instruments Corporation 6504 Bridge Point Parkway Austin TX 78730 5039 Fax to Technical Publications National Instruments Corporation 512 794 5678 Glossary A acceptor handshake access board ANSI ASCII asynchronous automatic serial polling autopolling B base I O address BIOS board level function National Instruments Corp Listeners use this GPIB interface function to receive data and all devices use it to receive commands See source handshake and handshake The GPIB board that controls and communicates with the devices on the bus that are attached to it American National Standards Institute American Standard Code for Information Interchange An action or event that occurs at an unpredictable time with respect to the execution of a program A feature of the NI 488 2 software in which serial pol
136. o highlight NI 488 and NI 488 2 calls which return with the ERR bit set inibsta Calls To Trap On You can configure GPIB Spy to suspend the execution of an application when one of the selected trap bits is set in ibsta for the NI 488 or NI 488 2 call that is completing If you want to modify this option select the Calls to Trap On menu item from the Configure menu When a call causes a trap to occur a dialog box pops up and gives a brief description of the trapped call A dialog box causes all Windows applications currently running to be suspended until you click on the OK button By default GPIB Spy does not trap on any calls Buffer History When GPIB Spy records a call such as ibrd ibwrt or Send that includes a buffer of data the Call Details window shows you the contents of the buffer The default configuration of GPIB Spy is to store each I O buffer in a brief format If you want to modify this option then select the Buffer History menu item from the Configure menu The buffer history has three settings brief full and none These settings determine how much of the buffer to save for the NI 488 or NI 488 2 call being recorded Once a call is recorded you cannot modify its buffer history The brief buffer setting saves up to 64 bytes of buffer information If the buffer is longer than 64 bytes only the first 32 bytes and last 32 bytes of the buffer are saved The none buffer setting saves no buffer information The full buffer setti
137. o implement parallel polling using NI 488 2 routines Each step contains example code 1 Configure the device for parallel polling using the PPol1Config routine unless the device can configure itself for parallel polling The following example configures a device at address 3 to assert data line 5 DIOS when its ist value is 1 include decl h char response Addr4882 t AddressList 2 The following command clears the GPIB SendIFC 0 The value of sense is compared with the ist bit of the device and determines whether the data line is asserted PPollConfig 0 3 5 1 2 Conduct the parallel poll using PPol1 store the response and check the response for a certain value In the following example because DIOS is asserted by the device if ist 1 the program checks bit 4 hex 10 in the response to determine the value of ist PPoll 0 amp response If response has bit 4 hex 10 set the ist bit of the device at that time is equal to 1 If it does not appear the ist bit is equal to 0 Check the bit in the following statement if response amp 0x10 printf The ist equals 1 n else printf The ist equals 0 n 3 Unconfigure the device for parallel polling using the PPol1Unconfig routine as shown in the following example In this example the NOADDR constant must appear at the end of the array to signal the end of the address list If NOADDR is the only value in the array all dev
138. ollers 1 1 GPIB addresses address bit configuration illustration 1 2 enabling repeat addressing 8 11 listen address 1 2 primary 1 2 8 7 purpose 1 2 repeat addressing 4 6 secondary 1 2 8 7 syntax in wibic 5 4 to 5 5 talk address 1 2 GPIB PCII IA mode switch 8 11 GPIB programming techniques device level calls and bus management 7 3 to 7 4 high speed data transfers 7 2 to 7 3 enabling HS488 7 2 system configuration effects 7 3 parallel polling 7 10 to 7 12 implementing 7 10 to 7 12 using NI 488 functions 7 10 to 7 11 using NI 488 2 routines 7 12 NI 488 2 User Manual for Windows Index 8 National Instruments Corp Index serial polling 7 5 to 7 10 automatic serial polling 7 6 to 7 7 autopolling and interrupts 7 7 stuck SRQ state 7 6 to 7 7 service requests from IEEE 488 devices 7 5 from IEEE 488 2 devices 7 6 SRQ and serial polling with NI 488 device functions 7 7 to 7 8 with NI 488 2 routines 7 8 to 7 10 Talker Listener applications 7 4 to 7 5 event queue 7 5 requesting service 7 5 waiting for messages from Controller 7 4 termination of data transfers 7 1 to 7 2 waiting for GPIB conditions 7 3 GPIB Spy utility See also debugging configuration options Buffer History 6 3 Calls to Highlight 6 3 Calls to Trap On 6 3 Set Highlight Color 6 3 Store Configuration 6 4 debugging applications 4 4 exiting 6 2 Help menu 6 5 main window illustration 6 1 output options Clear Screen 6 4
139. ommand used to place an addressed Listener in local front panel control mode National Instruments Corp Glossary 3 NI 488 2 User Manual for Windows Glossary H handshake hex high level function Hz ibent iberr ibsta TEEE interface message T O Input Output T O address ist NI 488 2 User Manual for Windows Glossary 4 The mechanism used to transfer bytes from the Source Handshake function of one device to the Acceptor Handshake function of another device The three GPIB lines DAV NRED and NDAC are used in an interlocked fashion to signal the phases of the transfer so that bytes can be sent asynchronously for example without a clock at the speed of the slowest device For more information about handshaking refer to the ANSI IEEE Standard 488 1 1987 Hexadecimal a number represented in base 16 for example decimal 16 hex 10 See device level function Hertz After each NI 488 2 I O function this global variable contains the actual number of bytes transmitted A global variable that contains the specific error code associated with a function call that failed At the end of each function call this global variable status word contains status information Institute of Electrical and Electronic Engineers A broadcast message sent from the Controller to all devices and used to manage the GPIB In the context of this manual the transmission of commands or messages betwee
140. on setting it up to take voltage measurements in autorange mode 3 The application sends the multimeter an instruction to take a voltage measurement 4 The application tells the multimeter to transmit the data it has acquired to the computer The process of requesting a measurement and reading from the multimeter Steps 3 and 4 is repeated as long as there are readings to be obtained 5 As a cleanup step before exiting the application returns the interface board to its original state by taking it offline NI 488 2 User Manual for Windows 2 2 National Instruments Corp Chapter 2 Application Examples GPIB Cable Computer Multimeter Set Up Multimeter to Take Voltages Tell Multimeter to Take Measurement Read Measurement from Multimeter Finished Getting Measurements CLEAN UP Figure 2 1 Program Flowchart for Example 1 National Instruments Corp 2 3 NI 488 2 User Manual for Windows Application Examples Chapter 2 Example 2 Clearing and Triggering Devices This example illustrates how you can clear and trigger GPIB devices Two freshman physics lab partners are learning how to use a GPIB digital oscilloscope They have successfully loaded the NI 488 2 software on a personal computer and connected their GPIB board to a GPIB digital oscilloscope Their current lab assignment is to write a small application to practice using the oscilloscope and its command set using high level GPIB commands
141. on Files The NI 488 2 software includes nine sample applications along with source code for each language supported by the NI 488 2 software For a detailed description of the sample application files refer to Chapter 2 Application Examples How the NI 488 2 Software Works with Windows The NI 488 2 driver is a standard 16 bit Windows DLL which is loaded when a Windows GPIB application is executed The NI 488 2 driver for Windows is unloaded when the last active GPIB application is exited Figure 1 4 shows how the NI 488 2 software works with Windows and your GPIB hardware WIBIC WIBIC 16 bit Utility Win16 Win16 User 32 bit Utility Win 32s Win 32s User for Using User Application for Using User Application NI 488 2 4 Application or Program that op NI 488 2 Application R Program that Commands Program Uses Direct Commands Program Uses Direct Interactively Entry Interactively Entry 16 bit NI 488 2 Language Interface 32 bit NI 488 2 Language Interface Windows 16 bit NI 488 2 32 bit NI 488 2 DI be 16 bit NI 488 2 DLL K gt Translation DLL Translation DLL 4 GPIB Hardware Interface Figure 1 4 How the NI 488 2 Software Works with Windows NI 488 2 User Manual for Windows 1 8 National Instruments Corp Chapter 1 Introduction Unloading and Reloading the NI 4
142. onsecutive passes one pass each for the red green and blue components of the image Sub steps 6a 6b and 6c are repeated for each of the passes 6a The application sends a command to the film recorder directing it to accept data to create a single pass image The film recorder asserts the SRQ line as soon as a pass is completed 6b The application waits for RQS NI 488 2 User Manual for Windows 2 10 National Instruments Corp Chapter 2 Application Examples 10 6c When the SRQ line is asserted the application serial polls the film recorder to see if it requested service as in Step 5 The application issues a command to the film recorder to advance the film by one frame The advance occurs successfully unless the end of film is reached The application waits for RQS which completes when the film recorder asserts the SRQ line to signal it is done advancing the film As soon as the application s wait for RQS completes the application serial polls the film recorder to see if it requested service as in Step 5 The returned serial poll status byte indicates either of two conditions the film recorder finished advancing the film as requested or the end of film was reached and it can no longer advance Steps 6 through 9 are repeated as long as film is in the camera and more images need to be recorded As a cleanup step before exiting the application returns the interface board to its original state by taking it offline
143. ows Index 2 National Instruments Corp Index B base I O address setting 8 10 batch mode for wibconf utility 8 13 to 8 15 command pairs table 8 15 configuration file 8 13 to 8 14 board configuration See wibconf utility board functions See NI 488 functions boards disabling access to GPIB board 8 10 testing with wibtest 4 1 to 4 2 Borland C See C language buffer command set buffer display mode 5 17 buffer history viewing 6 3 bus timing setting 8 10 C C language compiling linking and running applications 3 17 direct entry 3 18 to 3 22 files available with NI 488 2 software 1 7 cables checking with wibtest 4 2 setting cable length for high speed data transfers 8 10 Call Details window GPIB Spy utility 6 2 calls highlighting 6 3 trapping 6 3 CIC See Controller in Charge CIC CIC protocol enabling 8 9 making GPIB board Controller in Charge 7 3 to 7 4 CIC status word condition bit position hex value and type table 3 4 description A 4 clearing and triggering devices example 2 4 to 2 5 CMPL status word condition bit position hex value and type table 3 4 description A 3 communication application examples basic communication 2 2 to 2 3 with IEEE 488 2 compliant devices 2 14 to 2 15 communication errors 4 6 repeat addressing 4 6 termination method 4 6 National Instruments Corp Index 3 NI 488 2 User Manual for Windows Index compiling linking and running
144. p StatusByte if ibsta amp ERR gpiberr ibrsp error if StatusByte amp MAVbit gpiberr Improper Status Byte printf Status Byte 0x x n StatusByte Step 6 Read the Measurement If the data is valid read the measurement from the instrument AsciiToFloat isa function that takes a null terminated string as input and outputs the floating point number it represents ibrd ud rdbuf 10L if ibsta amp ERR gpiberr ibrd error rdbuf ibentl 0 printf Read s n rdbuf Output gt Read 10 98E 3 sum AsciiToFloat rdbuf Step 7 Process the Data Repeat steps 4 through 6 in a loop until 10 measurements have been read Then print the average of the readings as shown printf The average of the 10 readings is f n sum 10 0 Step 8 Place the Device Offline As a final step take the device offline using the ibon1 function ibonl ud 0 NI 488 2 User Manual for Windows 3 10 National Instruments Corp Chapter 3 Developing Your Application Writing Your NI 488 2 Application This section discusses items you should include in an application program that uses NI 488 2 routines general program steps and an NI 488 2 example In this manual the example code is presented in C The NI 488 2 software includes the source code for C samp4882 c Visual Basic samp4882 bas direct entry functions in C d114882 c and direct entry functions in Visual Basic d1
145. peration EOI by itself the EOS character by itself or EOI plus the EOS character You can use the ibconfig function option IbcEndBitIsNormal1 to enable a mode in which the END bit is set only when EOI is asserted In this mode if the I O operation completes because of the EOS character by itself END is not set The application should check the last byte of the received buffer to see if it is the EOS character SRQI brd SRQI indicates that a GPIB device is requesting service SRQI is set whenever the GPIB board is CIC the GPIB SRQ line is asserted and the automatic serial poll capability is disabled SRQI is cleared either when the GPIB board ceases to be the CIC or when the GPIB SRQ line is unasserted RQS dev RQS appears in the status word only after a device level call It indicates that one or more serial poll response bytes are waiting in the device s serial poll response queue Automatic serial poll responses are not stored in the response queue unless they have bit 6 set NI 488 2 User Manual for Windows A 2 National Instruments Corp Appendix A Status Word Conditions An automatic serial poll occurs either as a result of a call to ibwait or automatically if automatic serial polling is enabled If the serial poll response queue is not empty ibrsp returns the oldest byte stored in the queue To empty the response queue call ibrsp repeatedly until RQS is no longer set in the device s status word SPOLL brd Us
146. pplication Count When an I O function completes wilbic displays the actual number of bytes sent or received regardless of the existence of an error condition If one of the addresses in an address list of an NI 488 2 routine is invalid then the error is EARG and wibic displays the index of the invalid address as the count The count has a different meaning depending on which NI 488 function or NI 488 2 routine is called Refer to the function descriptions in the NJ 488 2 Function Reference Manual for DOS Windows for the correct interpretation of the count return Common NI 488 Functions ibfind Use the ibfind function to open a board The following example opens gpibo ibfind gpibo id 32000 gpib0o id is the unit descriptor of the board The prompt gpib0 indicates that the board is open Any name you use with the ibfind function must be a valid symbolic name in the driver gpibo is the default name found in the driver For more information about valid names refer to Chapter 8 wibconf Windows Interface Bus Configuration Utility ibdev The ibdev command initializes a device descriptor with the input information With ibdev you specify the following values e Access board for the device e Primary address e Secondary address NI 488 2 User Manual for Windows 5 10 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility e Timeout setting e EOT mode EOS mode
147. program The user manual also contains debugging information and detailed examples Use the NI 488 2 Function Reference Manual for DOS Windows for specific information about each NI 488 function and NI 488 2 routine such as format parameters and possible errors National Instruments Corp xiii NI 488 2 User Manual for Windows About This Manual Organization of This Manual This manual is organized as follows Chapter 1 Introduction gives an overview of GPIB and the NI 488 2 software Chapter 2 Application Examples contains nine sample applications designed to illustrate specific GPIB concepts and techniques that can help you write your own applications The description of each example includes the programmer s task a program flowchart and numbered steps which correspond to the numbered blocks on the flowchart Chapter 3 Developing Your Application explains how to develop a GPIB application program using NI 488 functions and NI 488 2 routines Chapter 4 Debugging Your Application describes several ways to debug your application program Chapter 5 wibic Windows Interface Bus Interactive Control introduces you to wibic the interactive control program that you can use to communicate with GPIB devices interactively Chapter 6 GPIB Spy explains how to use the GPIB Spy utility to monitor and debug your application program Chapter 7 GPIB Programming Techniques describes techniques for using some NI 488 functions
148. ps up with the following text File Error Cannot find GPIB DLL Press the Close button wibtest displays the following error message when it fails lt lt lt No driver present for GPIBx gt gt gt To correct the problem make sure that the file gpib d11 is in the Windows directory usually c windows The same error message is displayed if gpib ini is not located in the Windows directory If you are unable to locate gpib d1l or gpib ini you should reinstall the NI 488 2 software Presence Test of Board The following error message appears if the board gpib x is not installed or if the software is not configured properly lt lt lt No board present for GPIBx gt gt gt If this message appears you could have one of the following situations e TheUse this GPIB Interface field in wibconf might be set to no for board gpibx If you want to use the board you must set this field to yes National Instruments Corp 4 1 NI 488 2 User Manual for Windows Debugging Your Application Chapter 4 e The board might not be properly installed and configured Refer to the getting started manual for detailed instructions e The software and hardware settings do not match You can run wibconf to check the current configuration of the software GPIB Cables Connected The following error message appears if a GPIB cable is connected to the board when you run wibtest Cal1 25 ibcmd failed ibsta 0x134 not what was expected
149. r an introduction to a key concept Text in this font denotes text or characters that you enter from the keyboard Sections of code programming examples and syntax examples also appear in this font This font is also used for the proper name of disk drives paths directories device names variables and for statements taken from program code Bold text in this font denotes the messages and responses that the computer automatically prints to the screen Italic text in this font denotes that you must supply the appropriate words or values in the place of these items Angle brackets enclose the name of a key on the keyboard for example lt PageDown gt A hyphen between two or more key names enclosed in angle brackets denotes that you should simultaneously press the named keys for example lt Control C gt IEEE 488 and IEEE 488 2 are used throughout this manual to refer to the ANSI IEEE Standard 488 1 1987 and the ANSI IEEE Standard 488 2 1992 respectively which define the GPIB The term NI 488 2 software is used throughout this manual to refer to the NI 488 2 software for Windows unless otherwise noted Abbreviations acronyms metric prefixes mnemonics symbols and terms are listed in the Glossary National Instruments Corp xv NI 488 2 User Manual for Windows About This Manual Related Documentation The following documents contain information that you may find helpful as you read this manual e AN
150. r Windows GPIB Programming Techniques Chapter 7 You can use the ibconfig function to configure the software to inform you whether or not the GPIB EOI line was asserted when the EOS byte was read Use the IbcEndBitIsNormal option to configure the software to report only the END bit in ibsta when the GPIB EOI line is asserted By default the NI 488 2 driver reports END in ibsta when either the EOS byte is read in or the EOI line is asserted during a read High Speed Data Transfers HS488 National Instruments has designed a high speed data transfer protocol for IEEE 488 called HS488 This protocol increases performance for GPIB reads and writes up to 8 Mbytes s depending on your system HS488 is a superset of the IEEE 488 standard thus you can mix IEEE 488 1 IEEE 488 2 and HS488 devices in the same system If HS488 is enabled the TNT4882C hardware implements high speed transfers automatically when communicating with HS488 instruments To determine whether your GPIB interface board has the TNT4882C hardware use the GPIBInfo utility If you attempt to enable HS488 on a GPIB board that does not have the TNT4882C chip the error ECAP is returned Enabling HS488 To enable HS488 for your GPIB board use the ibconfig function option IbcHSCableLength The value passed to ibconfig should specify the number of meters of cable in your GPIB configuration If you specify a cable length that is much smaller than what you actually use the transf
151. r compiler s Windows documentation After you have written your Microsoft C application program compile your program and use the Mq option of Microsoft C to create a QuickWin application This option is available starting with Microsoft C C Version 7 0 with the Microsoft Software Development Kit SDK or with Microsoft Visual C Version 1 x The following command compiles and links a Microsoft QuickWin application named cprog cl Mq cprog c After you have written your Borland C C application program compile your program and use the W option of Borland C C to create a Windows application The following command compiles and links a Borland C C Windows application named cprog bec W cprog c To run your application choose the Run option from the File menu in the Program Manager window Enter the path and name of the compiled program in the dialog box that appears NI 488 2 User Manual for Windows 3 22 National Instruments Corp Chapter 3 Developing Your Application Direct Entry with Visual Basic See the Visual Basic section earlier in this chapter for information on calling the NI 488 functions with Visual Basic Include the file niglobal bas in your application project file You must create a file for example d11func bas that contains the direct entry prototypes of the functions used in your application program Include the direct entry file in your application project file Refer to the NJ 488 2 Function Refere
152. r if the CIC protocol is disabled the ECIC error is returned The default option for this characteristic is no National Instruments Corp 8 9 NI 488 2 User Manual for Windows wibconf Windows Interface Bus Configuration Utility Chapter amp Bus Timing Board Characteristic Only This field specifies the T1 delay of the source handshake capability for the board This delay determines the minimum amount of time after the data is placed on the bus that the board may assert DAV during a write or command operation If the total length of the GPIB cable length in the system is less than 15 m the value of 350 ns is appropriate Other factors might affect the choice of the T1 delay although they are unlikely to affect your system setup Refer to the ANSI TEEE Standard 488 1 1987 Section 5 2 for more information about these other factors The default for this option is 500 ns Cable Length for High Speed Board Characteristic Only This field specifies the number of meters of GPIB cable you have in your system If you use the HS488 high speed protocol to communicate with HS488 compliant devices you must specify the total number of meters of GPIB cable in your system The System Controller when it initializes the GPIB must send this information to all HS488 devices so that high speed transfers occur without errors Parallel Poll Duration Board Characteristic Only This field specifies the length of time the driver waits when conductin
153. r the GPIB board detects that the Device Clear DCL command has been sent by another Controller or whenever the GPIB board as a Listener detects that the Selected Device Clear SDC command has been sent by another Controller DCAS is cleared on any call immediately following an ibwait call if the DCAS bit was set in the ibwait mask parameter It also occurs on any call immediately following a read or write National Instruments Corp A 5 NI 488 2 User Manual for Windows Appendix B Error Codes and Solutions This appendix lists a description of each error some conditions under which it might occur and possible solutions The following table lists the GPIB error codes Table B 1 GPIB Error Codes Mnemonic Value Meaning C mwm o Windowsenor SSCS gcc 1 Foncion requires GPIB board ioe CIO C mo 2 oresonn OOOO C kaor 3 GPIB board not addressed coneety C earo 4 inati argument function cat esac 5 _ GPB board nor System Conrolerasequred Easo 6 WO operation aborted meou C enes 7 Nonexisen GPB board C eoma s DMAcnor SSCS C kore 10 Asynchronous TO in progs car 11 No capably foroperaion eso 12 Filesysemenor oUi i C esos ia Gripbusenor SOS C esm 15 _ Sera poll sans byt queue overiow Eseo 16 SRO suekin ON position eras 20 Tabeproviem o EDVR 0 1 2 3 4 5 7 10 11 12 14 15 16 20 EDVR is returned in the following cases e The board or device
154. request or to summarize the state of the device National Instruments Corp 7 5 NI 488 2 User Manual for Windows GPIB Programming Techniques Chapter 7 Service Requests from IEEE 488 2 Devices The IEEE 488 2 standard refined the bit assignments in the status byte In addition to setting bit 6 when requesting service IEEE 488 2 devices also use two other bits to specify their status Bit 4 the Message Available bit MAV is set when the device is ready to send previously queried data Bit 5 the Event Status bit ESB is set if one or more of the enabled IEEE 488 2 events occurs These events include power on user request command error execution error device dependent error query error request control and operation complete The device can assert SRQ when ESB or MAV are set or when a manufacturer defined condition occurs Automatic Serial Polling You can enable automatic serial polling if you want your application to conduct a serial poll automatically any time the SRQ line is asserted The autopolling procedure occurs as follows 1 To enable autopolling use the configuration utility wibconf or the configuration function ibconfig with option IbcAUTOPOLL Autopolling is enabled by default 2 When the SRQ line is asserted the driver automatically serial polls the open devices 3 Each positive serial poll response bit 6 or hex 40 is set is stored in a queue associated with the device that sent it The RQS bit of th
155. rface gpib 1lib Use the following command to compile and link a QuickWin C application named cprog using Microsoft C cl Mq cprog c gpib lib The Mq option of Microsoft C creates a QuickWin application To run your application choose the Run option from the File menu in the Program Manager window Enter the path and name of the compiled program in the dialog box that pops up Borland C Before you compile your C application program make sure that the following line is included at the beginning of your program include windecl h After you have written your C application program you must compile your application program using the Borland C version 2 0 or higher compiler Then link your application with the C language interface gpib 1lib Use the following command to compile and link a Windows C application named cprog using Borland C bec W cprog c gpib 1lib The W option of Borland C creates a Windows application To run your application choose the Run option from the File menu in the Program Manager window Enter the path and name of the compiled program in the dialog box that pops up National Instruments Corp 3 17 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 Visual Basic With Visual Basic you access the NI 488 functions as subroutines using the BASIC keyword CALL followed by the NI 488 function name for example CALL ibtrg ud You can also access the NI 488 functions usi
156. rotocol board only Interrupt setting board only Base I O address board only DMA channel board only Repeat addressing device only Rename a device device only Connect a device to a board device only disconnect Disconnect a device from a board device no value only Switch the current board to PCI or PCHA PCII or PCIIA mode t Parallel poll duration board only Use this interface board board only Serial Poll Timeout device only National Instruments Corp 8 15 NI 488 2 User Manual for Windows Appendix A Status Word Conditions This appendix gives a detailed description of the conditions reported in the status word ibsta For information about how to use ibsta in your application program refer to Chapter 3 Developing Your Application If a function call returns an ENEB or EDVR error all status word bits except the ERR bit are cleared indicating that it is not possible to obtain the status of the GPIB board Each bit in ibsta can be set for device calls dev board calls brd or both dev brd The following table lists the status word bits Table A 1 Status Word Bits ineonie P vac Type Deserpion Mnemonic Pos Value Type Description SPOLL 10 400 brd Board has been serial polled by Controller event o 200 wa DCAS DTAS or IFC event as occumed Pome e 100 avora ro come Prox r o va Lockout swe SSS S S am e 40 w Rms d racs 3 e
157. rted or unasserted and returns to the program immediately WaitSRQ is similar to Test SRQ except that WaitSRQ suspends the application program until either SRQ is asserted or the timeout period is exceeded The following examples use NI 488 2 routines to detect SRQ and then determine which device requested service In these examples three devices are present on the GPIB at addresses 3 4 and 5 and the GPIB interface is designated as bus index 0 The first example uses FindRQS to determine which device is requesting service and the second example uses Al1Spol11 to serial poll all three devices Both examples use Wait SRQ to wait for the GPIB SRQ line to be asserted Note Automatic serial polling is not used in these examples because you cannot use it with NI 488 2 routines NI 488 2 User Manual for Windows 7 8 National Instruments Corp Chapter 7 GPIB Programming Techniques Example 1 Using FindRQS This example illustrates the use of FindRQS to determine which device is requesting service void GetASerialPollResponse char DevicePad char DeviceResponse char SerialPollResponse 0 int WaitResult Addr4882 t Addrlist 4 3 4 5 NOADDR WaitSRQ 0 amp WaitResult if WaitResult printf SRQ is asserted n Use FindRQS to find a device that requested service FindRQS 0 AddrList amp SerialPollResponse if ibsta amp ERR printf Device at pad x returned byte x n AddrList i
158. rvicing situation when automatic serial polling is enabled include decl h char GetSerialPollResponse int DeviceHandle char SerialPollResponse 0 ibwait DeviceHandle TIMO RQS National Instruments Corp 7 7 NI 488 2 User Manual for Windows GPIB Programming Techniques Chapter 7 if ibsta amp ROS printf Device asserted SRQ n Use ibrsp to retrieve the serial poll response ibrsp DeviceHandle amp SerialPollResponse return SerialPollResponse SRQ and Serial Polling with NI 488 2 Routines The NI 488 2 software includes a set of NI 488 2 routines that you can use to conduct SRQ servicing and serial polling Routines pertinent to SRQ servicing and serial polling are Al1Spoll FindRQS ReadStatusByte TestSRQ and WaitSRQ A11Spol11 can serial poll multiple devices with a single call It places the status bytes from each polled instrument into a predefined array Then you must check the RQS bit of each status byte to determine whether that device requested service ReadStatusByte is similar to Al1Spol1 except that it serial polls only a single device It is also analogous to the device level NI 488 ibrsp function FindRQS serial polls a list of devices until it finds a device that is requesting service or until it has polled all of the specified devices The routine returns the index and status byte value of the device requesting service TestSRQ determines whether the SRQ line is asse
159. ry within your application program The following code calls the LoadLibrary function and handles errors GpibLib LoadLibrary GPIB DLL if GpibLib lt HINSTANCE_ ERROR return FALSE Next you must get the address and assign it to the function pointer by using the Get ProcAddress function This code goes in your application program Pibdev int _far pascal int int int int int int int _far int far long _far Get ProcAddress GpibLib LPCSTR DLLibdev Pibonl int _far pascal int int int far int far long _far GetProcAddress GpibLib LPCSTR DLLibonl1 National Instruments Corp 3 21 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 If Get ProcAddress does not return a pointer you can check to see if an address was assigned or not as in the following example if Pibdev NULL Pibonl NULL FreeLibrary GpibLib GpibLib NULL return FALSE else return TRUE The following code shows you how to call functions from within your application program dvm Pibdev 0 1 0 T10s 1 0 amp ibsta amp iberr amp ibentl Pibonl dvm 0 amp ibsta amp iberr amp ibcntl Upon completion of your program you must free the library as in the following example FreeLibrary GpibLib For more information about the Windows functions like LoadLibrary and Get ProcAddress refer to the Windows SDK documentation or you
160. s 31 NOADDR printf Finding all Listeners on the bus n Findlstn 0 instruments result 30 if ibsta amp ERR gpiberr FindLstn error Step 3 Identify the Instrument Send an identification query to each device for identification For this example assume that all of the instruments are IEEE 488 2 compatible and can accept the identification query IDN In addition assume that FindLstn found the GPIB interface board at primary address 0 default and therefore you can skip the first entry in the result array National Instruments Corp 3 13 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 for loop 1 loop lt num Listeners loop Send 0 result loop IDN 5L NLend if ibsta amp ERR gpiberr Send error Receive 0 result loop buffer 10L STOPend if ibsta amp ERR gpiberr Receive error buffer ibcntl 0 printf The instrument at address d is a s n result loop buffer if strncmp buffer Fluke 45 9 0 fluke result loop printf Found the Fluke n break if loop gt num_Listeners printf Did not find the Fluke n ibonl 0 0 exit 1 The constant NLend signals that the new line character with EOI is automatically appended to the data to be sent The constant STOPend indicates that the read is stopped when EOI is detected Step 4 Initialize the Instrument After you fi
161. s file contains an imports section that lists the direct entry points used by the application program You must link the module definition file to your application program After you have written your Microsoft C application program compile your program and use the Mq option of Microsoft C to create a QuickWin application This option is available starting with Microsoft C C Version 7 0 with the Microsoft Software Development Kit SDK or with Microsoft Visual C Version 1 x The following command compiles and links a Microsoft QuickWin application named cprog with the module definition file cprog def cl Mq cprog c cprog def After you have written your Borland C C application program compile your program and use the W option of Borland C C to create a Windows application The following command compiles and links a Borland C C Windows application named cprog with the module definition file cprog def bec W cprog c cprog def To run your application choose the Run option from the File menu in the Program Manager window Enter the path and name of the compiled program in the dialog box that appears The second method of accessing the DLL follows National Instruments Corp 3 19 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 Method 2 Generate an Import Library Using implib To use the second method link the application to an import library generated from the DLL using the imp1ib utility To
162. sccccceeeeessceeeeeeeessneeeee 1 1 Controller In Charge and System Controller cece eeeeeeseeeeeneees 1 1 GPIB Addressing osis hinge ea pidiisi n ARES 1 2 Sending Messages Across the GPIB 000 cee eseeseeseceneeeeeeseceeeeneees 1 2 Data LINES rcason thee Pet ccd onda pots desdvsdd soporte aes AAE 1 2 Handshake LINE Svi nianon na ana e asian ceva h sees 1 3 Interface Management Lines eeeeeeeeeeeseeeeereererrerreresreen 1 3 Setting Up and Configuring Your System eseseeseeeeseereereereererresn 1 4 Controlling More Than One Board cece eeeeeeeeeeeeeeeen 1 5 Configuration Requirement ce ceeeesceseceseceeceeeeeeeeseeeseeeseeeseees 1 5 The NI 488 2 Software Package 0 0 ecseesessecesecseceseesseesecesecseeeaeesseeseseaesseeees 1 6 NI 488 2 Driver and Driver Utilities 0 0 ee eeeeeseeeeeeeseeeneeeneeee 1 6 C Language Piles 0 1 sissies iit metigaiilinusGedanuite 1 7 Visual Basic Language Files 0 eee eseeseeeseeseeeeceseceeeeaeeeseeeneenees 1 7 Wini 32s Biles iii eich ecss e tee ae TeK e Sadr cdeteon plane eniities 1 8 Sample Application Files eee ceeeseseesseceeceeeeseeseeeesesesseeeseeeees 1 8 How the NI 488 2 Software Works with WindowS sceseseesseeseeeeeeeeeee 1 8 Unloading and Reloading the NI 488 2 Driver 00 0 ce eeeceseeeseeseeereeeeeeeeeeeees 1 9 Chapter 2 Application Examples 20 0 0 cccccssesssesessesseesnesseeseesnessecseesneeneeseeseeaneeneeanennen 2 1 Example 1 Ba
163. sic Communication 00 ceceeeesecssecsseeseeeseeeseeseeeeeeaeesseeneeense 2 2 Example 2 Clearing and Triggering Devices ceeeesceseeseceteeeeeeseeneeeee 2 4 Example 3 Asynchronous W O eee eeeeceescceseceeeesececesecssecsaeeeeeaeeseeeseeenees 2 6 Example 4 End of String Mode eee eescsseceecseecseeeneeeeeeseesseseseeeseeaeense 2 8 Example 5 Service Requests cscecssccesseecesseeeeseecceseecessceserseoneneceeeesaee 2 10 Example 6 Basic Communication with IEEE 488 2 Compliant Devices 2 14 Example 7 Serial Polls Using NI 488 2 Routines cece eeeeeseeseereeeeeeee 2 16 Example 8 Parallel Pollsin onnan 2 18 Example 9 Non Controller Example sseeseeeeseeeeeseseeeesseeresresreresrrsreresresresrea 2 20 National Instruments Corp v NI 488 2 User Manual for Windows Contents Chapter 3 Developing Your Application 2 00 0 eee ceceeseeeseeseeeeesneeseeseeeneeneenteeneenees 3 1 Choosing How to Access the NI 488 2 DLL w ee eee eeeeseceeceeeeneeeaeeeeeesees 3 1 Choosing Between NI 488 Functions and NI 488 2 Routines eee 3 1 Using NI 488 Functions One Device for Each Board 3 2 NI 488 Device Functions cc eeeeeeeseceeeereeeeeeseeeeeeeeeeneees 3 2 NI 488 Board Functions ces eeeeeeeseceseceseeeeeeeeeseeeseesees 3 2 Using NI 488 2 Routines Multiple Boards and or Multiple Device Sagini aaaeei a i a A A E e ia A Aaa 3 3 Checking Status with Global Variables 0
164. signated Controller that can assert control become CIC of the GPIB by sending the Interface Clear IFC message Other devices can become CIC only by having control passed to them Glossary 7 NI 488 2 User Manual for Windows Glossary T TAD Talk Address Talker TCT timeout TLC U ud unit descriptor UNL UNT W wibconf wibic NI 488 2 User Manual for Windows See MTA A GPIB device that sends data messages to Listeners Take Control is the GPIB command used to pass control of the bus from the current Controller to an addressed Talker A feature of the NI 488 2 driver that prevents I O functions from hanging indefinitely when there is a problem on the GPIB An integrated circuit that implements most of the GPIB Talker Listener and Controller functions in hardware A variable name and first argument of each function call that contains the unit descriptor of the GPIB interface board or other GPIB device that is the object of the function Unlisten is the GPIB command used to unaddress any active Listeners Untalk is the GPIB command used to unaddress an active Talker The NI 488 2 driver configuration program for Windows The Interface Bus Interactive Control program for Windows is used to communicate with GPIB devices troubleshoot problems and develop your application Glossary 8 National Instruments Corp Index Symbols repeat previous function function wibic 5 15 e
165. sserts its data line during the configuration step if its temperature threshold has been reached 7 If the response to the poll indicates that all three metals are at the appropriate temperature the application sends a command to each of the three power supplies directing them to power on Then the motors start and the metals pour into the mold If only one or two of the metals is at the appropriate temperature Steps 5 and 6 are repeated until the metals can be successfully mixed NI 488 2 User Manual for Windows 2 18 National Instruments Corp Chapter 2 Application Examples 8 The application unconfigures all of the transducers so that they no longer participate in parallel polls 9 As a cleanup step before exiting the application returns the interface board to its original state by taking it offline GPIB GPIB GPIB GPIB GPIB GPIB Cable Cable Cable Cable Cable Cable Computer UNIT 1 UNIT 2 UNIT 3 Temp Power Temp Power Temp Power 1 INIT Transducer Supply Transducer Supply Transducer Supply PollConfig P Configure 2 Transducer 1 for Faral Pol Parallel Polls nabie P PollConfig Configure Transducer 2 Parallel Poll for Parallel Polls Enable PPollConfig Configure Transducer 3 Parallel Poll for Parallel Polls Enable Parallel Poll Disable CLEAN UP Figure 2 8 Program Flowchart for Example 8 National Instruments Corp 2 19 NI 488 2 User Manual for Windows
166. stand GPIB protocol or bus management For information about device level calls and how they manage the GPIB refer to Device Level Calls and Bus Management in Chapter 7 GPIB Programming Techniques NI 488 Board Functions Board functions are low level functions that perform rudimentary GPIB operations Board functions access the interface board directly and require you to handle the addressing and bus management protocol In cases when the high level device functions might not meet your needs low level board functions give you the flexibility and control to handle situations such as the following e Communicating with non compliant non IEEE 488 2 devices e Altering various low level board configurations e Managing the bus in non typical ways NI 488 2 User Manual for Windows 3 2 National Instruments Corp Chapter 3 Developing Your Application The NI 488 board functions are compatible with and can be interspersed within sequences of NI 488 2 routines When you use board functions within a sequence of NI 488 2 routines you do not need a prior call to ibfind to obtain a board descriptor You simply substitute the board index as the first parameter of the board function call With this flexibility you can handle non standard or unusual situations that you cannot resolve using NI 488 2 routines only Using NI 488 2 Routines Multiple Boards and or Multiple Devices When your system includes a board that must access more than one de
167. stof Driver esicscucdesaestevteassidesdedeaconsdeapateatanctaseaabnt aialscaeed 4 1 Pr sence Test of Board scisstissississtesteceartasaessastteiisinlergeandaiaten 4 1 GPIB Cables Connected nigri aaa a aa a a 4 2 R nnin GPIB NfO isinna a a EEE ee a 4 2 Debugging with the Global Status Variables cece eeseseeseeeeseeeseeneeeeeenee 4 3 Debus ging with WDIG enrian r e EE e E E E 4 4 Debugging with GPIB Spy orir enean a enine eE a inaa iontais 4 4 GPIB Error CodeS mecena Ena E R EEE E EE E 4 4 Configuration ETTOrS minnanna ea a i a i i 4 5 Timing Errors iussis iie e aa aatia aaeei 4 6 Communication ETTOTS sieniin itari ra n a dundee tate 4 6 Repeat Addressing teii ienet tiaras a desea eeveth nate dae 4 6 Termination Method sic issess sisi ssiccdeaecceveemeatesi RA O 4 6 Common QueSstiONs sseni niea E EE EN Ria 4 7 Chapter 5 wibic Windows Interface Bus Interactive Control Utility 5 1 OVERVIEW sss essen cadens scant EAE clase eusttaaedensa E O e EAE EOE 5 1 Example Using NI 488 Functions 00 0 ceseeseesecssecesecseecseeeeeeseeeseeesessaeeaene 5 1 WIDICS YNtaks eile stig n i a a a e tedden d SUM asin teehee gore 5 4 Nutiiber S yintax sc 3i 75 assist steeds ava nstiadiasses bsstaeestestevvsceadgsdgadea sudeadse 5 4 String Syntax inital Sinan A E 5 5 Address SYMtax vec ccice peosehere secret sentra ares 5 5 wibic Syntax for NI 488 Functions cee eeeeeeeseceseceeceeeeeeeeaeeeeeeee 5 5 wibic Syntax for NI 488 2 Rout
168. strings in the following formats ASCII character sequence Y ou must enclose the entire sequence in quotation marks Octal bytes You must use a backslash character followed by the octal value For example octal 40 is represented by 40 Hex bytes You must use a backslash character and an x followed by the hex value For example hex 40 is represented by x40 Special Symbols Some instruments require special termination or end of string EOS characters that indicate to the device that a transmission has ended The two most common EOS characters are r and n r represents a carriage return character and n represents a linefeed character You can use these special characters to insert the carriage return and linefeed characters into a string asin F3R5T1 r n Address Syntax Many of the NI 488 2 routines have an address or address list parameter An address is a 16 bit representation of the GPIB address of a device The primary address is stored in the low byte and the secondary address if any is stored in the high byte For example a device at primary address 6 and secondary address 0x67 has an address of 0x6706 A NULL address is represented as Oxffff wibic Syntax for NI 488 Functions Table 5 1 and Table 5 2 summarize the syntax of NI 488 functions in wibic v represents a number that you input string represents a string that you input For more information about the function parameters use the wibic help feature or refer
169. t ora subdirectory pltr a conflict results e The names of the access boards gpib0 gpib1 gpib2 and gpib3 are fixed and connot be changed Use the function key lt F5 gt to connect or disconnect a device from a particular access board Move the cursor to the device that you want to connect or disconnect by using the cursor control keys and then press the lt F5 gt key NI 488 2 User Manual for Windows 8 4 National Instruments Corp Chapter 8 Edit Exit wibconf Windows Interface Bus Configuration Utility Use the function key lt F8 gt or the lt Enter gt key to edit or examine the characteristics of a particular board or device Move to the board or device that you want to edit using the cursor control keys and then press the lt F8 gt key This step puts you in the lower level of wibconf and lists the characteristics for the particular board or device that you want to edit To exit edit press the function key lt F9 gt or lt Escape gt to return to the upper level Use the function key lt F9 gt or lt Escape gt to exit wibconf If you have made changes wibconf prompts you to save the changes before exiting For more information refer to the Exiting wibconf section later in this chapter Lower Level Device Board Characteristics The lower level screens of wibconf display the currently defined values for characteristics of a device or board such as addressing and timeout information as shown in Figure 8 2
170. tahzations ieat Reta a aaa 3 13 Step 2 Find All Listeners erena 3 13 Step 3 Identify the Instrument eee eeeereeeeeeeeen 3 13 Step 4 Initialize the Instrument 00 eee eeeeeeeeeeeeee 3 14 Step 5 Configure the Instrument 0 0 cee eeeeeeeeeeeeeeee 3 15 Step 6 Trigger the Instrument 0 0 eeeeeeeeeeeeeeeee 3 15 Step 7 Wait for the Measurement 0 00 cee eeeeeeseereeeeeen 3 15 Step 8 Read the Measurement ee ceeeeseeseeereeeeeeeeeee 3 16 Step 9 Process the Data wis cies 3 16 Step 10 Place the Board Offline oo eee eeeeeeeeeeeeees 3 16 Compiling Linking and Running Your Application 0 0 0 0 ce eeeeseeeeeeeeeeee 3 17 IMICTOSOLE ccc enei siege IEE tee Steere AUT Ae ates ee 3 17 Borland CPE iic tssscahiebiehishaahiahiahisbahishaahiasgahiandiaipetstteseetooseeieeastteneaye 3 17 Visual Basic i e eroaa oe EEEE L E aaa 3 18 Direct Entry With Carinason Ea AE R wei len 3 18 Method 1 List Functions in the Module Definition File eee eeeeeeee 3 19 NI 488 2 User Manual for Windows vi National Instruments Corp Contents Method 2 Generate an Import Library Using imphb sit ctia aiilaninin medieniaeiek 3 20 Method 3 Use LoadLibrary and GetProcAddress 3 20 Direct Entry with Visual Basic eeeeessecseceseceeeeecesesseeeeeeseeneees 3 23 Chapter 4 Debugging Your Application 2 ccc eeeeeceeseeseeseeseesneeseeseesnesneeneeseenen 4 1 RUNNIN ES WIDESE ve neseni e E aa hs safest AE A EETA E ened 4 1 Presence Te
171. the execution of your application and display an information screen any time the error bit is setin ibsta For more information about GPIB Spy refer to Chapter 6 GPIB Spy GPIB Error Codes Table 4 1 lists the GPIB error codes Remember that the error variable is meaningful only when the ERR bit in the status variable is set For a detailed description of each error and possible solutions refer to Appendix B Error Codes and Solutions NI 488 2 User Manual for Windows 4 4 National Instruments Corp Chapter 4 Debugging Your Application Table 4 1 GPIB Error Codes mmemnse Vane ang Mnemonic Value Meaning eve o mm SSCS Eao 6 WO operation adored Gimeou C eoma s omae ooo SRQ stuck in ON position Table problem Configuration Errors Several applications require customized configuration of the GPIB driver For example you might want to terminate reads on a special end of string character or you might require secondary addressing In these cases you can use either the wibconf utility to permanently reconfigure the driver or you can programmatically modify the driver while your application is running by using the NI 488 ibconfig function Note To change settings other than base I O address interrupt level or DMA channel National Instruments recommends using ibconfig instead of running the wibconf utility If your application uses ibconfig it will always work regardless of the previous configuration of
172. the driver Refer to the description of ibconfig in the M 488 2 Function Reference Manual for DOS Windows for more information National Instruments Corp 4 5 NI 488 2 User Manual for Windows Debugging Your Application Chapter 4 To test the configuration of your hardware you can use the ibdiag program as described in your getting started manual Timing Errors If your application fails but the same calls issued in wibic are successful your program might be issuing the NI 488 2 calls too quickly for your device to process and respond to them This problem can also result in corrupted or incomplete data A well behaved IEEE 488 device should hold off handshaking and set the appropriate transfer rate If your device is not well behaved you can test for and resolve the timing error by single stepping through your program and inserting finite delays between each GPIB call One way to do this is to have your device communicate its status whenever possible Although this method is not possible with many devices it is usually the best option Your delays will be controlled by the device and your application can adjust itself and work independently on any platform Other delay mechanisms will probably cause varying delay times on different platforms Communication Errors Repeat Addressing Some devices require GPIB addressing before any GPIB activity Devices adhering to the IEEE 488 2 standard should remain in their current state until spe
173. this chapter is available through the online help The online help contains a thorough description of each of the features of GPIB Spy as well as information to help you develop your Windows GPIB application Performance Considerations Keep in mind that GPIB Spy can slow down the performance of your GPIB application and the whole windows system operating environment If you record full I O buffers update to an output file continuously or configure GPIB Spy to record the information on a large number of GPIB calls it might have a significant effect on performance For this reason use GPIB Spy only while you are debugging your application or in situations in which performance is not critical National Instruments Corp 6 5 NI 488 2 User Manual for Windows Chapter 7 GPIB Programming Techniques This chapter describes techniques for using some NI 488 functions and NI 488 2 routines in your application program For more detailed information about each function or routine refer to the NI 488 2 Function Reference Manual for DOS Windows Termination of Data Transfers GPIB data transfers are terminated either when the GPIB EOI line is asserted with the last byte of a transfer or when a preconfigured end of string EOS character is transmitted By default the NI 488 2 driver asserts EOI with the last byte of writes and the EOS modes are disabled You can use the ibeot function to enable or disable the end of transmission EOT mod
174. tions and constants that you can use in your application program e Check for errors after each NI 488 function call e Declare and define a function to handle GPIB errors This function takes the device offline and closes the application If the function is declared as void gpiberr char msg function prototype then your application invokes it as follows if ibsta amp ERR gpiberr GPIB error NI 488 2 User Manual for Windows 3 6 National Instruments Corp Chapter 3 Developing Your Application NI 488 Program Shell Figure 3 1 is a flowchart of the steps to create your application program using device level NI 488 functions lt Open Device ibdev Are All Devices Open Make a Device Level Call e Send Data to Device ibwrt e Receive Data from Device ibrd e Clear Device ibclr e Serial Poll Device ibrsp and so on Finished GPIB Programming Close Device ibon1 Closed All Devices Figure 3 1 General Program Shell Using NI 488 Device Functions National Instruments Corp 3 7 NI 488 2 User Manual for Windows Developing Your Application Chapter 3 General Program Steps and Examples The following steps demonstrate how to use the NI 488 device functions in your program This example configures a digital multimeter reads 10 voltage measurements and computes the average of these measurements Step 1 Open a Device Your first NI 488 function call should be to ibde
175. to the M 488 2 Function Reference Manual for DOS Windows National Instruments Corp 5 5 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 Table 5 1 Syntax for Device Level NI 488 Functions in wibic ibask mn Return configuration information where m is a mnemonic for a configuration parameter or equivalent integer value ibbna brdname Change access board of device where brdname is symbolic name of new board Clear specified device ibconfig mn v Alter configurable parameters where mn is mnemonic for a configuration parameter or equivalent integer value ibdev vvvvvv_ Open an unused device ibdev parameters are board id pad sad tmo eos eot ibwait mask Wait for selected event where mask is a hex octal or decimal integer or a mask bit mnemonic Write data Write data asynchronously ibwrtf flname Write data from a file where lname is pathname of file to write NI 488 2 User Manual for Windows 5 6 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility Table 5 2 Syntax for Board Level NI 488 Functions in wibic Syntax ibask mn ibcac v ibcmd string ibcmda string ibconfig mn v ibdma v ibeos v ibeot v ibevent Return configuration information where m is a mnemonic for a configuration parameter or equivalent integer value Become Active Controller Send commands Send commands asynchronously Alter configurable p
176. to address your device e Check your cable connections and make sure at least two thirds of your devices are powered on e Call ibpad or ibsad if necessary to match the configured address to the device switch settings e Reduce the write byte count to that which is expected by the Controller EADR 3 EADR occurs when the GPIB board is CIC and is not properly addressing itself before read and write functions This error is usually associated with board level functions EADR is also returned by the function ibgts when the shadow handshake feature is requested and the GPIB ATN line is already unasserted In this case the shadow handshake is not possible and the error is returned to notify you of that fact National Instruments Corp B 3 NI 488 2 User Manual for Windows Error Codes and Solutions Appendix B Solutions e Make sure that the GPIB board is addressed correctly before calling ibrd ibwrt RcvRespMsg or SendDataBytes e Avoid calling ibgts except immediately after an ibcmd call ibcmd causes ATN to be asserted EARG 4 EARG results when an invalid argument is passed to a function call The following are some examples e ibtmo called with a value not in the range 0 through 17 e ibpad or ibsad called with invalid addresses e ibppc called with invalid parallel poll configurations e A board level NI 488 call made with a valid device descriptor or a device level NI 488 call made with a board descriptor e
177. ur then pass a wait mask to the function The wait mask should always include the TIMO event otherwise your application is suspended indefinitely until one of the wait mask events occurs Device Level Calls and Bus Management The NI 488 device level calls are designed to perform all of the GPIB management for your application program However the NI 488 2 driver can handle bus management only when the GPIB interface board is CIC Controller In Charge Only the CIC is able to send command bytes to the devices on the bus to perform device addressing or other bus management activities Use one of the following methods to make your GPIB board the CIC e If your GPIB board is configured as the System Controller default it automatically makes itself the CIC by asserting the IFC line the first time you make a device level call National Instruments Corp 7 3 NI 488 2 User Manual for Windows GPIB Programming Techniques Chapter 7 e If your setup includes more than one Controller or if your GPIB interface board is not configured as the System Controller use the CIC Protocol method To use the protocol issue the ibconfig function option IbcCICPROT or use the wibconf configuration utility to activate the CIC protocol If the interface board is not CIC and you make a device level call with the CIC Protocol enabled the following sequence occurs 1 The GPIB interface board asserts the SRQ line 2 The current CIC serial polls the boar
178. use these tests to fail How do I communicate with my instrument over the GPIB Refer to the documentation that came from the instrument manufacturer The command sequences you use are totally dependent on the specific instrument The documentation for each instrument should include the GPIB commands you need to communicate with it In most cases NI 488 device level calls are sufficient for communicating with instruments Refer to Chapter 3 Developing Your Application for more information Can I use the NI 488 and NI 488 2 calls together in the same application Yes you can mix NI 488 functions and NI 488 2 routines What can I do to check for errors in my GPIB application Examine the value of ibsta after each NI 488 or NI 488 2 call If a call fails the ERR bit of ibsta is set and an error code is stored in ibcnt1 For more information about global status variables refer to Chapter 3 Developing Your Application How do I use wibic You can use wibic to practice communication with your instrument troubleshoot problems and develop your application program For instructions refer to Chapter 5 wibic Windows Interface Bus Interactive Control Utility National Instruments Corp 4 7 NI 488 2 User Manual for Windows Debugging Your Application Chapter 4 What should I type into the pop up window that appears when I start wibconf This pop up window is prompting you for the drive and path where the gpib ini file is located If
179. ut file in which to save the information currently recorded in GPIB Spy To save the information to a file select the To File menu item from the Output menu This causes the standard Windows file selection dialog box to pop up Select a drive directory and file name in which to save the information When you click OK the information recorded in GPIB Spy is saved to the specified file Check the Update Continuously check box in the dialog box if you want the GPIB Spy information to be saved as soon as it is recorded The output file is opened written and closed as each NI 488 or NI 488 2 call is recorded This option is useful if you are trying to debug a Windows application that causes the system to crash before you get an opportunity to close GPIB Spy Use this option only if you need to because it is likely to slow down all Windows applications In addition if you are low on disk space choosing this option could cause you to run out of disk space To turn off the continuous update feature unselect the Update Continuously check box in the file selection dialog box Clear Screen This option clears the display and the information stored in GPIB Spy You cannot retrieve information that has been cleared NI 488 2 User Manual for Windows 6 4 National Instruments Corp Chapter 6 GPIB Spy GPIB Spy Help You can access online help for GPIB Spy by selecting the GPIB Spy Help menu item from the Help menu All of the information covered in
180. v to open a device ud ibdev 0 1 0 T10s 1 0 if ibsta amp ERR gpiberr ibdev error The input arguments of the ibdev function are as follows 0 board index for GPIBO 1 primary GPIB address of the device 0 no secondary GPIB address for the device T10s_ TO timeout value 10 s 1 send END message with the last byte when writing to device 0 disable EOS detection mode When you call ibdev the driver automatically initializes the GPIB by sending an Interface Clear IFC message and placing the device in remote programming state Step 2 Clear the Device Clear the device before you configure the device for your application Clearing the device resets its internal functions to a default state ibclr ud if ibsta amp ERR gpiberr ibclr error NI 488 2 User Manual for Windows 3 8 National Instruments Corp Chapter 3 Developing Your Application Step 3 Configure the Device After you open and clear the device it is ready to receive commands To configure the instrument you send device specific commands using the ibwrt function Refer to the instrument user manual for the command bytes that work with your instrument ibwrt ud RST VAC AUTO TRIGGER 2 SRE 16 35L if ibsta amp ERR gpiberr ibwrt error The programming instruction in this example resets the multimeter RST The meter is instructed to measure the volts alternating current VAC using auto ranging AUTO
181. variables 4 3 GPIB error codes table 4 4 to 4 5 GPIB Spy utility 4 4 GPIBInfo utility 4 2 to 4 3 timing errors 4 6 wibic utility 4 4 wibtest diagnostics 4 1 to 4 2 cable connections 4 2 presence of board 4 1 to 4 2 presence of driver 4 1 default configurations in wibconf 8 12 DevClear routine 3 14 device configuration See wibconf utility device functions See NI 488 functions device level calls and bus management 7 3 to 7 4 direct access to NI 488 2 dynamic link library compiling linking and running applications using C language 3 18 to 3 22 using Visual Basic 3 23 requirements 3 1 DMA channel setting 8 11 documentation conventions used in manual xv organization of manual xi related documentation xvi using the manual set xiii drivers driver and driver utilities for NI 488 2 software 1 6 to 1 7 reconfiguring 4 5 testing with wibtest 4 1 DTAS status word condition bit position hex value and type table 3 4 description A 5 monitoring for message from Controller 7 4 dynamic link library GPIB See NI 488 2 DLL E EABO error code definition table 4 5 description B 5 EADR error code definition table 4 5 description B 3 to B 4 EARG error code definition table 4 5 description B 4 wibic example 5 12 National Instruments Corp Index 5 NI 488 2 User Manual for Windows Index EBUS error code definition table 4 5 description B 8 ECAP error code definition table 4 5
182. vice use the NI 488 2 routines NI 488 2 routines can perform the following tasks with a single call e Find all of the Listeners on the bus e Find a device requesting service e Determine the state of the SRQ line or wait for SRQ to be asserted e Address multiple devices to listen Checking Status with Global Variables Each NI 488 function and NI 488 2 routine updates the global variables to reflect the status of the device or board that you are using The status word ibsta the error variable iberr and the count variables ibcnt and ibcnt1 contain useful information about the performance of your application program Your program should check these variables frequently The following sections describe each of these global variables and how you can use them in your application program Status Word ibsta All functions update a global status word ibsta which contains information about the state of the GPIB and the GPIB hardware Most of the NI 488 functions return the value stored in ibsta You can test for conditions reported in ibsta to make decisions about continued processing or you can debug your program by checking ibsta after each call ibsta is a 16 bit value A bit value of one 1 indicates that a certain condition is in effect A bit value of zero 0 indicates that the condition is not in effect Each bit in ibsta can be set for NI 488 device calls dev NI 488 board calls and NI 488 2 calls brd or all dev brd
183. wa me oo noas o 1 ma Deviee tearsiate d National Instruments Corp A 1 NI 488 2 User Manual for Windows Status Word Conditions Appendix A ERR dev brd ERR is set in the status word following any call that results in an error You can determine the particular error by examining the error variable iberr Appendix B Error Codes and Solutions describes error codes that are recorded in iberr along with possible solutions ERR is cleared following any call that does not result in an error TIMO dev brd TIMO indicates that the timeout period has been exceeded TIMO is set in the status word following an ibwait call if the TIMO bit of the ibwait mask parameter is set and the time limit expires TIMO is also set following any synchronous I O functions for example ibcmd ibrd ibwrt Receive Send and SendCmds if a timeout occurs during one of these calls TIMO is cleared in all other circumstances END dev brd END indicates either that the GPIB EOI line has been asserted or that the EOS byte has been received if the software is configured to terminate a read on an EOS byte If the GPIB board is performing a shadow handshake as a result of the ibgts function any other function can return a status word with the END bit set if the END condition occurs before or during that call END is cleared when any I O operation is initiated Some applications might need to know the exact I O read termination mode of a read o
184. xecute indirect file function wibic 5 16 turn display on function wibic 5 15 turn display off function wibic 5 15 A Active Controller See Controller in Charge CIC addresses See GPIB addresses AllSpoll routine 7 8 7 9 to 7 10 ANSI TEEE Standard 488 1 1987 See GPIB application development See also debugging accessing NI 488 2 DLL 3 1 application examples asynchronous I O 2 6 to 2 7 basic communication 2 2 to 2 3 basic communication with IEEE 488 2 compliant devices 2 14 to 2 15 clearing and triggering devices 2 4 to 2 5 end of string mode 2 8 to 2 9 non controller example 2 20 to 2 21 parallel polls 2 18 to 2 19 serial polls using NI 488 2 routines 2 16 to 2 17 service requests 2 10 to 2 13 source code files 2 1 choosing between NI 488 functions and NI 488 2 routines 3 1 to 3 3 compiling linking and running applications Borland C 3 17 direct entry with C 3 22 direct entry with Visual Basic 3 23 Microsoft C 3 17 Visual Basic applications 3 18 global variables for checking status 3 3 to 3 5 count variables ibcnt and ibentl 3 5 error variable iberr 3 5 status word ibsta 3 3 to 3 4 NI 488 applications clearing devices 3 8 configuring devices 3 9 flowchart of programming with device level functions 3 7 general steps and examples 3 8 to 3 10 items to include 3 6 National Instruments Corp Index 1 NI 488 2 User Manual for Windows Index opening devices 3 8 placing d
185. yte varies depending on the device used ud0 ibrsp 0100 cmpl Poll 0x40 decimal 64 National Instruments Corp 5 3 NI 488 2 User Manual for Windows wibic Windows Interface Bus Interactive Control Utility Chapter 5 8 Use the read command to display the data on the screen both in hex values and their ASCII equivalents ud0 ibrd enter byte count 18 0100 cmpl count 18 4e 44 43 56 20 30 30 30 N 2e 30 30 34 37 45 2b 30 Oa Oa lt ou on Ad or ud0 ibrd 18 0100 cmpl count 18 4e 44 43 56 20 30 30 30 N 2e 30 30 34 37 45 2b 30 s Oa Oa ou on Ad 9 Place the device offline as follows ud0 ibonl enter value 0 0100 cmpl or ud0O ibonl 0 0100 cmpl 10 Terminate the wibic program by entering q at the prompt wibic Syntax When you enter commands in wibic you can either include the parameters or the program prompts you for values Some commands require numbers as input values Others might require you to input a string Number Syntax You can enter numbers as hexadecimal octal or decimal integer Hexadecimal numbers Y ou must precede hex numbers by zero and x for example OxD Octal numbers Y ou must precede octal numbers by zero only for example 015 Decimal numbers Enter the number only NI 488 2 User Manual for Windows 5 4 National Instruments Corp Chapter 5 wibic Windows Interface Bus Interactive Control Utility String Syntax You can enter
Download Pdf Manuals
Related Search
Related Contents
Manuale utente - kodakpixpro.com Maytag MSC21C6MDM Installation Guide Facility Users – PlacementPro User`s Manual Version Datenblatt deutsch Copyright © All rights reserved.
Failed to retrieve file