Home
NI-488.2 User Manual
Contents
1. Cancel i Figure 2 5 Properties Dialog Box ni com 4 Chapter 2 Measurement amp Automation Explorer Windows If you need more information about a field in the Properties dialog box click the button in the upper right corner of the dialog box then click on the field Optional Change the settings for your interface View GPIB Instrumentation Information To view information about your GPIB instruments complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Select your GPIB interface Measurement amp Automation Explorer displays the connected instruments in the right window pane If you have not already done so scan for connected instruments Right click on your GPIB interface and select Scan for Instruments from the drop down menu that appears Refer to the Scan for GPIB Instruments section earlier in this chapter for more information Double click on the instrument displayed in the right window pane Measurement amp Automation Explorer lists all the attributes for the instrument such as the primary address the secondary address if applicable the instrument s response to the identification query IDN and the GPIB interface number to which the device is connected Change GPIB Device Templa
2. Assisted Support Options Contact NI engineers and other measurement and automation professionals by visiting ni com ask Our online system helps you define your question and connects you to the experts by phone discussion forum or email e Training Visit ni com custed for self paced tutorials videos and interactive CDs You also can register for instructor led hands on courses at locations around the world e System Integration If you have time constraints limited in house technical resources or other project challenges NI Alliance Program members can help To learn more call your local NI office or visit ni com alliance If you searched ni com and could not find the answers you need contact your local office or NI corporate headquarters Phone numbers for our worldwide offices are listed at the front of this manual You also can visit the Worldwide Offices section of ni com niglobal to access the branch office Web sites which provide up to date contact information support phone numbers email addresses and current events National Instruments Corporation E 1 NI 488 2 User Manual Glossary Prefix Meaning Value n nano 10 m milli 10 3 M mega 106 acceptor handshake access board ANSI API ASCII asynchronous automatic serial polling base I O address BIOS board level function National Instruments Corporation G 1 Listeners use this GPIB interf
3. Figure 2 3 NI 488 2 Communicator 6 Type a command in the Send String field and do one of the following To write a command to the instrument then read a response back click the Query button To write a command to the instrument click the Write button e To read a response from the instrument click the Read button To view sample C C code that performs a simple query of a GPIB instrument click the Show Sample button National Instruments Corporation 2 7 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows Advanced Communication For advanced interactive communication with GPIB instruments use the Interactive Control utility as follows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Right click on your GPIB interface and select Interactive Control from the drop down menu that appears At the command prompt type NI 488 2 API calls to communicate interactively with the your instrument For example you might use ibdev ibclr ibwrt ibrd and ibonl To view the online help for Interactive Control type he 1p at the Interactive Control command prompt For more information on using this utility refer to Chapter 7 Interactive Control Utility View NI 488 2 Software Version NI 488 2 User Manual To view the NI 488 2
4. This section shows you how to use the Interactive Control utility to test a sequence of NI 488 2 calls For help on any Interactive Control command type help followed by the command For example type help ibdev orhelp devclear National Instruments Corporation 7 1 NI 488 2 User Manual Chapter 7 Interactive Control Utility To start the Interactive Control utility complete the following steps Windows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder 3 Right click on your GPIB interface and select Interactive Control from the drop down menu that appears Mac OS X Double click on Applications National Instruments NI 488 2 Interactive Control To use the Interactive Control utility to test a sequence of NI 488 2 calls complete the following steps 1 Open either an interface handle or device handle to use for further NI 488 2 calls Use ibdev to open a device handle ibfind to open an interface handle or the set 488 2 command to switch to a 488 2 prompt The following example uses ibdev to open a device assigns it to access interface gpib0 chooses a primary address of 6 with no secondary address sets a timeout of 10 seconds T10s 13 enables the END message and disables the EOS mode ibdev enter board index 0 enter primary address 6 enter se
5. Initialization Step 1 Become Controller In Charge CIC Use SendIFC to initialize the bus and the GPIB interface so that the GPIB interface is Controller In Charge CIC The only argument of SendIFC is the GPIB interface number typically 0 for GPIBO Step 2 Determine the GPIB Address of Your Device Use FindLstn to find all the devices attached to the GPIB The FindLstn function requires the following parameters e Interface number typically 0 for GPIBO e A list of primary addresses terminated with the NOADDR constant National Instruments Corporation 4 9 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application NI 488 2 User Manual e A list for reported GPIB addresses of devices found listening on the GPIB e Limit which is the number of the GPIB addresses to report Use FindLstn to test for the presence of all of the primary addresses that are passed to it If a device is present at a particular primary address then the primary address is stored in the GPIB addresses list Otherwise all secondary addresses of the given primary address are tested and the GPIB address of any devices found is stored in the GPIB addresses list When you have the list of GPIB addresses you can determine which one corresponds to your instrument and use it for subsequent calls Alternately if you already know your GPIB device s primary and secondary address you can create an appropriate GPIB address to use in subs
6. 4 7 Items to ned niae A EA EEEE 4 7 General Program Steps and Examples ssseesseesseeesseesrsererrerrseseeees 4 7 Applications That Use Multiple Interfaces or Communicate with Multiple GPIB Devices 00 eee ecececeeceseceeeeeceeeeseesseeseenseeseenaeeaeenaes 4 9 Items to Include iss sect aoa ds tsa ese EERE EOR renee 4 9 General Program Steps and Examples ccceceseeeeseeeeeeseeeeeeeees 4 9 NI 488 2 User Manual vi ni com Contents Language Specific Programming Instructions for Windows eeeeeeeeeeseeseeeeeeees 4 11 Microsoft Visual C C Version 2 0 or Later cccccccsccesescceeesseessseeeesneeees 4 11 Borland C C Version 4 0 or Later ccccccccsscccessseesseceseeeeesenseesseeessneeens 4 11 Visual Basic Version 4 0 or Later cescccsssceeeeseeeesneeeseseeeeseeeeesseeesseeens 4 12 Direct Entry with C 2c sccsccbcsisscee edits atesteues secseadel Revs tides Aa eevee 4 12 gpib 32 dil Exports ec cc gisccietseccakssteeisicessvvsatiasasestsvitassesesestivesosaes 4 12 Directly Accessing the gpib 32 dll Exports 0 eee eset rere 4 13 Language Specific Programming Instructions for Mac OS XK eee eeeeeeeeeeeeeees 4 16 Chapter 5 Debugging Your Application NE SPY isos suc si Seen ests t EE ees dean Gestosdea ia AKEE 2st E RETE A dg fates ATE EES 5 1 Global Status Variables ccccccccccccssssccccessssseccccessssecececesssaeececessssseeccesessseeecessesaeeeeeees 5 1 NI 488 2 Error CodeS v
7. Chapter 6 NI Spy Utility Debugging Existing Applications If the application does not have built in error detection handling you can use NI Spy to determine which NI 488 2 call is failing Once you know which NI 488 2 call fails refer to Appendix B Status Word Conditions and Appendix C Error Codes and Solutions for help understanding why the NI 488 2 call failed This information is also available in the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual Viewing Properties for Recorded Calls To see the detailed properties of any call recorded in the main NI Spy window double click on the call The NI Spy Property Sheet window appears It contains general input output and buffer information Exiting NI Spy When you exit NI Spy its current configuration is saved and used to configure NI Spy when you start it again Unless you save the data captured in NI Spy before you exit that information is lost To save the captured data stop the capture by clicking on the red circled X button on the toolbar Then select File Save As to save the data in a spy file After you save your data select File Exit to exit the NI Spy utility Performance Considerations NI Spy can slow down the performance of your NI 488 2 application and certain configurations of NI Spy have a larger impact on performance than others For example
8. GPIB instrumentation information 2 11 GPIB interface settings viewing or changing under Mac OS X 3 2 3 3 under Windows 2 10 GPIB web site 2 13 3 4 gpib 32 dll exports accessing directly 4 13 using to invoke functions 4 12 GPIB ENET network settings viewing or changing assigning IP address 2 14 configuring advanced IP settings 2 15 updating GPIB ENET firmware 2 15 GPIB ENET 100 network settings viewing or changing 2 13 3 4 configuring network parameters 2 13 3 4 updating GPIB ENET 100 firmware 2 14 3 5 H handshake lines A 3 help professional services E 1 technical support E 1 Help display Interactive Control utility online help function table 7 10 ni com Help option function Interactive Control utility 7 10 Help See online help high speed data transfers HS488 cable length 8 2 enabling HS488 8 2 system configuration effects 8 3 HS488 See high speed data transfers ibask function 8 3 ibclr function clearing a device 4 8 using in Interactive Control utility example 7 3 ibcnt and ibcntl count variables 4 6 ibconfig changing cable length 8 2 ibconfig function determining assertion of EOI line 8 2 enabling autopolling 8 13 enabling high speed data transfers 8 2 ibdev function opening devices 4 7 using in Interactive Control utility example 7 2 ibeos function 8 1 ibeot function 8 1 iberr function determining error type 4 6 ibnotify asynchronous event notificatio
9. eee eeeeeeeees CONVENTIONS 4 ex areenat sodas ia EEA ENEE S deed E a cakes Related Documentation sssseeeeeeseseessetseesetssesresstsseesresreseessreseesses Chapter 1 Introduction Setting Up and Configuring Your System sesseeeseeseseeeeeererrereerere Controlling More Than One Interface eee Configuration Requirements 00 0 0 eee cece eeeeseeeeeeeeeees Chapter 2 Measurement amp Automation Explorer Windows ONA VIC Wises 55 fac dees tects haa tica gate E tetaacieaseeeassssustaanisedis Starting Measurement amp Automation Explorer eee Troubleshoot NI 488 2 Problems ecceseesseeeteceseeeeeecereeseeeeaeenee Add a New GPIB Interface ee e n R A E REE Del te a GPIB Interface niea ae aiea EEEE EEEE AR Scan for GPIB Instruments ssseseeeeeeeeeesessessersreseessesserssessersrsseese Instruments Not Found sssseseeseeseesessessreseessresseseessessrssese Too Many Listeners on the GPIB eee eects eeeeees Communicate with Your Instrument 0 0 0 0 eee eeeeeeneeeseeeneeeeeeeneeeees Basic Communication Query Write Read 0 0 eee Advanced Communication cescescceeseeseeeeceneeseeeeeeeee View NI 488 2 Software Version ccscccesceseeseceneeeneeceeeeseeeseeeees Monitor Record and Display NI 488 2 Calls eee eeeeeeeeees View or Change GPIB Interface Settings eee eeeeeeeeeeeeeeee View GPIB Instrumentation Information eee eeeeeeeeneeeseeeeeeeees Change GPIB Device Tem
10. 1000 BOOL DeviceError FALSE char expectedResponse 0x43 int main int ud Assign a unique identifier to the device and store it in the variable ud ibdev opens an available device and assigns it to access GPIBO with a primary address of 1 a secondary address of 0 a timeout of 10 seconds the END message enabled and the EOS mode disabled If ud is less than zero then print an error message that the call failed and exit the program ud ibdev 0 connect board ler primary address of GPIB device 0 secondary address of GPIB device T10s 10 second I O timeout alee EOT mode turned on 0 EOS mode disabled if ud lt 0 printf ibdev failed n return 0 Issue a request to the device to send the data If the ERR bit is set in ibsta then print an error message that the call failed and exit the program ibwrt ud SEND DATA 9L NI 488 2 User Manual 8 6 ni com Chapter 8 NI 488 2 Programming Techniques if ibsta amp ERR printf unable to write to device n return 0 set up the asynchronous event notification on RQS ibnotify ud RQS MyCallback NULL if ibsta amp ERR printf ibnotify call failed n return 0 while ReadingsTaken lt 1000 amp amp DeviceError Your application does useful work here For example it might process the device readings or do any other useful work disable notification
11. 11 System Controller as CIC A 1 Controllers definition A 1 conventions used in the manual xii count information in Interactive Control utility 7 12 count variables ibcnt and ibentl 4 6 customer education E 1 professional services E 1 technical support E 1 D data lines A 3 data transfers high speed HS488 number of bytes read or sent 4 6 terminating 8 1 NI 488 2 User Manual l 2 DAV data valid line table A 3 DCAS status word condition 4 5 B 2 B 5 debugging checking NI 488 2 error codes 5 2 communication errors repeat addressing 5 3 termination method 5 3 configuration errors 5 2 GPIB error codes table C 1 NI Spy utility 5 1 6 3 timing errors 5 2 using global status variables 5 1 deleting GPIB interface in Mac OS X 3 2 in Measurement amp Automation Explorer 2 4 DevClear function 7 9 DevClearList function 4 10 7 9 device level calls and bus management 8 11 diagnostic resources E 1 direct entry with C accessing gpib 32 dll exports 4 13 exporting pointers to global variables and function calls 4 12 documentation accessing NI 488 2 documentation xi accessing NI 488 2 online help xi conventions used in manual xii online library E 1 related documentation xiii DOS support enabling or disabling 2 12 drivers instrument E 1 software E 1 DTAS status word condition 4 5 B 2 B 5 dynamic link library 4 2 ni com E EABO error code C 5 EADR error code C 4 EARG err
12. EADR 3 Possible solutions for this error are as follows 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 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 Solutions EARG 4 EADR occurs when the GPIB interface 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 Possible solutions for this error are as follows e Make sure that the GPIB interface is addressed correctly before calling ibrd ibwrt RcvRespMsg or SendDataBytes e Avoid calling ibgts except immediately after an ibcmd call ibemd causes ATN to be asserted NI 488 2 User Manual 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 ibeos called with meaningless bits set in the high byte of the second parameter e ibpad or ibsad called
13. GPIB system setup For example when using a PC compatible computer with PCI bus the maximum obtainable transfer rate is 8 Mbytes s but when using another bus such as USB or Ethernet the maximum data transfer rate depends on the maximum transfer rate of that bus 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 four HS488 devices connected by 4 m of cable National Instruments Corporation 8 3 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques 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 with a parameter of zero it immediately updates ibsta and returns If you want to use ibwait to wait for one or more events to occur 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 Asynchronous Event Notification in NI 488 2 Applications NI 488 2 applications can asynchronously receive event notifications using the ibnotify function This function is useful if you want your application to be notified asynchronously
14. Instruments Corporation D 3 NI 488 2 User Manual Appendix D Common Questions Are interrupts and DMA required for the NI 488 2 software Generally plug in interface cards such as the PCI GPIB require interrupt resources in your computer Remote interfaces such as the GPIB USB and GPIB ENET products do not require interrupt resources in your computer There may be exceptions to this statement Refer to the general readme file Readme txt located on your installation CD or in the installation directory for the latest interface options supported by the current version of NI 488 2 DMA is not required for the NI 488 2 software NI 488 2 User Manual D 4 ni com Technical Support and Professional Services Visit the following sections of the National Instruments Web site at ni com for technical support and professional services e Support Online technical support resources include the following Self Help Resources For immediate answers and solutions visit our extensive library of technical support resources available in English Japanese and Spanish at ni com support These resources are available for most products at no cost to registered users and include software drivers and updates a KnowledgeBase product manuals step by step troubleshooting wizards hardware schematics and conformity documentation example code tutorials and application notes instrument drivers discussion forums a measurement glossary and so on
15. NI 488 2 User Manual Chapter 3 GPIB Explorer Mac OS X Access Additional Help and Resources To access additional help and resources for the NI 488 2 software and your GPIB hardware refer to the following sections NI 488 2 Online Help The NI 488 2 Help addresses questions you might have about NI 488 2 and includes a function reference and troubleshooting information You can access the NI 488 2 online help as follows 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer 2 Select Help Help Topics NI 488 2 from the menu bar National Instruments GPIB Web Site 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer 2 Select Help National Instruments on the Web GPIB Home Page from the menu bar to access the National Instruments Web site for GPIB View or Change GPIB ENET 100 Network Settings To view or change the network settings of your GPIB ENET 100 refer to the following sections For more information about your GPIB ENET 100 network settings refer to the GPIB ENET 100 information in the GPIB Hardware Guide The GPIB Hardware Guide is installed with NI 488 2 To access this document double click on Applications National Instruments NI 488 2 Documentation Device Configuration To run the NI Ethernet Device Configuration utility from GPIB Explorer double click on Applications National Instruments NI
16. about the occurrence of one or more GPIB events For example you might choose to use ibnotify if your application only needs to interact with your GPIB device when it is requesting service After calling ibnot ify your application does not need to check the status of your GPIB device Then when your GPIB device requests service the NI 488 2 driver automatically notifies your application that the event has occurred by invoking a callback function The callback function is registered with the NI 488 2 driver when the ibnotify call is made Calling the ibnotify Function NI 488 2 User Manual ibnotify has the following function prototype ibnotify int ud unit descriptor int mask bit mask of GPIB events GpibNotifyCallback _t Callback callback function void RefData user defined reference data Both board level and device level ibnotify calls are supported by the NI 488 2 driver If you are using device level calls you can call ibnotify with a device handle for ud and a mask of RQS CMPL END or TIMO If you are using board level calls you can call ibnotify with a board handle for ud and a mask of any values except RQS The ibnotify mask 8 4 ni com Chapter 8 NI 488 2 Programming Techniques bits are identical to the ibwait mask bits In the example of waiting for your GPIB device to request service you might choose to pass ibnotify a mask with RQS for device level or SRQI for board level The callback funct
17. and Solutions Count Variables ibcnt and ibentl The count variables are updated after each read write or command function In addition ibent and ibcnt1 are updated after specific 488 2 style functions in certain error cases Refer to the NI 488 2 Help function reference for an explanation of how each function uses the count variables ibcnt is defined to be the type int while ibcnt1 is the size of type Long int For all cases if the sizes of ibcnt and ibcnt1 are the same ibcnt and ibent1 are equal If the size of ibcnt is smaller than the size of ibent1 ibent is equal to the low order bits of ibent1 For cross platform compatibility all applications should use ibcnt1 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 Using Interactive Control to Communicate with Devices NI 488 2 User Manual Before you begin writing your application you might want to use the Interactive Control utility to communicate with your instruments interactively by typing in commands from the keyboard rather than from an application You can use the Interactive Control utility to learn to communicate with your instruments using the NI 488 2 API For specific device communication instructions refer to the user manual that came with your instrument For information about using the Interactive Control utility and detailed examples ref
18. ibnotify ud 0 NULL NULL Call the ibonl function to disable the hardware and software ibonl ud 0 return 1 int stdcall MyCallback int LocalUd int LocalIbsta int LocallIberr long LocalIbcntl void RefData char SpollByte char ReadBuffer 40 I the ERR bit is set in LocalIbsta then print an error message and return if LocalIbsta amp ERR printf GPIB error d has occurred No more callbacks n LocallIberr DeviceError TRUE return 0 Read the serial poll byte from the device If the ERR bit is set in ibsta then print an error message and return National Instruments Corporation 8 7 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques LocaliIbsta ibrsp LocalUd amp SpollByte if Locallbsta amp ERR printf ibrsp failed No more callbacks n DeviceError TRUE return 0 If the returned status byte equals the expected response then the device has valid data to send otherwise it has a fault condition to report if SpollByte expectedResponse printf Device returned invalid response Status byte 0x x n SpollByte DeviceError TRUE return 0 Read the data from the device If the ERR bit is set in ibsta then print an error message and return LocalIbsta ibrd LocalUd ReadBuffer 40L if Locallbsta amp ERR printf ibrd failed No more callbacks n DeviceError TRUE return 0 The string r
19. in ANSI IEEE Standard 488 1 1987 and ANSI IEEE Standard 488 2 1992 The address of a device on the GPIB composed of a primary address MLA and MTA and perhaps a secondary address MSA The GPIB board has both a GPIB address and an I O address Refers to the National Instruments family of GPIB interfaces Go To Local The GPIB command used to place an addressed Listener in local front panel control mode The mechanism used to transfer bytes from the source handshake function of one device to the acceptor handshake function of another device DAV NRFD and NDAC three GPIB lines 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 TEEE Standard 488 1 1987 National Instruments Corporation G 3 NI 488 2 User Manual Glossary hex high level function HS488 ibent ibentl iberr ibsta TEEE interface message T O T O address ISA NI 488 2 User Manual Hexadecimal a number represented in base 16 For example decimal 16 is hex 10 See device level function A high speed data transfer protocol for IEEE 488 This protocol increases performance for GPIB reads and writes up to 8 Mbytes s depending on your system Hertz After each NI 488 2 I O call these global variables contain the actual number of bytes transmitt
20. multi device NI 488 2 call or the stuck SRQ ESRQ condition occurs SRQ and Serial Polling with Device Level Traditional NI 488 2 Calls You can use the device level traditional NI 488 2 call ibrsp to conduct a serial poll ibrsp conducts a single serial poll and returns the serial poll response byte to the application If automatic serial polling is enabled the application 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 shows you how to use the ibwait and ibrsp functions in a typical SRQ servicing situation when automatic serial polling is enabled include ni488 h char GetSerialPollResponse int DeviceHandle char SerialPollResponse 0 ibwait DeviceHandle TIMO RQS if ibsta amp ROS printf Device asserted SRQ n Use ibrsp to retrieve the serial poll response ibrsp DeviceHandle amp SerialPollResponse return SerialPollResponse NI 488 2 User Manual 8 14 ni com Chapter 8 NI 488 2 Programming Techniques SRQ and Serial Polling with Multi Device NI 488 2 Calls The NI 488 2 software includes a set of multi device NI 488 2 calls that you can use to conduct SRQ servicing and serial polling Calls pertinent to SRQ servicing and serial polling are Al1Spol11 ReadStatusByte FindRQS Test SRQ and Wait SRQ Following are descriptions of each of th
21. rererere tc cee odd even cots os caves tunes scene etn E ERAEN EES 3 4 National Instruments GPIB Web Site 00 ee ceeeseeseeesecseeeseeseeeseeeenees 3 4 View or Change GPIB ENET 100 Network Settings 00 eeeesereeeeeeseeeeees 3 4 Device Contisurationiccist i shinies seh sisson p dusk tinned ek 3 4 Update GPIB ENET 100 Firmware cece eceeceseseeeesesessessesseseeeeeneenees 3 5 Chapter 4 Developing Your NI 488 2 Application Interactive Instrument Control 0 0 eee eeeseeeeeeeseeeeseseeeesecseceaeeseesaecseseseceseaeseenaes 4 1 Choosing Your Programming Methodology eee eeseeceseeeeeeeceeceseseeeeseeseeeseeseees 4 2 Choosing a Method to Access the NI 488 2 Driver ee eeseeeeseereereees 4 2 Choosing How to Use the NI 488 2 API oo cesses ceeeeeeeeeeeeeseeeseeeees 4 2 Communicating with a Single GPIB Device eee 4 3 Using Multiple Interfaces and or Multiple Devices 0 0 0 4 4 Checking Status with Global Variables eeseeseeeeeeecneeeseceeeseseenseeseeeaees 4 4 Status Word Gbsta J e 3s heey ety tA veces ea E a E AS ene 4 4 Error Variable D6rr 2 00 s2 ccssec cssepceacess ceca cea kien etes sedievece cevasehes c e 4 6 Count Variables ibcnt and ibcntl cece ccesccceesneceeseeeeesseeeesteeeeseeenseeene 4 6 Using Interactive Control to Communicate with Devices eee eee ese eeeeeeeeeeeeees 4 6 Programming Models hirerteke eet tin e r evtverny Sevterves e 4 7 Applications That Communicate with a Single GPIB Device
22. with invalid addresses e ibppc called with invalid parallel poll configurations C 4 ni com Solutions ESAC 5 Appendix C Error Codes and Solutions e A multi device NI 488 2 call made with an invalid address e PPol1Config called with an invalid data line or sense bit Make sure that the parameters passed to the NI 488 2 call are valid Solutions EABO 6 ESAC results when ibsic ibsre SendIFC or EnableRemote is called when the GPIB interface does not have System Controller capability Give the GPIB interface System Controller capability by calling ibrsc 1 or by using the GPIB Configuration utility to configure that capability into the software Solutions EABO indicates that an I O operation has been canceled usually due to a timeout condition Other causes 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 Possible solutions for this error are as follows 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 Nationa
23. x0D x0A 9 National Instruments Corporation 5 3 NI 488 2 User Manual Chapter 5 Debugging Your Application Other Errors If you experience other errors in your application refer to the NI 488 2 online help It includes extensive troubleshooting information and the answers to frequently asked questions For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual NI 488 2 User Manual 5 4 ni com NI Spy Utility This chapter introduces you to NI Spy a utility that monitors and records multiple National Instruments APIs for example NI 488 2 and NI VISA 3 Note NI Spy is available on Windows platforms only Overview NI Spy monitors records and displays the NI 488 2 calls made from NI 488 2 applications You can use it to troubleshoot errors in your application and to verify the communication with your GPIB instrument NI Spy shows which NI 488 2 calls are being used to communicate with your instrument If your application is not working properly you can use NI Spy to search for failed NI 488 2 calls Starting NI Spy To start NI Spy complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder 3 Right click on your GPIB interface and select NI Spy from the drop down m
24. 1 set of functions With some of the NI 488 2 calls for example ibrd and Receive the length of the string buffer is automatically calculated within the actual function or subroutine which eliminates the need to pass in the length as an extra parameter For more information about function syntax for Visual Basic refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual Before you run your Visual Basic application include the niglobal bas and vbib 32 bas files in your application project file The following sections describe how to use direct entry with C gpib 32 dll Exports gpib 32 d11 exports pointers to the global variables and all of the NI 488 2 calls Pointers to the global variables ibsta iberr ibcnt and ibcnt1 are accessible through these exported variables int user_ibsta int user_iberr int user_ibcent long user_ibcntl Except for the functions ibbna ibfind ibrdf and ibwrtf all the NI 488 2 call names are exported from gpib 32 d11 Thus to use direct entry to access a particular function and to get a pointer to the exported function you just need to call Get ProcAddress passing the name of the function as a parameter For more information about the parameters to use when you invoke the function refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488
25. 2 Documentation section in About This Manual The functions ibbna ibfind ibrdf and ibwrtf all require an argument that is a name ibbna requires an interface name ibfind requires an interface or device name and ibrdf and ibwrtf require a file name Because Windows 2000 XP supports both normal 8 bit and Unicode 16 bit characters gpib 32 d11 exports both normal and Unicode versions of these functions Because Windows Me 98 does not 4 12 ni com Chapter 4 Developing Your NI 488 2 Application support 16 bit wide characters use only the 8 bit ASCII versions named ibbnaA ibfindA ibrdfA and ibwrt A The Unicode versions are named ibbnaW ibfindw ibrd w and ibwrt W You can use either the Unicode or ASCII versions of these functions with Windows 2000 XP but only the ASCII versions with Windows Me 98 In addition to pointers to the status variables and a handle to the loaded gpib 32 d11 you must define the direct entry prototypes for the functions you use in your application For the prototypes for each function exported by gpib 32 d11 refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual The direct entry sample programs illustrate how to use direct entry to access gpib 32 d11 For more information about direct entry refer to the online help for your development environment Directly Accessing the gpib 32 dll Exports M
26. 488 2 EthernetConfig For more information about the NI Ethernet Device Configuration utility refer to the GPIB ENET 100 information in the GPIB Hardware Guide NI 488 2 User Manual 3 4 ni com Chapter 3 GPIB Explorer Mac OS X Update GPIB ENET 100 Firmware To run the Firmware Update utility from GPIB Explorer double click on Applications National Instruments NI 488 2 FirmwareUpdate For more information about the Firmware Update utility refer to the GPIB ENET 100 information in the GPIB Hardware Guide National Instruments Corporation 3 5 NI 488 2 User Manual Developing Your NI 488 2 Application This chapter describes how to develop an NI 488 2 application using the NI 488 2 API Interactive Instrument Control Before you write your NI 488 2 application you might want to use the Interactive Control utility to communicate with your instruments interactively by typing individual commands rather than issuing them from an application You can also use the Interactive Control utility to learn to communicate with your instruments using the NI 488 2 API For specific device communication instructions refer to the documentation that came with your instrument For information about using the Interactive Control utility and detailed examples refer to Chapter 7 Interactive Control Utility To view the online help for Interactive Control type help at the Interactive Control command prompt Windows 1 Select S
27. 5 Place the Interface Offline before Exiting Your Application Use ibon1 to put the interface offline before you exit the application Language Specific Programming Instructions for Windows The following sections describe how to develop compile and link your Windows NI 488 2 applications using various programming languages Microsoft Visual C C Version 2 0 or Later Before you compile your Win32 C application make sure that the following lines are included at the beginning of your program include lt windows h gt include ni488 h To compile and link a Win32 console application named cprog in a DOS shell type the following on the command line cl cprog c gpib 32 obj Borland C C Version 4 0 or Later Before you compile your Win32 C application make sure that the following lines are included at the beginning of your program include lt windows h gt include ni488 h To compile and link a Win32 console application named cprog in a DOS shell type the following on the command line bec32 w32 cprog c borlandc_gpib 32 obj National Instruments Corporation 4 11 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application Visual Basic Version 4 0 or Later Direct Entry with C NI 488 2 User Manual With Visual Basic you can access the traditional NI 488 2 calls as subroutines using the BASIC keyword CALL followed by the traditional NI 488 2 call name or you can access them using the i
28. 8 2 Software Version NI 488 2 User Manual To view the NI 488 2 software version complete the following steps 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer Click GPIB Explorer About GPIB Explorer from the menu bar The About GPIB Explorer window displays the version number of the NI 488 2 software installed on your computer 3 2 ni com Chapter 3 GPIB Explorer Mac OS X View or Change GPIB Interface Settings To view or change your interface settings complete the following steps 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer 2 Click on your GPIB interface and click Properties The Properties dialog box appears Figure 3 2 shows the Properties dialog box for a GPIB ENET 100 6 oc GPIB Configuration Advanced Network Settings GPIB ENET 100 l l IP Address Hostname 137 128 57 39 l Interface Name Termination Methods GPIBO ivy wT Send EO at end of Write l GPIB E Terminate Read on EOS l Primary Set EO with EOS on Write v _ 8 bit EOS Compare Secondary NONE W EOSByte See l 1 O Timeout 10sec ivy F System Controller EJ Help gt f Cancel OK ne ee ee _eeeee Figure 3 2 Properties Dialog Box 3 Optional Change the settings for your interface National Instruments Corporation 3 3
29. Automatic serial polling must be enabled it is enabled by default for RQS to automatically appear in ibsta You can also wait for a device to request service regardless of the state of automatic serial polling by calling ibwait with a mask that contains RQS Do not issue an ibwait call on RQS fora device that does not respond to serial polls Use ibrsp to acquire the serial poll response byte that was received RQS is cleared when all of the stored serial poll response bytes have been reported to you through the ibrsp function CMPL dev brd CMPL indicates the condition of I O operations It is set whenever an T O operation is complete CMPL is cleared while the I O operation is in progress LOK brd LOK indicates whether the interface is in a lockout state While LOK is set the EnableLocal or ibloc call is inoperative for that interface LOK is set whenever the GPIB interface detects that the Local Lockout LLO message has been sent either by the GPIB interface or by another Controller LOK is cleared when the System Controller unasserts the Remote Enable REN GPIB line National Instruments Corporation B 3 NI 488 2 User Manual Appendix B Status Word Conditions REM brd CIC brd REM indicates whether the interface is in the remote state REM is set whenever the Remote Enable REN GPIB line is asserted and the GPIB interface detects that its listen address has been sent either by the GPIB interface or by anot
30. DN query command to the device Step 3b Use ibrd to read the response from the device Continue communicating with the GPIB device until you are finished Cleanup Step 4 Place the Device Offline before Exiting Your Application Use ibon1 to put the device handle offline before you exit the application 4 8 ni com Chapter 4 Developing Your NI 488 2 Application Applications That Use Multiple Interfaces or Communicate with Multiple GPIB Devices This section describes items you should include in your application and provides general program steps with an NI 488 2 example Items to Include Include the following items in your application e Header files In a C application include the header file ni488 h which contains prototypes for the NI 488 2 calls and constants that you can use in your application e Error checking Check for errors after each NI 488 2 call e Error handling Declare and define a function to handle NI 488 2 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 NI 488 2 error General Program Steps and Examples The following steps show you how to use the multi device NI 488 2 calls in your application The NI 488 2 software includes the 4882query source code examples to demonstrate these principles
31. ECTRONIC MONITORING OR CONTROL DEVICES TRANSIENT FAILURES OF ELECTRONIC SYSTEMS HARDWARE AND OR SOFTWARE UNANTICIPATED USES OR MISUSES OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER ADVERSE FACTORS SUCH AS THESE ARE HEREAFTER COLLECTIVELY TERMED SYSTEM FAILURES ANY APPLICATION WHERE A SYSTEM FAILURE WOULD CREATE A RISK OF HARM TO PROPERTY OR PERSONS INCLUDING THE RISK OF BODILY INJURY AND DEATH SHOULD NOT BE RELIANT SOLELY UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE TO AVOID DAMAGE INJURY OR DEATH THE USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO PROTECT AGAINST SYSTEM FAILURES INCLUDING BUT NOT LIMITED TO BACK UP OR SHUT DOWN MECHANISMS BECAUSE EACH END USER SYSTEM IS CUSTOMIZED AND DIFFERS FROM NATIONAL INSTRUMENTS TESTING PLATFORMS AND BECAUSE A USER OR APPLICATION DESIGNER MAY USE NATIONAL INSTRUMENTS PRODUCTS IN COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT EVALUATED OR CONTEMPLATED BY NATIONAL INSTRUMENTS THE USER OR APPLICATION DESIGNER IS ULTIMATELY RESPONSIBLE FOR VERIFYING AND VALIDATING THE SUITABILITY OF NATIONAL INSTRUMENTS PRODUCTS WHENEVER NATIONAL INSTRUMENTS PRODUCTS ARE INCORPORATED IN A SYSTEM OR APPLICATION INCLUDING WITHOUT LIMITATION THE APPROPRIATE DESIGN PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION Contents About This Manual Using the NI 488 2 Documentation eee ee eeeeseeeeeeeeteeeeeteees Accessing the NI 488 2 Online Help
32. EE 488 2 Devices 0 ci eieeceseeceseeeeeeeteeeeeeeseeenees 8 12 Automatic Serial PONE Sissa a ear E EARE N 8 13 Stuck SR State caii i i a a a ri 8 13 Autopolling and Interrupts eee eeeeesecneceeeeseseeeeseeseeeseeseees 8 14 SRQ and Serial Polling with Device Level Traditional NI 488 2 Calls 8 14 SRQ and Serial Polling with Multi Device NI 488 2 Calls eee 8 15 Example 1 Using FindRQS seseeeeesesseeesesessesersesseserrererserereeesrseeee 8 15 Example 2 Using ANS poll orrie ER E R ERS E 8 16 Paralleli Poling i ar oan eli a e a E AA ees abe 8 17 Implementing a Parallel Poll ee eee ceceseeeeeeseeeeeeseeseeeaeceeeeaesseeeaeeaees 8 17 Parallel Polling with Traditional NI 488 2 Calls eee 8 17 Parallel Polling with Multi Device NI 488 2 Calls oo ee 8 19 Appendix A GPIB Basics Appendix B Status Word Conditions Appendix C Error Codes and Solutions NI 488 2 User Manual viii ni com Appendix D Contents Common Questions Appendix E Technical Support and Professional Services Glossary Index Figures Figure 1 1 Figure 1 2 Figure 2 1 Figure 2 2 Figure 2 3 Figure 2 4 Figure 2 5 Figure 3 1 Figure 3 2 Figure 6 1 Figure A 1 Tables Table 4 1 Table 7 1 Table 7 2 Table 7 3 Table 7 4 Table A 1 Table A 2 Linear and Star System Configuration eee eee ceeeeeceeeeeeeeeenees 1 1 Example of Multiboard System Configuration 0 cece eeeeeeeeee 1 2 Measur
33. Explore GPIB Select Help Help Topics NI 488 2 National Instruments Corporation xi NI 488 2 User Manual About This Manual Conventions 3 bold TEEE 488 and TEEE 488 2 italic monospace monospace bold monospace italic Platform NI 488 2 User Manual The following conventions appear in this manual The symbol leads you through nested menu items and dialog box options to a final action The sequence File Page Setup Options directs you to pull down the File menu select the Page Setup item and select Options from the last dialog box This icon denotes a note which alerts you to important information Bold text denotes items that you must select or click on in the software such as menu items and dialog box options Bold text also denotes parameter names IEEE 488 and IEEE 488 2 refer to the ANSI IEEE Standard 488 1 1987 and the ANSI TEEE Standard 488 2 1992 respectively which define the GPIB Italic text denotes variables emphasis a cross reference or an introduction to a key concept This font also denotes text that is a placeholder for a word or value that you must supply Text in this font denotes text or characters that you should enter from the keyboard sections of code programming examples and syntax examples This font is also used for the proper names of disk drives paths directories programs subprograms subroutines device names functions operations variables filenames and ex
34. Instruments Not Found If Measurement amp Automation Explorer reports that it did not find any instruments make sure that your GPIB instruments are powered on and properly connected to the GPIB interface with a GPIB cable Then scan for instruments again as described in the Scan for GPIB Instruments section Too Many Listeners on the GPIB If Measurement amp Automation Explorer reports that it found too many Listeners on the GPIB refer to the following possible solutions National Instruments Corporation If you have a running GPIB Analyzer with the GPIB handshake option enabled disable the GPIB handshake option in the GPIB Analyzer If you have a GPIB extender in your system Measurement amp Automation Explorer cannot detect any instruments connected to your GPIB interface Instead you can verify communication with your instruments using the Interactive Control utility To do so select Tools NI 488 2 Interactive Control For more information about verifying instrument communication type help Getting Started with Interactive Control at the Interactive Control command prompt 2 5 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows Communicate with Your Instrument To establish basic or advanced communication with your instruments refer to the following sections For more information about instrument communication and a list of the commands that your instrument understands refer to
35. N true when it sends attention commands and false when it sends data messages IFC System Controller drives the IFC line to initialize interface clear the bus and make itself CIC REN System Controller drives the REN line to place remote enable devices in remote or local program mode SRQ Any device can drive the SRQ line to service request 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 A 4 ni com 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 the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual Each bit in ibsta can be set for device calls dev board calls brd or both dev brd Table B 1 shows the status word layout Table B 1 Status Word Layout Bit Hex Mnemonic Pos Value Type Description ERR 15 8000 dev brd NI 488 2 error TIMO 14 4000 dev brd Time limit exceeded END 13 2000 dev brd END or EOS detected SRQI 12 1000 brd SRQ interrupt received RQS 11 800 dev Device requesting service CMPL 8 100 dev brd T O comp
36. NI 488 2 NI 488 2 User Manual Wy NATIONAL March 2002 Edition p INSTRUMENTS Part Number 370428A 01 Worldwide Technical Support and Product Information ni com National Instruments Corporate Headquarters 11500 North Mopac Expressway Austin Texas 78759 3504 USA Tel 512 683 0100 Worldwide Offices Australia 03 9879 5166 Austria 0662 45 79 90 0 Belgium 02 757 00 20 Brazil 011 3262 3599 Canada Calgary 403 274 9391 Canada Montreal 514 288 5722 Canada Ottawa 613 233 5949 Canada Qu bec 514 694 8521 Canada Toronto 905 785 0085 China Shanghai 021 6555 7838 China ShenZhen 0755 3904939 Czech Republic 02 2423 5774 Denmark 45 76 26 00 Finland 09 725 725 11 France 01 48 14 24 24 Germany 089 741 31 30 Greece 30 1 42 96 427 Hong Kong 2645 3186 India 91 80 535 5406 Israel 03 6393737 Italy 02 413091 Japan 03 5472 2970 Korea 02 3451 3400 Malaysia 603 9596711 Mexico 001 800 010 0793 Netherlands 0348 433466 New Zealand 09 914 0488 Norway 32 27 73 00 Poland 0 22 3390 150 Portugal 351 210 311 210 Russia 095 238 7139 Singapore 2265886 Slovenia 386 3 425 4200 South Africa 11 805 8197 Spain 91 640 0085 Sweden 08 587 895 00 Switzerland 056 200 51 51 Taiwan 02 2528 7227 United Kingdom 01635 523545 For further support information see the Technical Support and Professional Services appendix To comment on the documentation send e mail to techpubs ni com 2002 National Instruments Corporation All right
37. PIB 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 8 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 Handshake Lines Three hardware handshake lines asynchronously control the transfer of message bytes between devices 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 A 1 summarizes the GPIB handshake lines Table A 1 GPIB Handshake Lines Line Description NRFD Listening device is ready not ready to receive a not ready for data message byte Also used by the Talker to signal high speed HS488 GPIB transfers NDAC Listening device has has not accepted a message not data accepted byte DAV Talking device indicates signals on data lines are data valid stable valid data National Instruments Corporation A 3 NI 488 2 User Manual Appendix A GPIB Basics Interface Management Lines Five hardware lines manage the flow of information across the bus Table A 2 summarizes the GPIB interface management lines NI 488 2 User Manual Table A 2 GPIB Interface Management Lines Line Description ATN Controller drives AT
38. RM 22 ELCK indicates that the requested operation could not be performed because of an existing lock by another process accessing the same interface ELCK is also returned when a process attempts to unlock an interface for which it currently has no lock Call iblck to lock the interface If iblck continues to return ELCK lengthen the LockWaitTime and wait for the other process to relinquish its interface lock Ensure that you have successfully locked the interface prior to unlocking it Solutions EHDL 23 EARM indicates that ibnotify s asynchronous event notification mechanism failed to rearm itself This generally occurs when an ibnotify Callback has attempted to rearm itself by returning an illegal value or when a fatal driver error EDVR has occurred Ensure that the value being returned by your Callback function is a valid ibnotify mask value Return a zero value from your Callback function to unregister the asynchronous event notification mechanism Then call ibnotify to re enable notification NI 488 2 User Manual EHDL results when an invalid handle is passed to a function call The following are some examples e A valid board handle is passed in as a handle parameter to a device level NI 488 function or a valid device handle is passed in as a handle parameter to a board level NI 488 function e An invalid board or device unit descriptor is passed as input to any NI 488 2 function C 10 ni com Appendi
39. Solutions Do not call ibon1 with ibwait calls still pending in the driver Prevent other applications from calling ibon1 by locking the interface with iblck NI 488 2 User Manual C 12 ni com Common Questions This appendix answers some common questions about the NI 488 2 software General GPIB Questions How many devices can I configure for use with the NI 488 2 software You can configure the NI 488 2 software to use up to 1 024 logical devices The default number of devices is 32 The maximum number of physical devices you should connect to a single GPIB interface is 14 or fewer depending on your system configuration When should I use the Interactive Control utility You can use the Interactive Control utility to test and verify instrument communication troubleshoot problems and develop your application For more information refer to Chapter 7 Interactive Control Utility How do I use an NI 488 2 language interface For information about using NI 488 2 language interfaces refer to Chapter 4 Developing Your NI 488 2 Application What do I need to know to communicate properly with my GPIB instrument Refer to the documentation that came with your instrument The command sequences that you use depend on the specific instrument The documentation for each instrument should include the GPIB commands that you need to communicate with your instrument In most cases device level traditional NI 488 2 calls are suf
40. Unplug or Eject Hardware icon on the taskbar select the device and click Stop When you stop the device the system removes the hardware information from the Device Manager NI 488 2 User Manual Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Right click on your GPIB interface and select Delete Interface from the drop down menu that appears When prompted click the Yes button to confirm the removal of your interface Measurement amp Explorer automatically updates the list of installed GPIB interfaces You also can select View Refresh to update the list 2 4 ni com Chapter 2 Measurement amp Automation Explorer Windows Scan for GPIB Instruments To scan for instruments connected to your GPIB interface or to add a new instrument to your system complete the following steps 1 Make sure that your instrument is powered on and connected to your GPIB interface Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Right click on your GPIB interface and select Scan for Instruments from the drop down menu that appears Measurement amp Automation Explorer displays the connected instruments in the right window pane
41. ace function to receive data and all devices use it to receive commands See also 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 Application Programming Interface 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 GPIB software in which serial polls are executed automatically by the driver whenever a device asserts the GPIB SRQ line Also called autopolling See I O address Basic Input Output System A rudimentary function that performs a single operation NI 488 2 User Manual Glossary CFE CFGn CIC CPU D DAV DCL device level function DIO1 through DIO8 DLL DMA driver E END or END Message EOI NI 488 2 User Manual Configuration Enable 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 HS488 transfers occur without errors Controller In Charge The device that manages the GPIB by sending interface messages to other devices Central processing unit Data Valid One of the three GPIB handshake lines See also handshake Device Clear The GPIB command used to r
42. ained 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 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 i
43. ake sure that the following lines are included at the beginning of your C application ifdef _ cplusplus extern C endif include lt windows h gt include ni488 h ifdef cplusplus endif In your Win32 application you need to load gpib 32 d11 before accessing the gpib 32 d11 exports The following code fragment shows you how to call the LoadLibrary function to load gpib 32 d11 and check for an error HINSTANCE Gpib32Lib NULL Gpib32Lib LoadLibrary GPIB 32 DLL if Gpib32Lib NULL return FALSE National Instruments Corporation 4 13 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application NI 488 2 User Manual For the prototypes for each function refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual For functions that return an integer value like ibdev or ibwrt the pointer to the function needs to be cast as follows int _stdcall Pname where Pname is the name of the pointer to the function For functions that do not return a value like FindLstn or SendList the pointer to the function needs to be cast as follows void _stdcall Pname where Pname is the name of the pointer to the function They are followed by the function s list of parameters as described in the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 D
44. beot v Enable disable END message ibfind devname Return unit descriptor where devname is the symbolic name of the device template to use for example dvm ibloc Go to local ibnotify mask Start an asynchronous wait for selected events where mask is a hex or decimal integer or a list of mask bit mnemonics for example ibnotify TIMO CMPL ibonl v Place device online or offline ibpad v Change primary address ibpet Pass control ibppc v Parallel poll configure ibrd count Read data where count is the bytes to read ibrda count Read data asynchronously where count is the bytes to read ibrdf flname Read data to file where flname is pathname of file to read ibrpp Conduct a parallel poll ibrsp Return serial poll byte ibsad v Change secondary address ibstop Abort asynchronous operation ibtmo v Change disable time limit ibtrg Trigger selected device NI 488 2 User Manual 7 6 ni com Chapter 7 Interactive Control Utility Table 7 1 Syntax for Device Level Traditional NI 488 2 Calls in Interactive Control Continued Syntax Description ibwait mask of mask bit mnemonics such as ibwait TIMO CMPL Wait for selected event where mask is a hex or decimal integer or a list ibwrt wrtbuf Write data ibwrta wrtbuf Write data asynchronously ibwrtf flname Write data from a file where flname is pathname of file to wri
45. clude 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 8 12 ni com Chapter 8 NI 488 2 Programming Techniques Automatic Serial Polling If you want your application to conduct a serial poll automatically when the SRQ line is asserted you can enable automatic serial polling The autopolling procedure occurs as follows 1 To enable autopolling use the board level configuration function ibconfig with option IbcAUTOPOLL or the GPIB Configuration utility 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 requested service The RQS bit of the 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 the response received To prevent queue overflow empty the queue as soon as an automatic serial poll occurs 6 If the RQS bit of the status word is sti
46. condary address 0 enter timeout 13 enter EOI on last byte flag 1 enter end of string mode byte 0 udo 3 Note Ifyou type a command and no parameters Interactive Control prompts you for the necessary arguments If you already know the required arguments you can type them at the command prompt as follows ibdev 0 6 0 13 1 0 ud0 NI 488 2 User Manual 7 2 ni com Chapter 7 Interactive Control Utility Note If you do not know the primary and secondary address of your GPIB instrument use Interactive Control to discover it First select 488 2 style by entering set 488 2 where represents the board number 0 99 to which you have connected your device Then use the FindLstn command to discover the address of your device For help using FindLstn enter help findlstn at the command prompt 2 National Instruments Corporation After you successfully complete ibdev you have a ud prompt The new prompt udo represents a device level handle that you can use for further NI 488 2 calls To clear the device use ibclr as follows ud0 ibclr 0100 cmp1 To write data to the device use ibwrt Make sure that you refer to the documentation that came with your GPIB instrument for recognized command messages ud0 ibwrt enter string 0100 cmpl count 5 Wk IDN Or equivalently ud0 ibwrt IDN 0100 cmp1 count 5 To read data from your device use ibrd The data that is read from the in
47. conf dc max 11 0xB 0x0100 0x0008 17 05 44 473 6 ibwrt UDO meas dc 8 0x8 0x0100 a ox0008 17 05 54 418 7 ibrd UDO 5 7319 10 Ox4 0x2100 0 0x0007 17 05 58 664 For Help press F1 Captured 7 Displayed 7 Ui Figure 2 4 NI 488 2 Calls Recorded by NI Spy For more information about using NI Spy select Help Help Topics in NI Spy or refer to Chapter 6 NI Spy Utility National Instruments Corporation 2 9 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows View or Change GPIB Interface Settings NI 488 2 User Manual To view or change your interface settings complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Right click on your GPIB interface and select Properties from the drop down menu that appears The Properties dialog box appears Figure 2 5 shows the Properties dialog box for a PCI GPIB interface DI GPIB Configuration 2 x NI 488 2 Settings Advanced yN PCI GPIB m Serial Number OO4B5F09 Interface Name m Termination Methods GPIBO z I Send EDI at end of Write r GPIB Address gt Terminate Read on EOS Primary I Set EDI with EOS on Write 0 Y I 8 bit EOS Compare Secondary NONE v 0 EOS Byte 170 Timeout 10sec z MV System Controller
48. configuring NI Spy to record calls to an output file or to use full buffers might have a significant impact on the performance of both your application and your system For this reason use NI Spy only while you are debugging your application or in situations where performance is not critical National Instruments Corporation 6 3 NI 488 2 User Manual Interactive Control Utility This chapter introduces you to the Interactive Control utility which lets you communicate with GPIB devices interactively Overview With the Interactive Control utility you communicate with the GPIB devices through functions you interactively type in at the keyboard For specific information about communicating with your particular device refer to the documentation that came with the device You can use the Interactive Control utility to practice communication with the instrument troubleshoot problems and develop your application The Interactive Control utility helps you to learn about your instrument and to troubleshoot problems by displaying the following information on your screen after you enter a command e Results of the status word ibsta in hexadecimal notation e Mnemonic constant of each bit set in ibsta e Mnemonic value of the error variable iberr if an error exists the ERR bit is set in ibsta e Count value for each read write or command function e Data received from your instrument Getting Started with Interactive Control
49. ct 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 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 ibppc dev 0x70 8 18 ni com Chapter 8 NI 488 2 Programming Techniques Parallel Polling with Multi Device NI 488 2 Calls Complete the following steps to implement parallel polling using multi device NI 488 2 calls Each step contains example code 1 Configure the device for parallel polling using the PPol1Config call 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 ni488 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 PPo11 store the response and check the response for a certain value In the following example because DIOS is asserted b
50. ctions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual National Instruments Corporation 4 3 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application Using Multiple Interfaces and or Multiple Devices When your system includes an interface that must access multiple devices use the multi device NI 488 2 calls which can perform the following tasks with a single call e Find the Listeners on the bus using FindLstn e Find a device requesting service using FindRQS e Determine the state of the SRQ line or wait for SRQ to be asserted using Test SRQ or WaitSRQ e Address multiple devices to receive a command using SendList You can mix board level traditional NI 488 2 calls with the multi device NI 488 2 calls to have access to all the NI 488 2 functionality Checking Status with Global Variables Each NI 488 2 API call updates four global variables to reflect the status of the device or interface that you are using These global status variables are the status word ibsta the error variable iberr and the count variables ibcnt and ibcnt1 They contain useful information about the performance of your application Your application should check these variables after each NI 488 2 call The following sections describe each of these global variables and how you can use them in your application ays Note If your application is a multithreaded application refer
51. d to configure an addressed Listener to participate in polls Parallel Poll Disable The GPIB command used to disable a configured device from participating in polls There are 16 PPD commands Parallel Poll Enable 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 The GPIB command used to disable any device from participating in polls Low speed data transfer between the GPIB interface and memory in which the CPU moves each data byte according to program instructions See also DMA When the driver indicates to the application that asynchronous I O operations have completed Request Service G 6 ni com SDC semaphore serial poll service request source handshake SPD SPE SRQ status byte status word synchronous System Controller National Instruments Corporation G 7 Glossary Seconds Selected Device Clear The GPIB command used to reset internal or device functions of an addressed Listener See also DCL An object that maintains a count between zero and some maximum value limiting the number of threads that are simultaneously accessing a shared resource The process of polling and reading the status byte of one device at a time See also parallel poll See SRQ The GPIB interface function that transmits data and commands Talkers use this function to send data and the Co
52. de A rudimentary board or device function that performs a single operation 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 My Listen Address 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 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 My Talk Address A GPIB command used to address 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 Corporation G 5 NI 488 2 User Manual Glossary NDAC NRFD P parallel poll PC PCI PIO PPC PPD PPE PPU programmed I O R resynchronize RQS NI 488 2 User Manual Not Data Accepted One of the three GPIB handshake lines See also handshake Not Ready For Data One of the three GPIB handshake lines See also handshake The process of polling all configured devices at once and reading a composite poll response See also serial poll Personal computer Peripheral Component Interconnect See programmed I O Parallel Poll Configure The GPIB command use
53. e calls e 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 bit 6 or hex 40 of each status byte to determine whether that device requested service e ReadStatusByte is similar to Al1Spol1 except that it only serial polls a single device It is similar to the device level NI 488 2 ibrsp function e FindRQS serial polls a list of devices until it finds a device that is requesting service or until it has polled all of the devices on the list The call returns the index and status byte value of the device requesting service e TestSRQ determines whether the SRQ line is asserted and returns to the program immediately e WaitSRQ is similar to Test SRQ except that WaitSRQ suspends the application until either SRQ is asserted or the timeout period is exceeded The following examples use these calls 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 Al1Spo11 to serial poll all three devices Both examples use Wait SRQ to wait for the GPIB SRQ line to be asserted Example 1 Using FindROS This example shows you how to use FindRQS to find the first device that i
54. easurement amp Automation Explorer Windows Configure Advanced IP Settings You can run the Advanced IP Settings utility in Measurement amp Automation Explorer as follows 1 Contact your network administrator for the proper subnet information including the broadcast IP address and netmask and up to four router IP addresses 2 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 3 Expand the Devices and Interfaces directory by clicking the next to the folder 4 Right click on your GPIB ENET interface and select Advanced IP Settings from the drop down menu that appears To view the built in context sensitive help for the Advanced IP Settings utility click the Help button Update GPIB ENET Firmware You can run the Update Firmware utility in Measurement amp Automation Explorer as follows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder 3 Right click on your GPIB ENET interface and select Update Firmware from the drop down menu that appears To view the built in context sensitive help for the Update Firmware utility click the Help button National Instruments Corporation 2 15 NI 488 2 User Manual GPIB Explorer Mac OS X This chapter describes GPIB Explorer an interactive uti
55. ed On systems with a 16 bit integer such as MS DOS ibcnt is a 16 bit integer and ibcnt1 is a 32 bit integer For cross platform compatibility use ibent1 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 Input output In this manual it is the transmission of commands or messages between the system 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 Industry Standard Architecture An Individual Status bit of the status byte used in the Parallel Poll Configure function G 4 ni com L LAD language interface Listener LLO low level function MAV MLA MSA MTA multitasking Glossary Listen Address See MLA Code that enables an application program that uses NI 488 2 calls to access the driver A GPIB device that receives data messages from a Talker Local Lockout The GPIB command used to tell all devices that they may or should ignore remote GPIB data messages or local front panel controls depending on whether the device is in local or remote program mo
56. eded END 13 2000 dev brd END or EOS detected SRQI 12 1000 brd SRQ interrupt received RQS 11 800 dev Device requesting service CMPL 8 100 dev brd T O completed LOK T 80 brd Lockout State REM 6 40 brd Remote State CIC 5 20 brd Controller In Charge ATN 4 10 brd Attention is asserted TACS 3 8 brd Talker LACS 2 4 brd Listener DTAS 1 2 brd Device Trigger State DCAS 0 1 brd Device Clear State The language header file defines each of the ibsta status bits You can test for an ibsta status bit being set using the bitwise and operator amp in C C For example the ibsta ERR bit is bit 15 of ibsta To check for an NI 488 2 error use the following statement after each NI 488 2 call if ibsta amp ERR printf NI 488 2 error encountered National Instruments Corporation 4 5 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application Error Variable iberr If the ERR bit is set in ibsta an NI 488 2 error has occurred When an error occurs the error type is specified by iberr To check for an NI 488 2 error use the following statement after each NI 488 2 call if ibsta amp ERR printf NI 488 2 error d encountered iberr Sy Note The value in iberr is meaningful as an error type only when the ERR bit is set in ibsta indicating that an error has occurred For more information about error codes and solutions refer to Chapter 5 Debugging Your Application or Appendix C Error Codes
57. ement amp Automation Explorer oi eee eeeeeeeeeeeereeeeeees 2 2 NI 488 2 Troubleshooting Wizard cece eeceesseeeeeeseeeeeeeeeeseeseees 2 3 NI 488 2 Communicator 0 00 eee eceeseeseeseesseeseceeceseceeeseseeeeaeseeeeseeeeees 2 7 NI 488 2 Calls Recorded by NI Spy ce eeceececcesseeceeeseeeeseeseeeseeeees 2 9 Properties Dialog BOX 0 0 eee ecesceeseeseceeeeeeseeseceeeeseenseseseaeseesaeentens 2 10 GPIB Fpl ore r aa E E RAAE eee de ee Atala aaa 3 1 Properties Dialog BOX acisna gerd ire E E 3 3 NI 488 2 Calls Recorded by NI Spy ssesessessessseesssesrsressersresrsresreerseeee 6 2 GPIB Address BS nA rete a a a EA eee A 2 Status Word Layout icici tend a E ER 4 5 Syntax for Device Level Traditional NI 488 2 Calls in Interactive Control iosian iann a a 7 6 Syntax for Board Level Traditional NI 488 2 Calls in Interactive Control ssns nisin aeeeadesnvsdaneges i i 7 7 Syntax for Multi Device NI 488 2 Calls in Interactive Control asneira iaa ii 7 9 Auxiliary Functions in Interactive Control eee eeeeseeeeereeeeee 7 10 GPIB Handshake Lanes isisisi iniinis iiaeaa aieia A 3 GPIB Interface Management Lines ssseessssesesesreersrrsesesrrsrereserseseesrs A 4 National Instruments Corporation ix NI 488 2 User Manual Contents Table B 1 Status Word Layout isi ineno ieii ia ia a an B 1 Table C 1 GPIB Error C des nnion n a a ii C 1 NI 488 2 User Manual X ni com About This Manual This manual describes the fea
58. enu that appears 4 On the NI Spy toolbar click the blue arrow button to start a capture Start the NI 488 2 application that you want to monitor National Instruments Corporation 6 1 NI 488 2 User Manual Chapter 6 NI Spy Utility NI Spy records and displays all NI 488 2 calls as shown in Figure 6 1 Bi cx File Edit View Spy Help ajule al gt 10 21x m7 Description Status ibentl Time ibdev 0 3 0 0x0 T10s 13 1 0x00 0x0100 0 0x0000 17 05 13 469 ibclr UDO 0x0100 0 0x0004 17 05 15 211 ibwrt UDO idn 5 0x5 0x0100 0 0x0005 17 05 21 170 ibrd UDO National Inst Ox2100 0 0x003E 17 05 27 559 Q ibwrt UDO conf dc max 11 0xB 0x0100 0x0006 me 2 OU Nele ibwrt UDO meas dc 8 0x8 0x0100 ox0008 17 05 54 418 ibrd UDO 5 7319 10 0xA Ox2100 0 0x0007 17 05 58 664 For Help press F1 Captured 7 Displayed 7 h Figure 6 1 NI 488 2 Calls Recorded by NI Spy Using the NI Spy Online Help To view the built in context sensitive online help for the NI Spy utility select Help Help Topics in NI Spy You can also view the online help by clicking on the question mark button on the NI Spy toolbar and then clicking on the area of the screen about which you have a question Locating Errors with NI Spy All NI 488 2 calls returned with an error are displayed in red within the main NI Spy window NI 488 2 User Manual 6 2 ni com
59. equent NI 488 2 calls as follows a GPIB address is a 16 bit value that contains the primary address in the low byte and the secondary address in the high byte If you are not using secondary addressing the secondary address is 0 For example if the primary address is 1 then the 16 bit value is 0x01 otherwise if the primary address is 1 and the secondary address is 0x67 then the 16 bit value is 0x6701 Step 3 Initialize the Devices Use DevClearList to clear the devices on the GPIB The first argument is the GPIB interface number The second argument is the list of GPIB addresses that were found to be listening as determined in Step 2 Device Communication Step 4 Communicate with the Devices Communicate with the devices by sending them the IDN query and then reading back the responses Many devices respond to this query by returning a description of the device Refer to the documentation that came with your GPIB devices to see specific instruction on the proper way to communicate with them Step 4a Use SendList to send the IDN query command to multiple GPIB devices The address is the list of GPIB devices to be queried The buffer that you pass to SendList is the command message to the device 4 10 ni com Chapter 4 Developing Your NI 488 2 Application Step 4b Use Receive for each device to read the responses from each device Continue communicating with the GPIB devices until you are finished Cleanup Step
60. er 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 is not the GPIB Controller A Talker Listener application typically uses ibwait with a mask of 0 to monitor the status of the interface 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 Trigger Active State bits to determine if the Controller has sent the device clear DCL or SDC or trigger GET messages to the interface If the application detects a device clear from the Controller it might reset the internal state of National Instruments Corporation 8 11 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques Serial Polling 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 acting as a voltmeter For designing more complex GPIB devices you can use our NI Device product Please refer to our web site for more information You can use serial polling to obtain specific information from GPIB devices when they
61. er to Chapter 7 Interactive Control Utility 4 6 ni com Chapter 4 Developing Your NI 488 2 Application Programming Models Applications That Communicate with a Single GPIB Device This section describes items you should include in your application and provides general program steps with an NI 488 2 example Items to Include Include the following items in your application e Header files In a C application include the header file ni488 h which contains prototypes for the NI 488 2 calls and constants that you can use in your application e Error checking Check for errors after each NI 488 2 call e Error handling Declare and define a function to handle NI 488 2 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 NI 488 2 error General Program Steps and Examples The following steps show you how to use the device level traditional NI 488 2 calls in your application The NI 488 2 software includes the devquery source code example to demonstrate these principles Initialization Step 1 Open a Device Use ibdev to open a device handle The ibdev function requires the following parameters e Connect board index typically 0 for GPIBO e Primary address for the GPIB instrument refer to the instrument user manual or
62. eset the device or internal functions of all devices See also SDC 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 Direct memory access High speed data transfer between the GPIB board and memory that is not handled directly by the CPU Not available on some systems See also programmed I O Device driver software installed within the operating system 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 signals either the last byte of a data message END or the parallel poll Identify IDY message G 2 ni com EOS or EOS Byte EOT ESB FIFO GET GPIB GPIB address GPIB board GTL H handshake Glossary 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 Part of the IEEE 488 2 defined status byte which is received from a device responding to a serial poll First in first out Group Execute Trigger The GPIB command used to trigger a device or internal function of an addressed Listener General Purpose Interface Bus is the common name for the communications interface system defined
63. eturned by ibrd is a binary string whose length is specified by the byte count in ibcntl However many GPIB instruments return ASCII data strings and this example makes this assumption Because of this it is possible to add a NULL character to the end of the data received and use the printf function to display the ASCII data The following code illustrates that ReadBuffer ibcntl 0 Convert the data into a numeric value sscanf ReadBuffer f amp Readings ReadingsTaken Display the data printf Reading f n Readings ReadingsTaken NI 488 2 User Manual 8 8 ni com Chapter 8 NI 488 2 Programming Techniques ReadingsTaken 1 if ReadingsTaken gt 1000 return 0 else Issue a request to the device to send the data and rearm callback on RQS LocaliIbsta ibwrt LocalUd SEND DATA 9L if Locallbsta amp ERR printf ibwrt failed No more callbacks n DeviceError TRUE return 0 else return RQS Writing Multithreaded NI 488 2 Applications If you are writing a multithreaded NI 488 2 application and you plan to make all of your NI 488 2 calls from a single thread you can safely continue to use the traditional NI 488 2 global variables ibsta iberr ibent ibent1 The NI 488 2 global variables are defined on a per process basis so each process accesses its own copy of the NI 488 2 globals If you are writing a mult
64. ficient for communicating with instruments For more information refer to Chapter 4 Developing Your NI 488 2 Application National Instruments Corporation D 1 NI 488 2 User Manual Appendix D NI 488 2 User Manual Common Questions How do I check for errors in my NI 488 2 application Examine the value of ibsta after each NI 488 2 call If a call fails the ERR bit of ibsta is set and an error code is stored in iberr For more information about global status variables refer to Chapter 5 Debugging Your Application How do I troubleshoot problems Run the NI 488 2 Troubleshooting Wizard Windows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB 2 Select Help Troubleshooting NI 488 2 Troubleshooting Wizard Mac OS X Run Applications National Instruments NI 488 2 Troubleshoot The Troubleshooting Wizard tests your GPIB interface and displays the results What information should I have before I call National Instruments Before you call National Instruments record the results of the NI 488 2 Troubleshooting Wizard How can I determine if my GPIB hardware and the NI 488 2 software are installed properly Run the NI 488 2 Troubleshooting Wizard as described previously on this page The Troubleshooting Wizard tests your GPIB interface and displays the results How many GPIB interfaces can I configure for use with the NI 488 2 software You can configure the NI 488 2 software to co
65. her Controller REM is cleared in the following situations e When REN becomes unasserted e When the GPIB interface as a Listener detects that the Go to Local GTL command has been sent either by the GPIB interface or by another Controller e When the ibloc function is called while the LOK bit is cleared in the status word ATN brd CIC indicates whether the GPIB interface is the Controller In Charge CIC is set when the SendIFC or ibsic call is executed either while the GPIB interface is System Controller or when another Controller passes control to the GPIB interface CIC is cleared either when the GPIB interface detects Interface Clear IFC from the System Controller or when the GPIB interface passes control to another device TACS 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 NI 488 2 User Manual TACS indicates whether the GPIB interface is addressed as a Talker TACS is set whenever the GPIB interface detects that its talk address and secondary address if enabled has been sent either by the GPIB interface itself or by another Controller TACS is cleared whenever the GPIB interface detects the Untalk UNT command its own listen address a talk address other than its own talk address or Interface Clear IFC B 4 ni com Appendix B Status Word Conditions LACS brd LACS indicates
66. i csses r fase duddadussvts cca catuscuddvsvagvadeds a e iae der aedade 5 2 Configuration Errors n n u tess et ee ei A 5 2 TAN BATT OLS a tase etek cise r a E EEE A EAE ENT EE E EEA 5 2 Communication Errors eenn ea a Eaa aE E eaaa EES oa 5 3 Repeat Addressing ss sete r eena air E a E EEA AER ETR AE RE 5 3 Termination Method russeren r A E a A SR Y 5 3 Other EiTOrS e en aesae eC er eee 5 4 Chapter 6 NI Spy Utility COVERVICW ies e e a R E A E a aea 6 1 Starine NI SPY aire e aE E EREE E E E A ARE 6 1 Using the NIL Spy Online Helps i csicces acini a e a a E i 6 2 Locating Errors with NES PYaessererore eisini E E EEE ates 6 2 Debugging Existing Applications ssssseesesesesreetsresrsrestertssestssesteentesterestesrsresrserntees 6 3 Viewing Properties for Recorded Calls c ee eiceesseeeseeseceseeseesseeseceeeeaeeneeeaeseeeeseesees 6 3 Exiting NIS Pyer ioc cea sates he deine ieee shes eve taste E Steet arte alad i etaeesoes 6 3 Performance Considerations is s2cdecis eeno sens ted ecunt Gette aes 6 3 Chapter 7 Interactive Control Utility OVERVIEW ssstesh dete ota AS a stteen eels east cee eivtiade S nad hee tte ieee 7 1 Getting Started with Interactive Control eee ceceecseceseeseceseeseeseeeasceeceneeneeaes 7 1 Interactive Control Syntax soinaren aha een eee Le een ah 7 4 N mbe r Syntax eeni scent cee cit race R EK ERER 7 4 SUING SYNAK 2 42 i n a libata adi aint dees 7 5 VEE ONRAAD LE D PETEA E PO EE EE pee 7 5 Na
67. ibsta NULL Piberr NULL Pibentl NULL Pibdev NULL Pibonl NULL Free the GPIB library FreeLibrary Gpib32Lib printf GetProcAddress failed Your Win32 application needs to dereference the pointer to access either the status variables or function The following code shows you how to call a function and access the status variable from within your application dvm Pibdev 0 1 0 T10s 1 0 if Pibsta amp ERR printf Call failed Before exiting your application you need to free gpib 32 d11 with the following command FreeLibrary Gpib32Lib For more examples of directly accessing gpib 32 d11 refer to the direct entry sample programs dlldevquery c and d114882query c installed with the NI 488 2 software For more information about direct entry refer to the online help for your development environment National Instruments Corporation 4 15 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application Language Specific Programming Instructions for Mac OS X NI 488 2 User Manual The following information describes how to develop compile and link your Mac OS X NI 488 2 applications Before you compile your application remember to include the following line at the beginning of your program include lt NI488 ni488 h gt To compile and link your application using the CodeWarrior or Project Builder environments include NI488 fra
68. ion Description set udname Select active device or interface where udname is the symbolic name of the new device or interface for example dev1 or gpib0 Call ibfind or ibdev initially to open each device or interface set 488 2 v Start using multi device NI 488 2 calls for interface v help Display the Interactive Control utility online help help option Display help information about option where option is any NI 488 2 or auxiliary call for example help ibwrt or help set Repeat previous function Turn OFF display Turn ON display n function Execute function n times where function represents the correct Interactive Control function syntax n Execute previous function n times filename Execute indirect file where filename is the pathname of a file that contains Interactive Control functions to be executed buffer option Set type of display used for buffers Valid options are full brief ascii and off Default is full Exit or quit NI 488 2 User Manual 7 10 ni com Chapter 7 Interactive Control Utility Status Word In the Interactive Control utility all NI 488 2 calls except ibfind and ibdev 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 showing that the write operation completed successf
69. ion name and press lt Enter gt The Interactive Control utility then prompts you for each required parameter Number Syntax You can enter numbers in either hexadecimal or decimal format Hexadecimal numbers You must prefix hexadecimal numbers with 0x For example ibpad 0x16 sets the primary address to 16 hexadecimal 22 decimal Decimal numbers Enter the number only For example ibpad 22 sets the primary address to 22 decimal NI 488 2 User Manual 7 4 ni com String Syntax Address Syntax Chapter 7 Interactive Control Utility You can enter strings as an ASCII character sequence hex bytes or special symbols ASCII character sequence You must enclose the entire sequence in quotation marks Hex byte 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 as in IDN r n Some of the NI 488 2 calls have an address or address list parameter An address is a 16 bit representation of the GPIB device address The primary address is stored in the low byte and the seconda
70. ion that you register with the ibnotify call is invoked by the NI 488 2 driver when one or more of the mask bits passed to ibnotify is TRUE The callback function is of type GPIBNotifyCallback_t and is defined in the gpib header file ni488 h The callback function is passed a unit descriptor the current values of the NI 488 2 global variables and the user defined reference data that was passed to the original ibnotify call The NI 488 2 driver interprets the return value for the callback as a mask value that is used to automatically rearm the callback if it is non zero For a complete description of ibnotify refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual Sy Note The ibnotify callback is executed in a separate thread of execution from the rest of your application If your application will be performing other NI 488 2 operations while it is using ibnotify use the per thread NI 488 2 globals that are provided by the ThreadIbsta ThreadIberr ThreadIbcnt and ThreadIbcnt1 functions described in the Writing Multithreaded NI 488 2 Applications section of this chapter In addition if your application needs to share global variables with the callback use a synchronization primitive for example a semaphore to protect access to any globals For more information about the use of synchronization primitives refer to the documentation about u
71. ithreaded NI 488 2 application and you plan to make NI 488 2 calls from more than a single thread you cannot safely continue to use the traditional NI 488 2 global variables without some form of synchronization for example semaphores mutexes critical sections To understand why refer to the following example Assume that a process has two separate threads that make NI 488 2 calls thread 1 and thread 2 Just as thread 1 is about to examine one of the NI 488 2 globals it gets preempted and thread 2 is allowed to run Thread 2 proceeds to make several NI 488 2 calls that automatically update the NI 488 2 globals Later when thread 1 is allowed to run the NI 488 2 global that it is ready to examine is no longer in a known state and its value is no longer reliable National Instruments Corporation 8 9 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques NI 488 2 User Manual The previous example illustrates a well known multithreading problem It is unsafe to access process global variables from multiple threads of execution You can avoid this problem in two ways e Use synchronization to protect access to process global variables e Do not use process global variables If you choose to implement the synchronization solution you must ensure that the code making NI 488 2 calls and examining the NI 488 2 globals modified by a NI 488 2 call is protected by a synchronization primitive For example each thread might acqui
72. ity 7 10 execute previous function n times n function Interactive Control utility 7 10 exit or quit q function Interactive Control utility 7 10 NI 488 2 User Manual Index F FindLstn function 4 9 FindRQS function finding first device requesting service 8 15 frequently asked questions D 1 E 1 G global variables count variables ibcnt and ibcntl 4 6 debugging applications 5 1 error variable iberr 4 6 status word ibsta 4 4 writing multithreaded NI 488 2 applications 8 9 GPIB configuration controlling more than one interface 1 2 linear and star system configuration figure 1 1 requirements 1 2 interface management lines A 4 overview A 1 sending messages across A 3 Talkers Listeners and Controllers A 1 GPIB addresses address bit configuration figure A 2 primary and secondary A 2 syntax in Interactive Control utility 7 5 GPIB Configuration utility changing GPIB device templates 2 12 starting 2 12 GPIB device templates modifying 2 11 GPIB Explorer accessing additional help and resources 3 4 GPIB web site 3 4 online help 3 4 NI 488 2 User Manual l 4 adding new GPIB interface 3 2 deleting a GPIB interface 3 2 GPIB interface settings 3 2 3 3 GPIB ENET 100 network settings updating GPIB ENET 100 firmware 3 5 using NI Ethernet Device Configuration utility 3 4 starting 3 1 startup screen figure 3 1 viewing NI 488 2 software version 3 2 GPIB Hardware Guide xi
73. l Instruments Corporation C 5 NI 488 2 User Manual Appendix C Error Codes and Solutions ENEB 7 Solutions EDMA 8 ENEB occurs when a GPIB interface is configured for use by the system but the driver cannot find the interface This problem happens when the interface is not physically plugged into the system the I O address specified during configuration does not match the actual interface setting or there is a system conflict with the base I O address Make sure there is a GPIB interface in your computer that is properly configured both in hardware and software using a valid base I O address by running the NI 488 2 Troubleshooting Wizard as follows Windows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB 2 Select Help Troubleshooting NI 488 2 Troubleshooting Wizard Mac OS X Run Applications National Instruments NI 488 2 Troubleshoot The Troubleshooting Wizard tests your GPIB interface and displays the results Solutions NI 488 2 User Manual EDMA occurs if a system DMA error is encountered when the NI 488 2 software attempts to transfer data over the GPIB using DMA Possible solutions for this error are as follows e You can correct the EDMA problem in the hardware by using the GPIB Configuration utility to reconfigure the hardware to not use a DMA resource e You can correct the EDMA problem in the software by using ibdma to disable DMA C 6 ni com Appendix C Erro
74. l v Place device online or offline ibpad v Change primary address ibppc v Parallel poll configure ibrd count Read data where count is the bytes to read ibrda count Read data asynchronously where count is the bytes to read ibrdf flname Read data to file where 1name is pathname of file to read ibrpp Conduct a parallel poll ibrsc v Request release system control ibrsv v Request service ibsad v Change secondary address ibsic Send interface clear ibsre v Set clear remote enable line ibstop Abort asynchronous operation ibtmo v Change disable time limit ibwait mask Wait for selected event where mask is a hex or decimal integer or a list of mask bit mnemonics such as ibwait TIMO CMPL ibwrt wrtbuf Write data ibwrta wrtbuf Write data asynchronously ibwrtf flname Write data from a file where flname is pathname of file to write NI 488 2 User Manual 7 8 ni com Chapter 7 Interactive Control Utility Table 7 3 Syntax for Multi Device NI 488 2 Calls in Interactive Control Syntax Description AllSpoll addrlist Serial poll multiple devices DevClear address Clear a device DevClearList addrlist Clear multiple devices EnableLocal addrlist Enable local control EnableRemote addrlist Enable remote control FindLstn padlist limit Find all Listeners FindRQS addrlist PassControl address Find device a
75. ler uses this address to form a talk or listen address that is sent over the GPIB when communicating with a device Most devices just use primary addressing The GPIB Controller manages the communication across the GPIB by using the addresses to designate which devices should be listening or talking at any given moment Typically your computer is the GPIB Controller and it manages communication with your GPIB device by sending messages to it and receiving messages from it 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 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 A 1 shows the configuration of the GPIB address bits Bit Position T 6 5 4 3 2 1 0 Meaning 0 TA LA GPIB Primary Address range 0 30 Figure A 1 GPIB Address Bits With some devices you can use secondary addressing A secondary address is a number in the range hex 60 to hex 7E When you use secondary addressing the Controller sends the primary talk or listen address of the device followed by the secondary address of the device A 2 ni com Appendix A GPIB Basics Sending Messages across the G
76. leted LOK 7 80 brd Lockout State REM 6 40 brd Remote State CIC 5 20 brd Controller In Charge ATN 4 10 brd Attention is asserted TACS 3 8 brd Talker LACS 2 4 brd Listener National Instruments Corporation B 1 NI 488 2 User Manual Appendix B Status Word Conditions ERR dev brd Table B 1 Status Word Layout Continued Bit Hex Mnemonic Pos Value Type Description DTAS 1 2 brd Device Trigger State DCAS 0 1 brd Device Clear State 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 C 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 END dev brd TIMO indicates that the timeout period has expired TIMO is set in the status word following any synchronous I O functions for example ibcmd ibrd ibwrt Receive Send and Sendcmds if the timeout period expires before the I O operation has completed TIMO is also set in the status word following an ibwait or ibnotify call if the TIMO bit is set in the mask parameter and the timeout period expires before any other specified mask bit condition occurs TIMO is cleared in all other circumstances NI 488 2 User Manual END indicates either that the GPIB EOI line has been asserted or that the EOS b
77. level calls table 7 6 multi device calls table 7 9 parallel polling multi device calls 8 19 SRQ and serial polling 8 14 8 15 NI 488 2 Communicator 2 6 sample screen figure 2 7 NI 488 2 programming techniques Borland C C 4 11 direct entry with C 4 12 Mac OS X 4 16 Microsoft Visual C C 4 11 Visual Basic 4 12 NI 488 2 Troubleshooting Wizard 2 3 example figure 2 3 NRFD not ready for data line table A 3 0 online help accessing 2 13 Mac OS X xi Windows xi NI Spy online help 2 9 6 2 NI 488 2 online help 2 13 NI 488 2 Troubleshooting Wizard online help 2 3 online technical support E 1 NI 488 2 User Manual Index P parallel polling implementing 8 17 using NI 488 2 calls multi device 8 19 traditional 8 17 phone technical support E 1 PPoll routine 8 19 PPollConfig routine 8 19 PPollUnconfig routine 8 19 primary GPIB address A 2 professional services E 1 programming examples E 1 programming methodology choosing 4 2 programming models requirements for applications using multiple interfaces 4 9 requirements for multiple device applications 4 9 requirements for single device applications 4 7 Q q exit or quit function Interactive Control utility 7 10 R ReadStatusByte routine 8 15 Receive function 4 11 recording calls in NI Spy 6 3 related documentation xiii REM status word condition 4 5 B 1 B 4 REN remote enable line table A 4 repeat addres
78. lity you can use with the NI 488 2 software for Mac OS X You can perform the following GPIB related tasks in GPIB Explorer e Add or remove GPIB interfaces e Reconfigure the GPIB interface settings e Locate additional help resources for GPIB and NI 488 2 Starting GPIB Explorer To start GPIB Explorer from the Finder double click on Applications National Instruments NI 488 2 Explore GPIB Figure 3 1 shows GPIB Explorer GPIB Explorer The interfaces listed below are currently installed GPIB Name Interface Type pe GPIBO GPIB ENET 100 f yarmaa GPIB1 GPIB ENET 100 __ Delete I Pro perties a ance GPIB Software oO gt High Perform Figure 3 1 GPIB Explorer National Instruments Corporation 3 1 NI 488 2 User Manual Chapter 3 GPIB Explorer Mac OS X Add a New GPIB Interface To add a new GPIB interface to your system complete the following steps 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer Click New Follow the prompts to add your GPIB interface to the system Delete a GPIB Interface To remove a GPIB interface from your system complete the following steps 1 Double click on Applications National Instruments NI 488 2 Explore GPIB to start GPIB Explorer Click on your GPIB interface and click Delete Click Yes when prompted to confirm the removal of your interface View NI 48
79. lker Listener applications 8 11 Talkers A 1 technical support E 1 telephone technical support E 1 terminating data transfers 8 1 termination methods errors caused by 5 3 TestSRQ routine 8 15 ThreadIbcnt function 8 10 ThreadIbcntl function 8 10 ThreadIberr function 8 10 ThreadIbsta function 8 10 timing errors 5 2 TIMO status word condition 4 5 B 1 B 2 training E 1 customer E 1 National Instruments Corporation I 9 Index troubleshooting example Troubleshooting Wizard results figure 2 3 under Measurement amp Automation Explorer 2 3 using NI 488 2 Troubleshooting Wizard 2 3 troubleshooting resources E 1 turn OFF display function Interactive Control utility 7 10 turn ON display function Interactive Control utility 7 10 V variables See global variables Visual Basic programming instructions 4 12 W waiting for GPIB conditions ibwait 8 4 WaitSRQ routine 8 15 Web professional services E 1 technical support E 1 worldwide technical support E 1 NI 488 2 User Manual
80. ll set after ibrsp is called the response byte queue contains at least one more response byte If this happens continue to call ibrsp until the RQS bit is cleared from the status word Stuck SRQ State If autopolling is enabled and the GPIB interface detects an SRQ the driver serial polls all open devices connected to that interface The serial poll continues until either SRQ unasserts or all the devices have been polled 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 state is terminated and the driver attempts a new set of serial polls National Instruments Corporation 8 13 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques Autopolling and Interrupts If autopolling is enabled the NI 488 2 software can perform autopolling after any device level NI 488 2 call provided that no GPIB I O is currently in progress Because the driver uses interrupts 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 when an application calls a board level traditional or
81. lp refer to the Using the NI 488 2 Documentation section in About This Manual NI 488 2 User Manual 7 12 ni com NI 488 2 Programming Techniques This chapter describes techniques for using some NI 488 2 calls in your application For more information about each function refer to the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual 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 EOI is asserted 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 mode If EOT mode is enabled the GPIB EOI line is asserted 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 7 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 GPIB EOI line is automatically asserted when the EOS byte is
82. mework into your CodeWarrior or Project Builder project The framework is located at Library Frameworks To compile and link your application in a Terminal Shell type the following code on the command line cc cprog c framework NI488 4 16 ni com Debugging Your Application This chapter describes several ways to debug your application NI Spy The NI Spy utility monitors NI 488 2 API calls made by NI 488 2 applications It records NI 488 2 API input and output values from all Win32 Win16 and DOS NI 488 2 applications If the application does not have built in error detection handling you can use NI Spy to determine which NI 488 2 call is failing For more information about using NI Spy select Help Help Topics in NI Spy or refer to Chapter 6 NI Spy Utility 3 Note NI Spy is available for Windows platforms only The remainder of this chapter contains general NI 488 2 debugging tips that apply to Windows and Mac OS X platforms Global Status Variables At the end of each NI 488 2 call the global status variables ibsta iberr ibent and ibcnt1 are updated If you are developing an NI 488 2 application you should check for errors after each NI 488 2 call If a NI 488 2 call failed the high bit of ibsta the ERR bit is set For a failed NI 488 2 call iberr contains a value that defines the error In some error cases the value in ibcnt1 contains even more error information Windows You can use NI Spy to determi
83. ming Techniques B Note Ifyou are using ibnotify in your application see the Asynchronous Event Notification in NI 488 2 Applications section of this chapter the ibnotify callback is executed in a separate thread that is created by the NI 488 2 driver Therefore if your application makes NI 488 2 calls from the ibnotify callback function and makes NI 488 2 calls from other places you must use the ThreadIbsta ThreadIberr ThreadIbcnt and ThreadIbcnt1 functions described in this section instead of the per process NI 488 2 globals Device Level Calls and Bus Management The device level traditional NI 488 2 calls are designed to perform all of the GPIB management for your application However the NI 488 2 driver can handle bus management only when the GPIB interface 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 If your GPIB interface 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 If the current CIC does not pass control the NI 488 2 driver returns the ECIC error code to your application If this happens you could send a device specific command requesting control for the GPIB interface Then use a board level ibwait command to wait for CIC Talker Listener Applications Although designed for Controll
84. mmunicate with up to 100 GPIB interfaces D 2 ni com Windows Appendix D Common Questions How do I get started To get started with your GPIB hardware and the NI 488 2 software use the NI 488 2 Getting Started Wizard To do so select Start Programs National Instruments NI 488 2 Getting Started Wizard How can I determine which version of the NI 488 2 software I have installed To view the NI 488 2 software version complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Software directory by clicking the next to the folder 3 Click on NI 488 2 Measurement amp Automation Explorer displays the version number of the NI 488 2 software in the right window pane What do I do if my GPIB hardware is listed in the Windows Device Manager with a circled X or an exclamation point overlaid on it Refer to the Troubleshooting topics in the NI 488 2 Online Help for information about what might cause this problem If you cannot resolve the problem contact National Instruments How can I determine which type of GPIB hardware I have installed Select Start Programs National Instruments NI 488 2 Explore GPIB and expand the Devices and Interfaces directory by clicking the next to the folder Measurement amp Automation Explorer lists your installed GPIB hardware under Devices and Interfaces National
85. n 8 4 ibnotify function calling 8 4 programming example 8 5 ibonl function placing device offline 4 8 using in Interactive Control utility example 7 4 National Instruments Corporation l 5 Index ibppc function 8 17 ibrd function reading response from device 4 8 using in Interactive Control utility example 7 3 ibrpp function 8 18 ibrsp function automatic serial polling 8 13 conducting single serial poll 8 14 ibsta bit layout definitions 4 5 B 1 return value information 4 4 ibwait function causing autopolling 8 14 Talker Listener applications 8 11 waiting for GPIB conditions 8 4 ibwrt function sending IDN query to device 4 8 using in Interactive Control utility example 7 3 IEFE 488 and IEEE 488 2 xii IFC interface clear line table A 4 instrument drivers E 1 Interactive Control utility auxiliary functions table 7 10 commands 7 5 communicating with instruments 4 1 4 6 count 7 12 error information 7 11 getting started 7 1 NI 488 2 addresses 7 5 numbers 7 4 strings 7 5 NI 488 2 function examples 7 2 overview 7 1 status word ibsta 7 11 summary 2 8 NI 488 2 User Manual Index syntax addresses 7 5 board level traditional NI 488 2 calls table 7 7 device level traditional NI 488 2 calls table 7 6 multi device NI 488 2 calls table 7 9 numbers 7 4 strings 7 5 interface management lines A 4 K KnowledgeBase E 1 L LACS status word condi
86. n was cancelled due to a reset of the interface Solutions NI 488 2 User Manual EDVR is returned when the interface or device name passed to ibfind or the interface index passed to ibdev cannot be accessed The global variable ibcnt1 contains an error code This error occurs when you try to access an interface or device that is not installed or configured properly EDVPR is also returned if there is an internal driver error Possible solutions for this error are as follows e Use ibdev to open a device without specifying its symbolic name e Use only device or interface names that are configured in the GPIB Configuration utility as parameters to the ibfind function e Use the NI 488 2 Troubleshooting Wizard to ensure that each interface you want to access is working properly as follows Windows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB 2 Select Help Troubleshooting NI 488 2 Troubleshooting Wizard Mac OS X Run Applications National Instruments NI 488 2 Troubleshoot The Troubleshooting Wizard tests your GPIB interface and displays the results C 2 ni com Appendix C Error Codes and Solutions e Use the unit descriptor returned from ibdev or ibfind as the first parameter in subsequent traditional NI 488 2 calls Examine the variable before the failing function to make sure its value has not been corrupted ECIC 1 ECIC is returned when one of the followi
87. ncluding 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 CVI HS488 LabVIEW National Instruments NI NI 488 2 and ni com are trademarks of National Instruments Corporation Product and company names mentioned herein are trademarks or trade names of their respective companies Patents For patents covering National Instruments products refer to the Help About dialog box in your software if applicable the patents txt file on your CD if applicable and or ni com legal patents WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS 1 NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF RELIABILITY SUITABLE FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN ANY LIFE SUPPORT SYSTEMS WHOSE FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT INJURY TO A HUMAN 2 IN ANY APPLICATION INCLUDING THE ABOVE RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE IMPAIRED BY ADVERSE FACTORS INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY COMPUTER HARDWARE MALFUNCTIONS COMPUTER OPERATING SYSTEM SOFTWARE FITNESS FITNESS OF COMPILERS AND DEVELOPMENT SOFTWARE USED TO DEVELOP AN APPLICATION INSTALLATION ERRORS SOFTWARE AND HARDWARE COMPATIBILITY PROBLEMS MALFUNCTIONS OR FAILURES OF EL
88. ndshake lines A 3 interface management lines A 4 ni com Microsoft Visual Basic programming instructions 4 12 Microsoft Visual C C programming instructions 4 11 multiple interfaces or multiple devices 4 4 multithreaded NI 488 2 applications writing 8 9 n execute function n times function Interactive Control utility 7 10 n execute previous function n times function Interactive Control utility 7 10 National Instruments customer education E 1 GPIB web site 2 13 3 4 professional services E 1 system integration services E 1 technical support E 1 worldwide offices E 1 NDAC not data accepted line table A 3 NI Spy utility debugging applications 5 1 6 3 exiting 6 3 locating errors 6 2 monitoring recording and displaying NI 488 2 calls 2 9 online help 6 2 overview 6 1 performance considerations 6 3 saving captured data to a file 6 3 starting 6 1 viewing properties for recorded calls 6 3 NI 488 2 common questions D 1 device level calls and bus management 8 11 SRQ and serial polling with device level NI 488 2 calls 8 14 National Instruments Corporation Index SRQ and serial polling with multi device NI 488 2 calls 8 15 viewing version 2 8 3 2 NI 488 2 API choosing how to access 4 2 choosing how to use 4 2 dynamic link library 4 2 NI 488 2 calls examples in Interactive Control utility 7 2 Interactive Control utility syntax board level calls table 7 7 device
89. ne which NI 488 2 call is failing Once you know which NI 488 2 call fails refer to Appendix B Status Word Conditions and Appendix C Error Codes and Solutions for help understanding why the NI 488 2 call failed This information is also available in the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual National Instruments Corporation 5 1 NI 488 2 User Manual Chapter 5 Debugging Your Application NI 488 2 Error Codes The error variable iberr is meaningful only when the ERR bit in the status variable ibsta is set For a detailed description of each error and possible solutions refer to Appendix C Error Codes and Solutions Configuration Errors Several applications require customized configuration of the NI 488 2 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 either reconfigure from your application using the ibconfig function or reconfigure using the GPIB Configuration utility B Note National Instruments recommends using ibconfig to modify the configuration Timing Errors If your application uses ibconfig it works properly regardless of the previous configuration For more information about using ibconfig refer to the description of ibconfig in the NI 488 2 online help or to the GPIB Configuration utility F
90. ned data line when ist is 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 traditional NI 488 2 calls The device asserts DIO7 if its ist is 0 National Instruments Corporation 8 17 NI 488 2 User Manual Chapter 8 NI 488 2 User Manual NI 488 2 Programming Techniques In this example the ibdev command opens a device that has a primary address of 3 has no secondary address has a timeout of 3 s asserts EOI with the last byte of a write operation and has EOS characters disabled include ni488 h dev ibdev 0 3 0 T3s 1 0 The following call configures the device to respond to the poll on DIO7 and to assert the line in the case when its ist is 0 Pass the binary bit pattern 0110 0110 or hex 66 to ibppc ibppc dev 0x66 If the GPIB interface configures itself for a parallel poll you should still use the ibppc function Pass the interface index or an interface unit descriptor value as the first argument in ibppc Also if the individual status bit ist of the interface needs to be changed use the ibist function In the following example the GPIB interface is to configure itself to participate in a parallel poll It asserts DIOS when ist is 1 if a parallel poll is conducted ibppc 0 Ox6C ibist 0 1 Condu
91. needs A typical NI 488 2 application with a single device has three phases e Initialization use ibdev to get a handle and use ibc1r to clear the device e Device Communication use ibwrt ibrd ibtrg ibrsp and ibwait to communicate with the device e Cleanup use ibon1 to put the handle offline Refer to the sample applications that are installed with the NI 488 2 software to see detailed examples for different GPIB device types For NI 488 2 applications that need to control the GPIB in non typical ways for example to communicate with non compliant GPIB devices there is a set of low level functions that perform rudimentary GPIB functions If you use these functions you need to understand GPIB management details such as how to address talkers and listeners Refer to Appendix A GPIB Basics for some details on GPIB management The set of low level functions are called board level functions They access the interface directly and require you to handle the addressing and bus management protocol These 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 interface configurations e Managing the bus in non typical ways Board level functions that an NI 488 2 application might use include the following ibemd ibrd ibwrt and ibconfig For a detailed list refer to the NI 488 2 online help For instru
92. ner applications 8 11 asynchronous event notification in NI 488 2 applications calling ibnotify function 8 4 ibnotify programming example 8 5 ATN attention line table A 4 ATN status word condition 4 5 B 1 B 4 automatic serial polling enabling 8 13 stuck SRQ state 8 13 autopolling and interrupts 8 14 auxiliary functions Interactive Control utility 7 10 Borland C C programming instructions 4 11 buffer option function Interactive Control utility 7 10 bus extenders and expanders 1 3 bus management and device level calls 8 11 C CIC status word condition 4 5 B 1 B 4 CMPL status word condition 4 5 B 1 B 3 communicating with instruments advanced communication 2 8 multiple devices 4 4 multiple interfaces 4 4 single GPIB device 4 3 using Interactive Control utility 4 6 using Measurement amp Automation Explorer 2 6 NI 488 2 User Manual Index using NI 488 2 Communicator 2 6 communication errors repeat addressing 5 3 termination method 5 3 configuration See also Interactive Control utility controlling more than one interface 1 1 1 2 linear and star system configuration figure 1 1 multiboard system example figure 1 2 requirements 1 2 system configuration effects on HS488 1 3 configuration errors 5 2 Configure CFGn message 8 3 Configure Enable CFE message 8 3 contacting National Instruments E 1 Controller in Charge CIC active or inactive A 1 bus management 8
93. ng functions is called while the interface is not CIC e Any device level traditional NI 488 2 calls that affect the GPIB e Any board level traditional NI 488 2 calls that issue GPIB command bytes ibemd ibcmda ibln and ibrpp e ibcac and ibgts e Any NI 488 2 multi device calls that issue GPIB command bytes SendCmds PPoll Send and Receive Solutions Possible solutions for this error are as follows e Use ibsic or SendIFC to make the GPIB interface become CIC on the GPIB e Use ibrsc 1 to make sure your GPIB interface 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 interface ENOL 2 ENOL usually occurs when a write operation is attempted with no Listeners addressed For a device write ENOL 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 occur in situations where the GPIB interface is not the CIC and the Controller asserts ATN before the write call in progress has ended National Instruments Corporation C 3 NI 488 2 User Manual Appendix C Error Codes and Solutions Solutions
94. ntroller uses it to send commands See also acceptor handshake and handshake Serial Poll Disable The GPIB command used to cancel an SPE command Serial Poll Enable The GPIB command used to enable a specific device to be polled That device must also be addressed to talk See also SPD Service Request 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 GPIB driver functions and a process when executing driver functions is predictable the process is blocked until the driver completes the function The single designated 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 NI 488 2 User Manual Glossary T TAD Talker TCT timeout TLC ud UNL UNT NI 488 2 User Manual Talk Address See MTA A GPIB device that sends data messages to Listeners Take Control The GPIB command used to pass control of the bus from the current Controller to an addressed Talker A feature of the GPIB 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 Unit descriptor A variable name and fir
95. o 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 traditional NI 488 2 calls or multi device NI 488 2 calls 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 cable in your system It is called the Configure CFGn message Because HS488 can operate only with cable lengths of 1 to 15 m only CFGn values of 1 through 15 hex 61 through 6F are valid If the cable length was configured properly in the GPIB Configuration utility you can determine how many meters of cable are in your system by calling ibask option IbaHSCableLength in your application For more information about CFE and CFGn messages refer to the Multiline Interface Messages topic in the NI 488 2 online help For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual System Configuration Effects on HS488 Maximum HS488 data transfer rates can be limited by your host computer and
96. ocumentation section in About This Manual Following is an example of how to cast the function pointer and how the parameter list is set up for ibdev and ibon1 functions int _stdcall Pibdev int ud int pad int sad int tmo int eot int eos int _stdcall Pibonl int ud int v Next your Win32 application needs to use Get ProcAddress to get the addresses of the global status variables and functions your application needs The following code fragment shows you how to get the addresses of the pointers to the status variables and any functions your application needs Pointers to NI 488 2 global status variables int Pibsta int Piberr long Pibcntl static int __stdcall Pibdev int ud int pad int sad int tmo int eot int eos static int __stdcall Pibonl int ud int v Pibsta int GetProcAddress Gpib32Lib LPCSTR user_ibsta Piberr int GetProcAddress Gpib32Lib LPCSTR user_iberr 4 14 ni com Chapter 4 Developing Your NI 488 2 Application Pibentl long GetProcAddress Gpib32Lib LPCSTR user _ibcnt Pibdev int __stdcall int int int int int int Get ProcAddress Gpib32Lib LPCSTR ibdev Pibonl int __stdcall int int GetProcAddress Gpib32Lib LPCSTR ibonl If Get ProcAddress fails it returns a NULL pointer The following code fragment shows you how to verify that none of the calls to GetProcAddress failed if P
97. on such as ibwrt or Send and DCAS is set in ibsta the I O operation is aborted DCAS is cleared from ibsta after the next NI 488 2 call National Instruments Corporation B 5 NI 488 2 User Manual Error Codes and Solutions This appendix lists a description of each error some conditions under which it might occur and possible solutions Table C 1 lists the GPIB error codes Table C 1 GPIB Error Codes Error iberr Mnemonic Value Meaning EDVR 0 System error ECIC 1 Function requires GPIB interface to be CIC ENOL 2 No Listeners on the GPIB EADR 3 GPIB interface not addressed correctly EARG 4 Invalid argument to function call ESAC 5 GPIB interface not System Controller as required EABO 6 I O operation aborted timeout ENEB 7 Nonexistent GPIB interface EDMA 8 DMA error EOIP 10 Asynchronous I O in progress ECAP 11 No capability for operation EFSO 12 File system error EBUS 14 GPIB bus error ESRQ 16 SRQ stuck in ON position ETAB 20 Table problem ELCK 21 GPIB interface is locked and cannot be accessed National Instruments Corporation C 1 NI 488 2 User Manual Appendix C Error Codes and Solutions EDVR 0 Table C 1 GPIB Error Codes Error iberr Mnemonic Value Meaning EARM 22 ibnotify callback failed to rearm EHDL 23 Input handle is invalid EWIP 26 Wait in progress on specified input handle ERST 27 The event notificatio
98. or code C 4 EARM error code C 10 EBUS error code C 8 ECAP error code C 7 ECIC error code C 3 EDMA error code C 6 EDVR error code C 2 EFSO error code C 8 EHDL error code C 10 ELCK error code C 10 END status word condition 4 5 B 1 B 2 ENEB error code C 6 ENOL error code C 3 EOI end or identify line table A 4 EOIP error code C 7 EOS configuring EOS mode 8 1 EOS comparison method 8 1 EOS read method 8 2 EOS write method 8 1 ERR status word condition 4 5 B 1 B 2 error codes debugging applications 5 2 error codes and solutions EABO C 5 EADR C 4 EARG C 4 EARM C 10 EBUS C 8 ECAP C 7 ECIC C 3 EDMA C 6 EDVR C 2 EFSO C 8 EHDL C 10 National Instruments Corporation l 3 Index ELCK C 10 ENEB C 6 ENOL C 3 EOIP C 7 ERST C 11 ESAC C 5 ESRQ C 9 ETAB C 9 EWIP C 11 GPIB error codes table C 1 error conditions communication errors repeat addressing 5 3 termination method 5 3 configuration errors 5 2 Interactive Control utility 7 11 timing errors 5 2 error tracking with NI Spy 6 2 error type reporting 4 6 error variable iberr 4 6 ERST error code C 11 ESAC error code C 5 ESRQ error code C 9 ETAB error code C 9 Ethernet Device Configuration utility 2 13 3 4 Event Status bit ESB 8 12 EWIP error code C 11 example code E 1 execute function n times n function Interactive Control utility 7 10 execute indirect file function Interactive Control util
99. or each system e There must be at least one equivalent device load per meter of cable If you want to exceed these limitations you can use a bus extender to increase the cable length or a bus expander to increase the number of device loads You can order bus extenders and expanders from National Instruments National Instruments Corporation 1 3 NI 488 2 User Manual Measurement amp Automation Explorer Windows This chapter describes Measurement amp Automation Explorer an interactive utility you can use with the NI 488 2 software for Windows 2000 XP Me 98 Mac OS X NI 488 2 for Mac OS X has a similar program called GPIB Explorer For more information refer to Chapter 3 GPIB Explorer Mac OS X Overview You can perform the following GPIB related tasks in Measurement amp Automation Explorer e Establish basic communication with your GPIB instruments e Scan for instruments connected to your GPIB interface e Launch the NI 488 2 Getting Started Wizard to get started with GPIB instrument communication e Launch the NI 488 2 Troubleshooting Wizard to troubleshoot GPIB and NI 488 2 problems e Launch NI Spy to monitor NI 488 2 or VISA API calls to GPIB interfaces e View information about your GPIB hardware and NI 488 2 software e Reconfigure the GPIB interface settings e Locate additional help resources for GPIB and NI 488 2 National Instruments Corporation 2 1 NI 488 2 User Manual Chapter2 Measu
100. or instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual NI 488 2 User Manual If your application fails but the same calls issued interactively in the Interactive Control utility 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 This is only a problem with older non standard GPIB devices To check if your interactively issued NI 488 2 calls succeed use the Interactive Control utility as described in Chapter 4 Developing Your NI 488 2 Application A well behaved IEEE 488 device does not experience timing errors 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 NI 488 2 call One way to do this is to have your device communicate its status whenever possible Although this method is not possible with 5 2 ni com Chapter 5 Debugging Your Application many devices it is usually the best option Your delays are controlled by the device and your application can adjust itself and work independently on any platform Other delay mechanisms can exhibit differing behaviors on different platforms and thus might not eliminate timing errors Communication Errors The following sections describe communication errors you might enco
101. plates 0 0 0 0 ceeeeeseeseeneeeeeeseeneeeaes Enable Disable NI 488 2 DOS Support eee eeeeeeseeeeeeeeees Access Additional Help and Resources cesceesceseeeeteeeseeeeeeeenes NI 488 2 Online Helpis eeii National Instruments GPIB Web Site eee eeeeeseeeseeeees View or Change GPIB ENET 100 Network Settings Device Configurations mirenan iirinn erir i i Update GPIB ENET 100 Firmware n se National Instruments Corporation v NI 488 2 User Manual Contents View or Change GPIB ENET Network Settings oo eee ee ceeeeeeseeesereeeeseeneeeseeneens 2 14 Assign IP Address inic fad dunce cadssvesh satecva seisagadts caudstiser tees aE E 2 14 Configure Advanced IP Settings 0 0 eee cs seecsseeseceeeeceseeseeeeesaeenseeseeaees 2 15 Update GPIB ENET Firmware 0 00 eesesceesecseceseeseeeseceeeeseseeessesseeeaeessees 2 15 Chapter 3 GPIB Explorer Mac OS X Starting GPIB Explorer ii csi c005 ns tessieesis ists tats ersten basco ents E EEE E tener nee dete 3 1 Adda New GPIB Interface sss cssncsisanizs ed esha nis ae tii edgier deeds 3 2 Delete a GPIB Interiace zs ov aa eE E EE a EAEE es ETEEN 3 2 View NI 488 2 Software Version ssessereseessereresrsresrsresresrsresrsrestesrnrenrerreresteresererstest 3 2 View or Change GPIB Interface Settings eee eeceeseceseeecneeeseseeeeseseeetaeeseeeaee 3 3 Access Additional Help and Resources cceeeseeseeseceseesecnseeseceseeseeesecseceaesseeeaeenaes 3 4 NI 488 2 Online Help
102. quentially Verified GPIB Name Interface Type Status GPIBO PCI GPIB passed GPIB1 GPIB ENET 100 failed GPIB2 GPIB USB 4 passed Help Retest Exit Figure 2 2 NI 488 2 Troubleshooting Wizard To view online help for the Troubleshooting Wizard click the Help button National Instruments Corporation 2 3 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows Add a New GPIB Interface Delete a GPIB For plug and play interfaces such as the PCI GPIB or GPIB USB A the system automatically detects and installs the hardware To add a new GPIB interface that is not plug and play such as a GPIB ENET 100 to your system complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Right click on the Devices and Interfaces folder and select Create New In the Create New dialog window select the GPIB Interface item and click Finish The Add GPIB Hardware Wizard appears Follow the prompts in the Add GPIB Hardware Wizard to add your interface Measurement amp Explorer automatically updates the list of installed GPIB interfaces You also can select View Refresh to update the list Interface Before you physically remove a GPIB interface from your system you must remove the hardware information as follows Ss Note If your interface is a GPIB USB A or GPIB USB B click the
103. r Codes and Solutions 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 ibnotify ibwait and ibon1 or perform other non GPIB operations If any other call is attempted EOIP is returned Solutions Resynchronize the driver and the application before making any further NI 488 2 calls Resynchronization is accomplished by using one of the following functions ibnotify callback Ifthe ibsta value passed to the ibnotify callback contains CMPL the driver and application are resynchronized ibnotify If the returned ibsta contains CMPL the driver and application are resynchronized ibwait If the returned ibsta contains CMPL the driver and application are resynchronized ibstop The I O is canceled the driver and application are resynchronized ibonl The I O is canceled and the interface is reset the driver and application are resynchronized ECAP 11 ECAP results when your GPIB interface 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 and the driver both have the needed capability National Instruments Corporation C 7 NI 488 2 User Manual Appendix C Error Codes and Solutions EFSO 12 Solutions EBUS 14 EFSO
104. re a semaphore before making a NI 488 2 call and then release the semaphore after examining the NI 488 2 globals modified by the call For more information about the use of synchronization primitives refer to your operating system documentation about synchronization objects supported by your operating system If you choose not to use process global variables you can access per thread copies of the NI 488 2 global variables using a special set of NI 488 2 calls Whenever a thread makes an NI 488 2 call the driver keeps a private copy of the NI 488 2 globals for that thread The following code shows the set of functions you can use to access these per thread NI 488 2 global variables int ThreadIbsta return thread specific ibsta int ThreadIberr return thread specific iberr int ThreadIbent return thread specific ibcnt long ThreadIbentl return thread specific ibentl In your application instead of accessing the per process NI 488 2 globals substitute a call to get the corresponding per thread NI 488 2 global For example the following line of code if ibsta amp ERR could be replaced by if ThreadIbsta amp ERR A quick way to convert your application to use per thread NI 488 2 globals is to add the following define lines at the top of your C file define ibsta ThreadIbsta define iberr ThreadIberr define ibcnt ThreadIbecnt define ibcntl ThreadIbcntl 8 10 ni com Chapter 8 NI 488 2 Program
105. rement amp Automation Explorer Windows Starting Measurement amp Automation Explorer To start Measurement amp Automation Explorer select Start Programs National Instruments NI 488 2 Explore GPIB Figure 2 1 shows Measurement amp Automation Explorer Measurement amp Automation Explorer Configuration stem sone National Instruments t evices and Interfaces Software Measurement amp Automation Explorer Ax Remote Systems What is About MAX Help Measurement amp Automation pleas et interactive task list Explorer in the right side of the MAX window to Measurement amp guide you through Automation Explorer configuration and MA provides basic tasks access to allyour To leam about Figure 2 1 Measurement amp Automation Explorer NI 488 2 User Manual 2 2 ni com Chapter 2 Measurement amp Automation Explorer Windows Troubleshoot NI 488 2 Problems To troubleshoot NI 488 2 problems run the NI 488 2 Troubleshooting Wizard as follows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Select Help Troubleshooting NI 488 2 Troubleshooting Wizard The Troubleshooting Wizard tests your GPIB interface and displays the results as shown in Figure 2 2 DI NI 488 2 Troubleshooting Wizard yf NI 488 2 Software Presence Verified GPIB Hardware Presence Verified X GPIB Interfaces Se
106. 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 to set up your application to detect and respond to service requests from GPIB devices Service Requests from IEEE 488 Devices TIEFE 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 an 8 bit 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 the remaining seven bits to communicate the reason for the service request or to summarize the state of the device Service Requests from IEEE 488 2 Devices NI 488 2 User Manual 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 in
107. 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 Possible solutions for this error are as follows 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 Solutions NI 488 2 User Manual 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 EBUS can occur if there are no functioning devices present on the GPIB Possible solutions for this error are as follows e Verify that the instrument is operating correctly e Check your cable connections and make sure at least two thirds of your devices are powered on e Ifthe timeout period is too short for the driver to send command bytes increase the timeout period C 8 ni com ESRQ 16 Appendix C Error Codes and Solutions Solutions ETAB 20 ESRQ can only be returned by a device level ibwait call with RQS set in the mask ESRQ indicates that a wait for RQS is no
108. ry 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 An address list is represented by a comma separated list of addresses such as 1 0xb706 3 Interactive Control Commands Tables 7 1 and 7 2 summarize the syntax of the traditional NI 488 2 calls in the Interactive Control utility Table 7 3 summarizes the syntax of the multi device NI 488 2 calls in the Interactive Control utility Table 7 4 summarizes the auxiliary functions that you can use in the Interactive Control utility For more information about the function parameters use the online help available by typing in help If you enter only the function name the Interactive Control utility prompts you for parameters National Instruments Corporation 7 5 NI 488 2 User Manual Chapter 7 Table 7 1 Interactive Control Utility Syntax for Device Level Traditional NI 488 2 Calls in Interactive Control Syntax Description ibask option Return configuration information where option is a mnemonic for a configuration parameter ibclr Clear specified device ibconfig option value Alter configurable parameters where option is mnemonic for a configuration parameter ibdev BdIndx pad sad tmo eot eos Open an unused device ibdev parameters are BdIndx pad sad tmo ot os ibeos v Change disable EOS message i
109. s TEEE 488 1 by defining a bus communication protocol a common set of data codes and formats and a generic set of 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 system has a National Instruments GPIB interface and 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 be either active or inactive standby Control can pass from the current CIC to an idle Controller but only the System Controller usually a GPIB interface can make itself the CIC National Instruments Corporation A 1 NI 488 2 User Manual Appendix A GPIB Basics GPIB Addressing NI 488 2 User Manual All GPIB devices and interfaces 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 Control
110. s 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 HS488 compliant interfaces implement high speed transfers automatically when communicating with HS488 instruments If you attempt to enable HS488 on a GPIB interface that does not have HS488 capable hardware the ECAP error code is returned To enable HS488 for your GPIB interface 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 transferred 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 interface for HS488 the Controller In Charge must send out GPIB command bytes interface messages to configure other devices for HS488 transfers 8 2 ni com Chapter 8 NI 488 2 Programming Techniques 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 the GPIB Configuration utility the NI 488 2 software sends out the HS488 configuration message when you use ibdev t
111. s 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 National Instruments Corporation 8 15 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques NI 488 2 User Manual if WaitResult printf SRQ is asserted n FindRQS 0 AddrList amp SerialPollResponse if ibsta amp ERR printf Device at pad x returned byte x n AddrList ibent int SerialPollResponse DevicePad AddrList ibent DeviceResponse SerialPollResponse return Example 2 Using AllSpoll This example shows you how to use A11Spo11 to serial poll three devices with a single call void GetAllSerialPollResponses Addr4882 t AddrList short ResponseList int WaitResult WaitSRQ 0 amp WaitResult if WaitResult printf SRQ is asserted n 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 8 16 ni com Chapter 8 NI 488 2 Programming Techniques 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 parallel polling is that a single parallel poll can ea
112. s reserved Important Information 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 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 document 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 cont
113. sily 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 The value of the individual status bit ist determines the parallel poll response Implementing a Parallel Poll You can implement parallel polling with either the traditional or multi device NI 488 2 calls If you use multi device NI 488 2 calls to execute parallel polls you do not need extensive knowledge of the parallel polling messages However you should use the traditional NI 488 2 calls for parallel polling when the GPIB interface is not the Controller and the interface must configure itself for a parallel poll and set its own individual status bit ist Parallel Polling with Traditional NI 488 2 Calls Complete the following steps to implement parallel polling using traditional NI 488 2 calls 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 the function configures the device for the parallel poll The bit pattern is as follows 0 1 1 E S D2 D1 DO Eis to disable parallel polling and 0 to enable parallel polling for that particular device S is 1 if the device is to assert the assigned data line when ist is 1 and 0 if the device is to assert the assig
114. sing 5 3 repeat previous function function Interactive Control utility 7 10 RQS status word condition 4 5 B 1 B 3 NI 488 2 User Manual l 8 S scanning for GPIB instruments 2 5 instruments not found 2 5 too many Listeners on GPIB 2 5 secondary GPIB address A 2 SendIFC function 4 9 SendList function 4 10 serial polling automatic serial polling 8 13 autopolling and interrupts 8 14 detecting an SRQ state 8 13 service requests IEEE 488 devices 8 12 IEEE 488 2 devices 8 12 using AllSpoll function 8 16 using FindRQS function 8 15 with device level NI 488 2 calls 8 14 with multi device NI 488 2 calls 8 15 service requests serial polling IEEE 488 devices 8 12 IEEE 488 2 devices 8 12 set 488 2 function Interactive Control utility 7 10 set udname function Interactive Control utility 7 10 software drivers E 1 SRQ service request line table A 4 SRQI status word condition 4 5 B 1 B 3 status of devices or interfaces global variables 4 4 status word ibsta 4 4 ATN B 4 CIC B 4 CMPL B 3 DCAS B 5 DTAS B 5 END B 2 ERR B 2 ni com Interactive Control utility 7 11 LACS B 5 LOK B 3 REM B 4 RQS B 3 SRQI B 3 status word layout table 4 5 B 1 TACS B 4 TIMO B 2 stuck SRQ state 8 13 support technical E 1 syntax in Interactive Control utility 7 4 System Controller A 1 system integration services E 1 T TACS status word condition 4 5 B 1 B 4 talk address A 2 Ta
115. sing operating system synchronization objects that came with your development tools ibnotify Programming Example The following code is an example of how you can use ibnotify in your application Assume that your GPIB device is a multimeter that you program it to acquire a reading by sending SEND DATA The multimeter requests service when it has a reading ready and each reading is a floating point value In this example globals are shared by the Callback thread and the main thread and the access of the globals is not protected by synchronization In this case synchronization of access to these globals is not necessary because of the way they are used in the application only a single thread is writing the global values and that thread only adds information increases the count or adds another reading to the array of floats National Instruments Corporation 8 5 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques B Note The following example is written using the GpibNotifyCallback_t definition for Windows Refer to the gpib header file ni488 h for the proper definition of the Callback thread for your platform Other than a possible minor change in the definition of the Callback thread this example will work on all platforms include lt stdio h gt include ni488 h int stdcall MyCallback int LocalUd int LocalIbsta int LocalIberr long LocalIbcntl void RefData int ReadingsTaken 0 float Readings
116. software version complete the following steps 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Software directory by clicking the next to the folder Click NI 488 2 Measurement amp Automation Explorer displays the version number of the NI 488 2 software in the right window pane 2 8 ni com Chapter 2 Measurement amp Automation Explorer Windows Monitor Record and Display NI 488 2 Calls To monitor NI 488 2 calls use NI Spy as follows 1 Select Start gt Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder 3 Right click on your GPIB interface and select NI Spy from the drop down menu that appears On the NI Spy toolbar click the blue arrow button to start a capture Start the NI 488 2 application that you want to monitor NI Spy records and displays all NI 488 2 calls as shown in Figure 2 4 aixi File Edit View Spy Help cam bel l gt amp S x h Description Status ibentl Time 1 ibdev O 3 0 0x0 T10s 13 1 0x00 0x0100 0 0x0000 17 05 13 469 2 ibelrf UDO 0x0100 0x0004 17 05 15 211 3 ibwrt UDO idn 5 0x5 0x0100 0x0005 17 05 21 170 4 ibrd UDO National Inst 100 0x64 0x2100 Ox003E 17 05 27 595 5 ibwrt UDO
117. sserting SRQ Pass control to a device PPoll Parallel poll devices PPollConfig address dataline lineSense Configure device for parallel poll PPollUnconfig addrlist Unconfigure device for parallel poll RcvRespMsg count termination Receive response message ReadStatusByte address Serial poll a device Receive address count termination Receive data from a device ReceiveSetup address Receive setup ResetSys addrlist Reset multiple devices Send address buffer eotmode Send data to a device SendCmds buffer Send command bytes SendDataBytes buffer eotmode Send data bytes SendIFC Send interface clear SendList addrlist buffer eotmode Send data to multiple devices SendLLO Put devices in local lockout SendSetup addrlist Send setup SetRWLS addrlist Put devices in remote with lockout state TestSRQ Test for service request National Instruments Corporation 7 9 NI 488 2 User Manual Chapter 7 Interactive Control Utility Table 7 3 Syntax for Multi Device NI 488 2 Calls in Interactive Control Continued Syntax Description TestSys addrlist Cause multiple devices to perform self tests m Trigger address Trigger a device TriggerList addrlist Trigger multiple devices WaitSRQ Wait for service request Table 7 4 Auxiliary Functions in Interactive Control Funct
118. st argument of each function call that contains the unit descriptor of the GPIB interface or other GPIB device that is the object of the function Unlisten The GPIB command used to unaddress any active Listeners Untalk The GPIB command used to unaddress an active Talker G 8 ni com Index Symbols repeat previous function function Interactive Control utility 7 10 filename execute indirect file function Interactive Control utility 7 10 turn ON display function Interactive Control utility 7 10 turn OFF display function Interactive Control utility 7 10 A accessing NI 488 2 driver 4 2 Active Controller A 1 adding new GPIB interface in GPIB Explorer 3 2 in Measurement amp Automation Explorer 2 4 address syntax in Interactive Control utility 7 5 AllSpoll function serial polling multiple devices with a single call 8 16 application debugging global status variables 5 1 NI Spy utility 5 1 NI 488 2 error codes 5 2 application development communicating with instruments multiple interfaces or multiple devices 4 9 single GPIB device 4 7 using Interactive Control utility 4 1 using NI 488 2 Communicator 2 6 general program steps and examples multiple interface or multiple device applications 4 9 single device applications 4 7 National Instruments Corporation items to include multiple interface or multiple device applications 4 9 single device applications 4 7 talker liste
119. strument is displayed For example to read 29 bytes enter the following ud0 ibrd enter byte count 29 0100 cmpl count 29 46 4C 55 4B 45 2C 20 34 FLUKE 4 35 2C 20 34 37 39 30 31 5 47901 37 33 2C 20 31 2E 36 20 73 1 6 44 31 2E 30 0A D 10 Or equivalently ud0 ibrd 29 0100 cmpl count 29 46 4C 55 4B 45 2C 20 34 FLUKE 4 35 2C 20 34 37 39 30 31 5 47901 7 3 NI 488 2 User Manual Chapter 7 Interactive Control Utility 37 33 2C 20 31 2E 36 20 73 1 6 44 31 2E 30 OA D 10 5 When you finish communicating with the device make sure you put it offline using the ibon1 command as follows ud0 ibonl 0 0100 cmp1 The ibonl command properly closes the device handle and the udo prompt is no longer available 6 To exit Interactive Control type q Interactive Control Syntax The following special rules apply to making calls from the Interactive Control utility e The ud or BoardId parameter is implied by the Interactive Control prompt therefore it is never included in the call e Except for reads the count parameter to calls is unnecessary because buffer lengths are automatically determined by Interactive Control e Function return values are handled automatically by Interactive Control In addition to printing out the return ibsta value for the function it also prints other return values e If you do not know what parameters are appropriate to pass to a given function call type in the funct
120. surement amp Automation Explorer as follows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder 3 Right click on your GPIB ENET 100 interface and select Update Firmware from the drop down menu that appears For more information about the Firmware Update utility refer to the GPIB ENET 100 information in the GPIB Hardware Guide View or Change GPIB ENET Network Settings Assign IP Address NI 488 2 User Manual To view or change the network settings of your GPIB ENET refer to the following sections For more information about your GPIB ENET network settings refer to your GPIB ENET documentation You can run the Assign IP Address utility in Measurement amp Automation Explorer as follows 1 Contact your network administrator to determine whether you should use the Assign IP Address utility to assign the IP address manually 2 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 3 Expand the Devices and Interfaces directory by clicking the next to the folder 4 Right click on your GPIB ENET interface and select Assign IP Address from the drop down menu that appears To view the built in context sensitive help for the Assign IP Address utility click the Help button 2 14 ni com Chapter 2 M
121. t 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 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 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 ibsta RQS bit while the condition lasts Check to see if other devices not used by your application are asserting SRQ Disconnect them from the GPIB if necessary Solutions ETAB occurs only during the FindLstn and FindrQs functions ETAB indicates that there was some problem with a table used by these functions e In the 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 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 National Instruments Corporation C 9 NI 488 2 User Manual Appendix C Error Codes and Solutions ELCK 21 Solutions EA
122. tart Measurement amp Automation Explorer Then select Help National Instruments on the Web GPIB Home Page View or Change GPIB ENET 100 Network Settings To view or change the network settings of your GPIB ENET 100 refer to the following sections For more information about your GPIB ENET 100 network settings refer to the GPIB ENET 100 information in the GPIB Hardware Guide Device Configuration Use the NI Ethernet Device Configuration utility if you need to manually configure the network parameters of the GPIB ENET 100 If your network uses DHCP the network configuration is performed automatically at startup and you do not need to run this utility unless you want to change the hostname Consult your network administrator if you do not know whether your network uses DHCP 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Expand the Devices and Interfaces directory by clicking the next to the folder National Instruments Corporation 2 13 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows 3 Right click on your GPIB ENET 100 interface and select Device Configuration from the drop down menu that appears For more information about the NI Ethernet Device Configuration utility refer to the GPIB ENET 100 information in the GPIB Hardware Guide Update GPIB ENET 100 Firmware You can run the Firmware Update utility in Mea
123. tart Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer 2 Select Tools NI 488 2 Interactive Control 3 At the command prompt type NI 488 2 API calls to communicate interactively with the your instrument For example you might use ibdev ibclr ibwrt ibrd and ibonl Mac OS X 1 Double click on Applications National Instruments NI 488 2 Interactive Control 2 At the command prompt type NI 488 2 API calls to communicate interactively with the your instrument For example you might use ibdev ibclr ibwrt ibrd and ibonl National Instruments Corporation 4 1 NI 488 2 User Manual Chapter 4 Developing Your NI 488 2 Application Choosing Your Programming Methodology Based on your development environment you can select a method for accessing the driver and based on your NI 488 2 programming needs you can choose how to use the NI 488 2 API Choosing a Method to Access the NI 488 2 Driver Applications gain access to the NI 488 2 API using an NI 488 2 language interface Depending on your operating system the following forms are possible Windows You can find the supported language interfaces and sample programs in the Languages folder in your installation directory NI 488 2 has language interfaces for Microsoft Visual C C 2 0 or later Borland C C 4 0 or later or Microsoft Visual Basic 4 0 or later You also can find samples of using NI 488 2
124. te Table 7 2 Syntax for Board Level Traditional NI 488 2 Calls in Interactive Control Syntax Description ibask option a configuration parameter Return configuration information where option is a mnemonic for ibcac v Become active Controller ibemd cmdbuf Send commands ibemda cmdbuf Send commands asynchronously ibconfig option Alter configurable parameters where option is mnemonic for value a configuration parameter ibdma v Enable disable DMA ibeos v Change disable EOS message ibeot v Enable disable END message ibfind udname interface for example gpibo Return unit descriptor where udname is the symbolic name of ibgts v Go from Active Controller to standby ibist v Set clear ist iblck v Acquire or release an exclusive interface lock for the current process LockWaitTime iblines Read the state of all GPIB control lines ibln pad sad Check for presence of device on the GPIB at pad sad ibloc Go to local National Instruments Corporation 7 7 NI 488 2 User Manual Chapter 7 Interactive Control Utility Table 7 2 Syntax for Board Level Traditional NI 488 2 Calls in Interactive Control Continued Syntax Description ibnotify mask Start an asynchronous wait for selected events where mask is a hex or decimal integer or a list of mask bit mnemonics for example ibnotify TIMO CMPL ibon
125. te the following steps a Locate your config sys file and open it for editing b Find the following line device lt path gt gpib com where lt path gt refers to the drive and directory where gpib com is located c If that line appears type REM at the beginning of the line as follows REM device lt path gt gpib com d Save your config sys file and close it Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Click on your GPIB interface and select Tools NI 488 2 DOS Support from the Explorer menu Enable or disable DOS support in the NI 488 2 Settings dialog box and click OK If you are prompted to do so restart your system 2 12 ni com Chapter 2 Measurement amp Automation Explorer Windows Access Additional Help and Resources To access additional help and resources for the NI 488 2 software and your GPIB hardware refer to the following sections NI 488 2 Online Help The NI 488 2 Help addresses questions you might have about NI 488 2 and includes a function reference and troubleshooting information You can access the NI 488 2 online help as follows 1 Select Start Programs National Instruments NI 488 2 Explore GPIB 2 Select Help Help Topics NI 488 2 National Instruments GPIB Web Site To access the National Instruments Web site for GPIB select Start Programs National Instruments NI 488 2 Explore GPIB to s
126. tensions and code excerpts Bold text in this font denotes the messages and responses that the computer automatically prints to the screen This font also emphasizes lines of code that are different from the other examples Italic text in this font denotes text that is a placeholder for a word or value that you must supply Text in this font denotes a specific platform and indicates that the text following it applies only to that platform xii ni com About This Manual Related Documentation The following documents contain information that you may find helpful as you read this manual e ANSI TEEE Standard 488 1 1987 IEEE Standard Digital Interface for Programmable Instrumentation e ANSI TIEEFE Standard 488 2 1992 IEEE Standard Codes Formats Protocols and Common Commands National Instruments Corporation xiii NI 488 2 User Manual Introduction This chapter describes how to set up your GPIB system Setting Up and Configuring 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 configurations Figure 1 1 shows the linear and star configurations gt Device A Device A Device D Device B L L Device C De
127. tes For older NI 488 2 applications you might need to modify one of the device templates to find a given GPIB instrument by name for example ibfind luke45 Older applications still use ibfind instead of the preferred ibdev to obtain a device handle In new applications avoid using ibfind to obtain device handles and use ibdev instead You can use ibdev to dynamically configure your GPIB device handle ibdev also eliminates unneccessary device name requirements National Instruments Corporation 2 11 NI 488 2 User Manual Chapter 2 Measurement amp Automation Explorer Windows If you must modify a device template run the GPIB Configuration utility 1 5 6 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Select Help Help Topics NI 488 2 to view the NI 488 2 online help Search for the topic named Change GPIB Device Templates and click the link to open the GPIB Configuration utility Double click the device template you want to modify such as DEV1 Rename the template as described in your application documentation Click the OK button twice to save your changes and exit Enable Disable NI 488 2 DOS Support NI 488 2 User Manual To enable or disable NI 488 2 DOS support complete the following steps 1 Make sure that no older version of the NI 488 2 DOS device driver is being loaded from your config sys file To do so comple
128. the documentation that came with your GPIB instrument Most instruments respond to the IDN command by returning an identification string Basic Communication Query Write Read To establish basic communication with your instrument use the NI 488 2 Communicator as follows NI 488 2 User Manual 1 Select Start Programs National Instruments NI 488 2 Explore GPIB to start Measurement amp Automation Explorer Expand the Devices and Interfaces directory by clicking the next to the folder Select your GPIB interface Measurement amp Automation Explorer displays the connected instruments in the right window pane If you have not already done so scan for connected instruments Right click on your GPIB interface and select Scan for Instruments from the drop down menu that appears Refer to the Scan for GPIB Instruments section for more information Right click on your GPIB instrument and select Communicate with Instrument from the drop down menu that appears 2 6 ni com Chapter2 Measurement amp Automation Explorer Windows The NI 488 2 Communicator dialog box appears as shown in Figure 2 3 NI 488 2 Communicator lojxi GPIBO Instrument 0O Primary Address 2 Globals Status Send String IDN ibsta Ox100 i Query Write Read iber None z We Configured ide ntl ROS String Received CMPL a LOK REM EIE ATH TAGS zi Lacs DTAS Configure EOS Show Sample Exit DEAS
129. tion 4 5 B 1 B 5 language interfaces 4 2 listen address A 2 Listeners 8 11 A 1 too many found on GPIB 2 5 LOK status word condition 4 5 B 1 B 3 Mac OS X accessing additional help and resources GPIB web site 3 4 online help adding a new GPIB interface 3 2 deleting a GPIB interface 3 2 GPIB Explorer 3 1 GPIB ENET 100 settings 3 4 programming instructions 4 16 starting GPIB Explorer 3 1 viewing GPIB interface settings 3 3 viewing NI 488 2 software version 3 2 NI 488 2 User Manual l 6 Measurement amp Automation Explorer accessing additional help and resources 2 13 accessing online help 2 13 adding new GPIB interface 2 4 changing GPIB device templates 2 11 communicating with instruments 2 6 deleting GPIB interface 2 4 enabling disabling NI 488 2 DOS support 2 12 monitoring recording and displaying NI 488 2 calls 2 9 opening screen figure 2 2 overview 2 1 scanning for GPIB instruments 2 5 starting 2 2 viewing GPIB instrumentation information 2 11 viewing NI 488 2 software version 2 8 viewing or changing GPIB interface settings 2 10 viewing or changing GPIB ENET network settings assigning IP address 2 14 configuring advanced IP settings 2 15 updating GPIB ENET firmware 2 15 viewing or changing GPIB ENET 100 network settings configuring network parameters 2 13 updating GPIB ENET 100 firmware 2 14 Message Available bit MAV 8 12 messages sending across GPIB data lines A 3 ha
130. tional Instruments Corporation vil NI 488 2 User Manual Contents Interactive Control Commands inpe a A a aa AE EE ERN 7 5 LACUS W OL E E E EE E E E A E A 7 11 Error Information E E E EEEE E ES T Sap ase Hee eg 7 11 Cou untInformaton ass a a a ai ganas aad eto Te a SS 7 12 Chapter 8 NI 488 2 Programming Techniques Termination of Data Transfers 0 0 0 ccc eeeeccessceeceseceseeseeeneeseessesseeseeeaececeaseneeeaeeneeeaes 8 1 High Speed Data Transfers HS488 eee ee cece ceceeseeesesseseeeeseeseeesecseeeaeeseeeaseneeeaes 8 2 Fp ablin ge S488 i oc cetestend E suc ev bans tu venders savas stpab TE T E e 8 2 System Configuration Effects on HS488 oo eee eeeeseeeeeeseceeeeeeeeeeeaees 8 3 Waiting for GPIB Conditions eee E EREE E E E 8 4 Asynchronous Event Notification in NI 488 2 Applications 0 eee eeeeeeeeeeeee 8 4 Calling the ibnotiffy Function 0 0 ee eee eeceseeseeeecneeeseseeeesesseesaesseeeaeeseees 8 4 ibnotify Programming Example eee cee seeeeseeeeeeseeseeeseeeeeseeseeeeeeaeenaes 8 5 Writing Multithreaded NI 488 2 Applications 0 0 0 eseeseceseeseeeseeeenseceeneeeseenaes 8 9 Device Level Calls and Bus Management 00 eee eeeeceeeeceseeseceseeseeeseeseceseeaeeeseeeenaes 8 11 Talker Listener Applications ceitein eea e aeea aE ea EASE E E E A EEEREN 8 11 Serial Polling nnna eta heels en aoe ee ities RR S 8 12 Service Requests from IEEE 488 Devices eee eee eeseeeeeeeeeeteeeeeeeeeenees 8 12 Service Requests from IE
131. to the Writing Multithreaded NI 488 2 Applications section in Chapter 8 NI 488 2 Programming Techniques Status Word ibsta NI 488 2 User Manual All NI 488 2 calls update a global status word ibsta which contains information about the state of the GPIB and the GPIB hardware The value stored in ibsta is the return value of all the traditional NI 488 2 calls except ibfind and ibdev You can examine various status bits in ibsta and use that information to make decisions about continued processing If you check for possible errors after each call using the ibsta ERR bit debugging your application is much easier 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 device level traditional NI 488 2 calls dev board level traditional NI 488 2 calls and multi device NI 488 2 calls brd or all dev brd 4 4 ni com Chapter 4 Developing Your NI 488 2 Application Table 4 1 shows the condition that each bit position represents the bit mnemonics and the type of calls for which the bit can be set For a detailed explanation of each status condition refer to Appendix B Status Word Conditions Table 4 1 Status Word Layout Bit Hex Mnemonic Pos Value Type Description ERR 15 8000 dev brd NI 488 2 error TIMO 14 4000 dev brd Time limit exce
132. tures and functions of the NI 488 2 software You can use the NI 488 2 software with Windows 2000 XP Me 98 and Mac OS X Using the NI 488 2 Documentation The following NI 488 2 documentation is available with your NI 488 2 software distribution CD e The Getting Started card briefly describes how to install the NI 488 2 software and your GPIB hardware e This manual describes the features and functionality of the NI 488 2 software e The GPIB Hardware Guide contains detailed instructions on how to install and configure your GPIB hardware This guide also includes hardware and software specifications and compliance information Windows To view these documents online insert your NI 488 2 software distribution CD and select the Getting Started Documentation option The Getting Started Documentation utility helps you find the documentation that you want to view You can also view these documents at ni com Mac OS X To view these documents online insert your NI 488 2 software distribution CD and open the NI 488 2 Documentation folder You can also view these documents at ni com Accessing the NI 488 2 Online Help The NI 488 2 Help addresses questions you might have about NI 488 2 and includes a function reference and troubleshooting information Windows Select Start Programs National Instruments NI 488 2 Explore GPIB Select Help Help Topics NI 488 2 Mac OS X Select Applications National Instruments NI 488 2
133. ully ud0O ibwrt IDN 0100 cmpl count 5 udo For more information about ibsta refer to Appendix B Status Word Conditions Error Information If an NI 488 2 call completes with an error the Interactive Control utility displays the relevant error mnemonic In the following example an error condition EBUS has occurred during a data transfer ud0 ibwrt IDN 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 the GPIB device is powered off or the GPIB cable is disconnected For a detailed list of the error codes and possible solutions refer to Appendix C Error Codes and Solutions National Instruments Corporation 7 11 NI 488 2 User Manual Chapter 7 Interactive Control Utility Count Information When an I O function completes the Interactive Control utility 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 to a multi device NI 488 2 call is invalid then the error is EARG and the Interactive Control utility displays the index of the invalid address as the count The count has a different meaning depending on which NI 488 2 call is made For the correct interpretation of the count return refer to the function descriptions in the NI 488 2 online help For instructions on accessing the online he
134. under LabWindows CVI LabVIEW Delphi and with direct entry DLL calls You can access the DLL directly from any programming environment that allows you to request addresses of variables and functions that a DLL exports gpib 32 d11 exports pointers to each of the global variables and all the NI 488 2 calls Mac OS X NI 488 2 has NI488 framework Carbon framework for Mac OS X which you can use from your C C applications Choosing How to Use the NI 488 2 API The NI 488 2 API has two subsets of calls to meet your application needs Both of these sets the traditional calls and the multi device calls are compatible across computer platforms and operating systems so you can port programs to other platforms with little or no source code modification For most applications the traditional NI 488 2 calls are sufficient If you have a complex configuration with one or more interfaces and multiple devices use the multi device NI 488 2 calls Whichever option you choose bus management operations necessary for device communication are performed automatically NI 488 2 User Manual 4 2 ni com Chapter 4 Developing Your NI 488 2 Application The following sections describe some differences between the traditional NI 488 2 calls and the multi device NI 488 2 calls Communicating with a Single GPIB Device If your system has only one device attached to each interface the traditional NI 488 2 calls are probably sufficient for your programming
135. unter in your application Repeat Addressing Devices adhering to the IEEE 488 2 standard should remain in their current state until specific commands are sent across the GPIB to change their state However some devices require GPIB addressing before any GPIB activity Therefore 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 You can either reconfigure from your application using ibconfig or reconfigure using the GPIB Configuration utility ays Note National Instruments recommends using ibconfig to modify the configuration If your application uses ibconfig it works properly regardless of the previous configuration For more information about ibconfig refer to the description of ibconfig in the NI 488 2 online help or to the GPIB Configuration utility For instructions on accessing the online help refer to the Using the NI 488 2 Documentation section in About This Manual 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 not be recognizing the end of the command In that case you need to send a termination message such as lt CR gt lt LF gt after a write command as follows ibwrt dev COMMAND
136. use the FindLstn function to dynamically determine the GPIB address of your GPIB device as described in Step 2 Determine the GPIB Address of Your Device in the Applications That Use Multiple Interfaces or Communicate with Multiple GPIB Devices section later in this chapter National Instruments Corporation 4 7 NI 488 2 User Manual Chapter 4 NI 488 2 User Manual Developing Your NI 488 2 Application e Secondary address for the GPIB instrument 0 if the GPIB instrument does not use secondary addressing e Timeout period typically set to T10s which is 10 seconds e End of transfer mode typically set to 1 so that EOI is asserted with the last byte of writes e EOS detection mode typically 0 if the GPIB instrument does not use EOS characters A successful ibdev call returns a device handle ud that is used for all device level traditional NI 488 2 calls that communicate with the GPIB instrument Step 2 Clear the Device Use ibclr to clear the device This resets the device s internal functions to the default state Device Communication Step 3 Communicate with the Device Communicate with the device by sending it the IDN query and then reading back the response Many devices respond to this query by returning a description of the device Refer to the documentation that came with your GPIB device to see specific instructions on the proper way to communicate with it Step 3a Use ibwrt to send the I
137. vice B Device C a Linear Configuration b Star Configuration Figure 1 1 Linear and Star System Configuration National Instruments Corporation 1 1 NI 488 2 User Manual Chapter 1 Introduction Controlling More Than One Interface Figure 1 2 shows an example of a multi interface system configuration gpibo is a PCI GPIB and is the access interface for the voltmeter gpib1 is a GPIB ENET 100 and is the access interface for the plotter and printer One fes 99999 GPIB Digital Voltometer Another GPIB Printer Figure 1 2 Example of Multiboard System Configuration Configuration Requirements To achieve the high data transfer rate that the GPIB was designed for you must limit the number of devices on the bus and the physical distance between devices The following restrictions are typical e A maximum separation of 4 m between any two devices and an average separation of 2 m over the entire bus e A maximum total cable length of 20 m e A maximum of 15 devices or controllers connected to each bus with at least two thirds powered on NI 488 2 User Manual 1 2 ni com Chapter 1 Introduction For high speed HS488 operation the following restrictions apply e All devices in the system must be powered on e Cable lengths must be as short as possible with up to a maximum of 15 m of cable f
138. whether the GPIB interface is addressed as a Listener LACS is set whenever the GPIB interface detects that its listen address and secondary address if enabled has been sent either by the GPIB interface itself or by another Controller LACS is also set whenever the GPIB interface shadow handshakes as a result of the ibgts function LACS is cleared whenever the GPIB interface detects the Unlisten UNL command its own talk address Interface Clear IFC or that the ibgts function has been called without shadow handshake DTAS brd DTAS indicates whether the GPIB interface has detected a device trigger command DTAS is set whenever the GPIB interface 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 or ibnotify call if the DTAS bit is set in the ibwait mask parameter DCAS brd DCAS indicates whether the GPIB interface has detected a device clear command DCAS is set whenever the GPIB interface detects that the Device Clear DCL command has been sent by another Controller or whenever the GPIB interface as a Listener detects that the Selected Device Clear SDC command has been sent by another Controller If you use the ibwait or ibnotify function to wait for DCAS and the wait is completed DCAS is cleared from ibsta after the next NI 488 2 call The same is true of reads and writes If you call a read or write functi
139. 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 National Instruments Corporation 8 1 NI 488 2 User Manual Chapter 8 NI 488 2 Programming Techniques e EOS read method TIf this is enabled ibrd ibrda and ibrdf calls are terminated 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 You can use the ibconfig function to configure the software to indicate whether the GPIB EOI line was asserted when the EOS byte was read in 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 END is reported in ibsta when either the EOS byte is read in or the EOI line is asserted during a read High Speed Data Transfers HS488 Enabling HS488 NI 488 2 User Manual National Instruments has designed a high speed data transfer protocol for TEEE 488 called HS488 This protocol increases performance for GPIB read
140. x C Error Codes and Solutions e A boardID outside the range of 0 99 is passed in to a traditional NI 488 board level function or NI 488 2 routine e ibconfig or ibask is called with a device unit descriptor and a board only configuration option or with a board unit descriptor and a device only configuration option Solutions Do not use a device descriptor in a board function or vice versa Make sure that the board index passed to the NI 488 2 call is valid EWIP 26 EWIP indicates that an ibwait call is already in progress on the specified unit descriptor This error occurs when one thread within a process calls ibwait ona given descriptor when another thread within the same process is already performing an ibwait using that same descriptor Solutions Make sure that for any given unit descriptor only one thread calls ibwait at a time using that descriptor ERST 27 ERST results when an event notification was cancelled due to a reset of the interface An ibwait call pending in the driver returns ERST in the following situations e Another thread in the same process calls ibon1 using the same unit descriptor as ibwait e Another thread or another process issues a board level ibon1 1 An ibnotify Callback may be invoked with ERST in the following situations e Another process issues a board level ibon1 1 National Instruments Corporation C 11 NI 488 2 User Manual Appendix C Error Codes and Solutions
141. y the device if ist is 1 the program checks bit 4 hex 10 in the response to determine the value of ist PPol1l 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 PPol1Unconfig 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 devices receive the parallel poll disable message AddressList 0 3 AddressList 1 NOADDR PPollUnconfig 0 AddressList National Instruments Corporation 8 19 NI 488 2 User Manual GPIB Basics The ANSI IEEE Standard 488 1 1987 also known as General Purpose Interface Bus GPIB describes a standard interface for communication between instruments and controllers from various vendors It contains information about electrical mechanical and functional specifications GPIB is a digital 8 bit parallel communications interface with data transfer rates of 1 Mbyte s and higher using a three wire handshake The bus supports one System Controller usually a computer and up to 14 additional instruments The ANSI IEEE Standard 488 2 1992 extend
142. yte has been received if the software is configured to terminate a read on an EOS byte If the GPIB interface 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 operation 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 B 2 ni com Appendix B Status Word Conditions 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 when the GPIB interface is CIC and the GPIB SRQ line is asserted SRQI is cleared either when the GPIB interface 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 and indicates that the device is requesting service RQS is set whenever one or more positive serial poll response bytes have been received from the device A positive serial poll response byte always has bit 6 asserted
Download Pdf Manuals
Related Search
Related Contents
つり銭機 300シリーズ Lithium-ion Battery After Sales Service Manual Samsung SP-F270BK User Manual Westinghouse 52-Inch Specification Sheet Bissell 1672 Vacuum Cleaner User Manual Space engineering Electromagnetic compatibility Bedienungsanleitung HERO+ LCD Epson AcuLaser C900 Copyright © All rights reserved.
Failed to retrieve file