NI-488.2 TM NI-488.2 User Manual NI-488.
Support Worldwide Technical Support and Product Information ni.
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.
Contents About This Manual Using the NI-488.2 Documentation...............................................................................xi Accessing the NI-488.2 Online Help...............................................................xii Conventions ...................................................................................................................xii Related Documentation..................................................................................................
Contents Chapter 3 GPIB Explorer (Mac OS X and Linux) Starting GPIB Explorer ................................................................................................. 3-2 Mac OS X........................................................................................................ 3-2 Linux ............................................................................................................... 3-3 Add a New GPIB Interface.....................................................................
Contents Direct Entry with C .........................................................................................4-12 gpib-32.dll Exports............................................................................4-12 Directly Accessing the gpib-32.dll Exports ......................................4-13 Language-Specific Programming Instructions for Mac OS X.......................................4-16 Language-Specific Programming Instructions for Linux ..............................................
Contents Status Word ................................................................................................................... 7-11 Error Information........................................................................................................... 7-11 Count Information ......................................................................................................... 7-12 Chapter 8 NI-488.2 Programming Techniques Termination of Data Transfers .....................................
Contents Appendix D Common Questions Appendix E Technical Support and Professional Services Glossary Index © National Instruments Corporation ix NI-488.
About This Manual This manual describes the features and functions of the NI-488.2 software. You can use the NI-488.2 software with Windows 2000/XP/Vista, Mac OS X, and Linux. Using the NI-488.2 Documentation The following NI-488.2 documentation is available with your NI-488.2 software distribution CD: • The Getting Started/Installation Guide briefly describes how to install the NI-488.2 software and your GPIB hardware. • This manual describes the features and functionality of the NI-488.2 software.
About This Manual 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»Measurement & Automation. Select Help»Help Topics»NI-488.2. Mac OS X Select Applications»National Instruments»NI-488.2» Explore GPIB. Select Help»Help Topics»NI-488.2.
About This Manual monospace 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 extensions. monospace bold Bold text in this font denotes the messages and responses that the computer automatically prints to the screen.
1 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.
Chapter 1 Introduction Controlling More Than One Interface Figure 1-2 shows an example of a multi-interface system configuration. gpib0 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 GPIB Digital Voltometer gpib0 Plotter Another GPIB PWR/RDY LINK 10/100 GPIB-ENET/100 TX ENET RX TALK LISTEN GPIB I 0 gpib1 Printer Figure 1-2.
Chapter 1 Introduction For high-speed (HS488) operation, the following restrictions apply: • All devices in the system must be powered on. • Cable lengths must be as short as possible with up to a maximum of 15 m of cable for each system. • 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.
2 Measurement & Automation Explorer (Windows) This chapter describes Measurement & Automation Explorer, an interactive utility you can use with the NI-488.2 software for Windows. Mac OS X and Linux NI-488.2 for Mac OS X and NI-488.2 for Linux have a similar program called GPIB Explorer. For more information, refer to Chapter 3, GPIB Explorer (Mac OS X and Linux).
Chapter 2 Measurement & Automation Explorer (Windows) Starting Measurement & Automation Explorer To start Measurement & Automation Explorer, select Start»Programs» National Instruments»Measurement & Automation. Figure 2-1 shows Measurement & Automation Explorer. When starting Measurement & Automation Explorer in Windows Vista, you must choose to run as Adminstrator to allow changes to GPIB Interface Settings.
Chapter 2 Measurement & Automation Explorer (Windows) Troubleshoot NI-488.2 Problems To troubleshoot NI-488.2 problems, run the NI-488.2 Troubleshooting Utility, as follows: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 2. Select Help»Troubleshooting»NI-488.2 Troubleshooting Utility. The Troubleshooting Utility tests your GPIB interface and displays the results, as shown in Figure 2-2. Figure 2-2. NI-488.
Chapter 2 Measurement & Automation Explorer (Windows) Add a New GPIB Interface For plug-and-play interfaces (such as PCI or USB), the system automatically detects and installs the hardware. To add a new GPIB-ENET/100 to your system, complete the following steps: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 2. Right-click on the Devices and Interfaces folder and select Create New. 3.
Chapter 2 Measurement & 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. 2. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 3. Expand the Devices and Interfaces directory by clicking the + next to the folder. 4.
Chapter 2 Measurement & 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 the documentation that came with your GPIB instrument. Most instruments respond to the *IDN? command by returning an identification string.
Chapter 2 Measurement & Automation Explorer (Windows) 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. • 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.
Chapter 2 Measurement & Automation Explorer (Windows) Advanced Communication For advanced interactive communication with GPIB instruments, use the Interactive Control utility, as follows: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 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.
Chapter 2 Measurement & Automation Explorer (Windows) Monitor, Record, and Display NI-488.2 Calls To monitor NI-488.2 calls, use NI Spy, as follows: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 2. Expand the Devices and Interfaces directory by clicking the + next to the folder. 3. Select your GPIB interface in the left window pane of Measurement & Automation Explorer. 4.
Chapter 2 Measurement & Automation Explorer (Windows) View or Change GPIB Interface Settings To view or change your interface settings, complete the following steps: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. When starting Measurement & Automation Explorer in Windows Vista, you must choose to run as Adminstrator to allow changes to GPIB Interface Settings.
Chapter 2 Measurement & Automation Explorer (Windows) Figure 2-5. GPIB Interface Properties in Measurement & Automation Explorer 4. © National Instruments Corporation (Optional) Change the settings for your interface and click Save to apply the settings. 2-11 NI-488.
Chapter 2 Measurement & Automation Explorer (Windows) View GPIB Instrumentation Information To view information about your GPIB instruments, complete the following steps: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 2. Expand the Devices and Interfaces directory by clicking the + next to the folder. 3. Select your GPIB interface. Measurement & Automation Explorer displays the connected instruments in the right window pane. 4.
Chapter 2 Measurement & Automation Explorer (Windows) 5. Rename the template as described in your application documentation. 6. Click the OK button twice to save your changes and exit. Enable/Disable NI-488.2 DOS Support Note NI-488.2 DOS support is not available on Windows Vista or later operating systems. To enable or disable NI-488.2 DOS support, complete the following steps: 1. Start Measurement & Automation Explorer as described in the Starting Measurement & Automation Explorer section. 2.
Chapter 2 Measurement & Automation Explorer (Windows) 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.
3 GPIB Explorer (Mac OS X and Linux) This chapter describes GPIB Explorer, an interactive utility you can use with the NI-488.2 software for Mac OS X and Linux. You can perform the following GPIB-related tasks in GPIB Explorer: • Add or remove GPIB interfaces. • Reconfigure GPIB interface settings. • Launch the NI-488.2 Troubleshooting Wizard to troubleshoot GPIB and NI-488.2 problems. • Launch NI Spy to monitor NI-488.2 calls to GPIB interfaces.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Starting GPIB Explorer Mac OS X To start GPIB Explorer from the Finder, double-click on Applications» National Instruments»NI-488.2»Explore GPIB. Figure 3-1 shows GPIB Explorer in Mac OS X. Figure 3-1. GPIB Explorer (Mac OS X) NI-488.2 User Manual 3-2 ni.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Linux To start GPIB Explorer, enter the following command: /usr/local/natinst/ni4882/bin/gpibexplorer Figure 3-2 shows GPIB Explorer in Linux. Figure 3-2. GPIB Explorer (Linux) © National Instruments Corporation 3-3 NI-488.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Add a New GPIB Interface To add a new GPIB interface to your system, complete the following steps: Non-Plug and Play Interfaces (For Example, GPIB-ENET/100) 1. Start GPIB Explorer as described in the Starting GPIB Explorer section. 2. Click New. 3. Follow the prompts to add your GPIB interface to the system. Plug and Play Interfaces (For Example, PCI-GPIB) 1. Close GPIB Explorer if it is running. 2.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Delete a GPIB Interface To remove a GPIB interface from your system, complete the following steps: Non-Plug and Play Interfaces (For Example, GPIB-ENET/100) 1. Start GPIB Explorer as described in the Starting GPIB Explorer section. 2. Click on your GPIB interface and select Delete. 3. When prompted, click the Yes button to confirm the removal of your interface. Plug and Play Interfaces (For Example, PCI-GPIB) 1. Close GPIB Explorer if it is running. 2.
Chapter 3 GPIB Explorer (Mac OS X and Linux) View or Change GPIB Interface Settings To view or change your interface settings, complete the following steps: 1. Start GPIB Explorer as described in the Starting GPIB Explorer section. 2. Click on your GPIB interface and click Properties. The Properties dialog box appears. Mac OS X Figure 3-3 shows the Properties dialog box for a GPIB-ENET/100 for Mac OS X. Figure 3-3. Properties Dialog Box (Mac OS X) NI-488.2 User Manual 3-6 ni.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Linux Figure 3-4 shows the Properties dialog box for a GPIB-ENET/100 for Linux. Figure 3-4. Properties Dialog Box (Linux) 3. © National Instruments Corporation (Optional) Change the settings for your interface, then click the OK button. 3-7 NI-488.
Chapter 3 GPIB Explorer (Mac OS X and Linux) 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. Start GPIB Explorer as described in the Starting GPIB Explorer section. 2.
Chapter 3 GPIB Explorer (Mac OS X and Linux) Device Configuration Mac OS X To run the NI Ethernet Device Configuration utility from the Finder, double-click on Applications»National Instruments»NI-488.2» EthernetConfig. Linux To run the NI Ethernet Device Configuration utility, enter the following command: /usr/local/natinst/ni4882/bin/ethernetconfig For more information about the NI Ethernet Device Configuration utility, refer to the GPIB-ENET/100 information in the GPIB Hardware Guide.
Developing Your NI-488.2 Application 4 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.
Chapter 4 Developing Your NI-488.2 Application Linux 1. To launch the Interactive Control utility, enter the following command: /natinst/ni4882/bin/gpibintctrl where is the directory where you chose to install the NI-488.2 software. The default is /usr/local. 2. At the command prompt, type NI-488.2 API calls to communicate interactively with your instrument. For example, you might use ibdev, ibclr, ibwrt, ibrd, and ibonl.
Chapter 4 Developing Your NI-488.2 Application Linux NI-488.2 has libgpibapi.so—a dynamic library you can use from your C/C++ applications. Refer to the Language-Specific Programming Instructions for Linux section for more details on how to develop your application. Choosing How to Use the NI-488.2 API The NI-488.2 API has two subsets of calls to meet your application needs.
Chapter 4 Developing Your NI-488.2 Application 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: • Communicating with non-compliant (non-IEEE 488.2) devices. • Altering various low-level interface configurations. • Managing the bus in non-typical ways.
Chapter 4 Developing Your NI-488.2 Application Status Word (ibsta) 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.
Chapter 4 Developing Your NI-488.2 Application Table 4-1. Status Word Layout (Continued) Bit Pos Hex Value DTAS 1 2 brd Device Trigger State DCAS 0 1 brd Device Clear State Mnemonic Type Description 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 (& 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.
Chapter 4 Developing Your NI-488.2 Application 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 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.
Chapter 4 Developing Your NI-488.2 Application General Program Steps and Examples The following steps show you how to use the traditional NI-488.2 device-level 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: • Connect board index (typically 0, for GPIB0).
Chapter 4 Developing Your NI-488.2 Application Step 3a. Use ibwrt to send the "*IDN?" 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 ibonl to put the device handle offline before you exit the application.
Chapter 4 Developing Your NI-488.2 Application 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 GPIB0. Step 2. Determine the GPIB Address of Your Device Use FindLstn to find all the devices attached to the GPIB.
Chapter 4 Developing Your NI-488.2 Application 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.
Chapter 4 Developing Your NI-488.2 Application 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 #include "ni488.h" To compile and link a Win32 console application named cprog in a DOS shell, type the following on the command line: bcc32 -w32 cprog.c borlandc_gpib-32.obj Visual Basic (Version 4.0 or Later) With Visual Basic, you can access the traditional NI-488.
Chapter 4 Developing Your NI-488.2 Application to get a pointer to the exported function, you just need to call GetProcAddress 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.2 Documentation section in About This Manual. The functions such as ibfind, ibrdf, and ibwrtf all require an argument that is a name.
Chapter 4 Developing Your NI-488.2 Application In your Win32 application, you need to load gpib-32.dll before accessing the gpib-32.dll exports. The following code fragment shows you how to call the LoadLibrary function to load gpib-32.dll and check for an error: HINSTANCE Gpib32Lib = NULL; Gpib32Lib=LoadLibrary("GPIB-32.DLL"); if (Gpib32Lib == NULL) { return FALSE; } For the prototypes for each function, refer to the NI-488.2 online help.
Chapter 4 Developing Your NI-488.
Chapter 4 Developing Your NI-488.2 Application Before exiting your application, you need to free gpib-32.dll with the following command: FreeLibrary(Gpib32Lib); For more examples of directly accessing gpib-32.dll, refer to the direct entry sample programs dlldevquery.c and dll4882query.c, installed with the NI-488.2 software. For more information about direct entry, refer to the online help for your development environment.
Chapter 4 Developing Your NI-488.2 Application your application starts, compile and link your application as shown in the following examples: gcc prog.c -lgpibapi or g++ prog.cpp -lgpibapi To have the library dynamically loaded on demand when your application accesses the library, include cib.o during the link phase of your application, as shown in the following examples: gcc prog.c cib.o -ldl or g++ prog.cpp cib.o -ldl cib.
5 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. If an 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. Global Status Variables At the end of each NI-488.
Chapter 5 Debugging Your Application 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. Note National Instruments recommends using ibconfig to modify the configuration.
Chapter 5 Debugging Your Application Communication Errors The following sections describe communication errors you might encounter 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.
6 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). 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.
Chapter 6 NI Spy Utility Monitoring API Calls with NI Spy To display NI-488.2 API calls as they are made, do the following: 1. On the NI Spy toolbar, click the blue arrow button to start a capture. 2. Start the NI-488.2 application you want to monitor. NI Spy records and displays all NI-488.2 calls, as shown in Figure 6-1. Figure 6-1. NI-488.
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.
7 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.
Chapter 7 Interactive Control Utility To start the Interactive Control utility, complete the following steps: Windows 1. Select Start»Programs»National Instruments»Measurement & Automation to start Measurement & 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.
Chapter 7 Interactive Control Utility If you 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: Note :ibdev 0 6 0 13 1 0 ud0: 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.
Chapter 7 Interactive Control Utility Or, equivalently: ud0: ibrd 29 [0100] (cmpl) count: 29 46 4C 55 4B 45 2C 20 34 35 2C 20 34 37 39 30 31 37 33 2C 20 31 2E 36 20 44 31 2E 30 0A 5. FLUKE, 4 5, 47901 73, 1.6 D.10. When you finish communicating with the device, make sure you put it offline using the ibonl command, as follows: ud0: ibonl 0 [0100] (cmpl) : The ibonl command properly closes the device handle and the ud0 prompt is no longer available. 6. To exit Interactive Control, type q.
Chapter 7 Interactive Control Utility Decimal numbers—Enter the number only. For example, ibpad 22 sets the primary address to 22 decimal. String Syntax 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.
Chapter 7 Interactive Control Utility Table 7-1. 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 eot eos. ibeos v Change/disable EOS message.
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 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. Table 7-2. Syntax for Board-Level Traditional NI-488.
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). ibonl 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.
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 Find device asserting SRQ. PassControl address Pass control to a device.
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. Trigger address Trigger a device. TriggerList addrlist Trigger multiple devices. WaitSRQ Wait for service request. Table 7-4.
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 successfully: ud0: ibwrt "*IDN?" [0100] (cmpl) count: 5 ud0: For more information about ibsta, refer to Appendix B, Status Word Conditions.
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.
NI-488.2 Programming Techniques 8 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.
Chapter 8 NI-488.2 Programming Techniques • EOS read method—If 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.
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 to bring a device online. If you call ibconfig to change the GPIB cable length, the NI-488.2 software sends out the HS488 message again, the next time you call a device-level function.
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.
Chapter 8 NI-488.2 Programming Techniques 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 bits are identical to the ibwait mask bits.
Chapter 8 NI-488.2 Programming Techniques 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.
Chapter 8 0); NI-488.2 Programming Techniques // EOS mode disabled if (ud < 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); if (ibsta & ERR) { printf ("unable to write to device.
Chapter 8 NI-488.2 Programming Techniques // If the ERR bit is set in LocalIbsta, then print an error // message and return. if (LocalIbsta & ERR) { printf ("GPIB error %d has occurred. No more callbacks.\n", LocalIberr); 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. LocalIbsta = ibrsp (LocalUd, &SpollByte); if (LocalIbsta & ERR) { printf ("ibrsp failed. No more callbacks.
Chapter 8 NI-488.2 Programming Techniques // Convert the data into a numeric value. sscanf (ReadBuffer, "%f", &Readings[ReadingsTaken]); // Display the data. printf(“Reading : %f\n”, Readings[ReadingsTaken]); ReadingsTaken += 1; if (ReadingsTaken >= 1000) return 0; } else { { // Issue a request to the device to send the data and rearm // callback on RQS. LocalIbsta = ibwrt (LocalUd, "SEND DATA", 9L); if (LocalIbsta & ERR) { printf ("ibwrt failed. No more callbacks.
Chapter 8 NI-488.2 Programming Techniques 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.
Chapter 8 NI-488.2 Programming Techniques 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 #define #define #define ibsta iberr ibcnt ibcntl ThreadIbsta() ThreadIberr() ThreadIbcnt() ThreadIbcntl() If you are using ibnotify in your application (refer to the Asynchronous Event Notification in NI-488.
Chapter 8 NI-488.2 Programming Techniques Talker/Listener Applications Although designed for Controller-In-Charge applications, you can also use the NI-488.2 software in most non-Controller situations. These situations are known as Talker/Listener applications because the interface is not the GPIB Controller. A Talker/Listener application typically uses ibwait with a mask of 0 to monitor the status of the interface.
Chapter 8 NI-488.2 Programming Techniques Service Requests from IEEE 488 Devices IEEE 488 devices request service from the GPIB Controller by asserting the GPIB SRQ line. When the Controller acknowledges the SRQ, it serial polls each open device on the bus to determine which device requested service. Any device requesting service returns 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.
Chapter 8 NI-488.2 Programming Techniques 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.
Chapter 8 NI-488.2 Programming Techniques 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.
Chapter 8 NI-488.2 Programming Techniques • 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. • TestSRQ determines whether the SRQ line is asserted and returns to the program immediately.
Chapter 8 NI-488.2 Programming Techniques Example 2: Using AllSpoll This example shows you how to use AllSpoll to serial poll three devices with a single call: void GetAllSerialPollResponses ( Addr4882_t AddrList[], short ResponseList[] ) { int WaitResult; WaitSRQ (0, &WaitResult); if ( WaitResult ) { printf ( "SRQ is asserted.\n" ); AllSpoll ( 0, AddrList, ResponseList ); if (!(ibsta & ERR)) { for (i = 0; AddrList[i] != NOADDR; i++) { printf ("Device at pad %x returned byte %x.
Chapter 8 NI-488.2 Programming Techniques 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.
Chapter 8 NI-488.2 Programming Techniques In the following example, the GPIB interface is to configure itself to participate in a parallel poll. It asserts DIO5 when ist is 1 if a parallel poll is conducted. ibppc(0, 0x6C); ibist(0, 1); 2. Conduct the parallel poll using ibrpp and check the response for a certain value. The following example code performs the parallel poll and compares the response to hex 10, which corresponds to DIO5. If that bit is set, the ist of the device is 1.
Chapter 8 NI-488.2 Programming Techniques 2. Conduct the parallel poll using PPoll, store the response, and check the response for a certain value. In the following example, because DIO5 is asserted by the device if ist is 1, the program checks bit 4 (hex 10) in the response to determine the value of ist. PPoll(0, &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.
A GPIB Basics The ANSI/IEEE Standard 488.1-2003, also known as the 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 that supports both interlocked and noninterlocked handshaking.
Appendix A GPIB Basics GPIB Addressing 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 Controller 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.
Appendix A GPIB Basics 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.
Appendix A GPIB Basics Table A-2. GPIB Interface Management Lines (Continued) NI-488.2 User Manual Line Description SRQ (service request) Any device can drive the SRQ line to asynchronously request service from the Controller. EOI (end or identify) Talker uses the EOI line to mark the end of a data message. Controller uses the EOI line when it conducts a parallel poll. A-4 ni.
B 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.
Appendix B Status Word Conditions ERR (dev, brd) ERR is set in the status word following any call that results in an error. You can determine the particular error by examining the error variable iberr. Appendix 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) TIMO indicates that the timeout period has expired.
Appendix B Status Word Conditions 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.
Appendix B Status Word Conditions REM (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 another Controller. REM is cleared in the following situations: • When REN becomes unasserted.
Appendix B Status Word Conditions LACS (brd) LACS indicates 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.
C 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.
Appendix C Error Codes and Solutions Table C-1. GPIB Error Codes (Continued) Error Mnemonic iberr Value EHDL 23 Input handle is invalid EWIP 26 Wait in progress on specified input handle ERST 27 The event notification was cancelled due to a reset of the interface EPWR 28 The interface lost power Meaning EDVR (0) 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 ibcntl contains an error code.
Appendix C Error Codes and Solutions Linux Enter the following command: /natinst/ni4882/bin/gpibtsw where is the directory where you chose to install NI-488.2. The default is /usr/local. • 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.
Appendix C Error Codes and Solutions 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.
Appendix C Error Codes and Solutions EARG (4) EARG results when an invalid argument is passed to a function call. The following are some examples: • ibtmo called with a value not in the range 0 through 17. • ibeos called with meaningless bits set in the high byte of the second parameter. • ibpad or ibsad called with invalid addresses. • ibppc called with invalid parallel poll configurations. • A multi-device NI-488.2 call made with an invalid address.
Appendix C Error Codes and Solutions Solutions Possible solutions for this error are as follows: • Use the correct byte count in input functions or have the Talker use the END message to signify the end of the transfer. • Lengthen the timeout period for the I/O operation using ibtmo. • Make sure that you have configured your device to send data before you request data. ENEB (7) ENEB occurs when a GPIB interface is configured for use by the system, but the driver cannot find the interface.
Appendix C Error 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 ibonl 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.
Appendix C Error Codes and Solutions EFSO (12) EFSO results when an ibrdf or ibwrtf call encounters a problem performing a file operation. Specifically, this error indicates that the function is unable to open, create, seek, write, or close the file being accessed. Solutions Possible solutions for this error are as follows: • Make sure the filename, path, and drive that you specified are correct. • Make sure that the access mode of the file is correct.
Appendix C Error Codes and Solutions ESRQ (16) 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 not possible because the GPIB SRQ line is stuck on. This situation can be caused by the following events: • 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.
Appendix C Error Codes and Solutions ELCK (21) 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. Solutions 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.
Appendix C Error Codes and Solutions • A boardID outside the range of 0–99 is passed in to a traditional NI-488 board-level function or NI-488.2 routine. • 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.
Appendix C Error Codes and Solutions Solutions Do not call ibonl with ibwait calls still pending in the driver. Prevent other applications from calling ibonl by locking the interface with iblck. EPWR (28) EPWR results when an interface loses power. This often results when the system goes to and returns from a standby state. Solutions Take all handles offline and reinitialize the application. Quit the application and restart. Disable standby and hibernate modes on the PC. NI-488.2 User Manual C-12 ni.
D 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 maximum number of physical devices you should connect to a single GPIB interface is 14, or fewer, depending on your system configuration.
Appendix D 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 Utility. Windows 1. Select Start»Programs»National Instruments» Measurement & Automation. 2.
Appendix D Common Questions Windows 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»Measurement & Automation to start Measurement & Automation Explorer. 2. Expand the Software directory by clicking the + next to the folder. 3. Click on NI-488.2. Measurement & Automation Explorer displays the version number of the NI-488.2 software in the right window pane.
Technical Support and Professional Services E Visit the following sections of the National Instruments Web site at ni.com for technical support and professional services: • Support—Online technical support resources at ni.
Glossary Symbol Prefix Value n nano 10 –9 m milli 10 –3 M mega 10 6 A acceptor handshake Listeners use this GPIB interface function to receive data, and all devices use it to receive commands. See also source handshake and handshake. access board The GPIB board that controls and communicates with the devices on the bus that are attached to it. ANSI American National Standards Institute. API Application Programming Interface. ASCII American Standard Code for Information Interchange.
Glossary C CFE Configuration Enable—The GPIB command which precedes CFGn and is used to place devices into their configuration mode. CFGn 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. CIC Controller-In-Charge—The device that manages the GPIB by sending interface messages to other devices. CPU Central processing unit.
Glossary EOS or EOS Byte A 7- or 8-bit end-of-string character that is sent as the last byte of a data message. EOT End of transmission. ESB The Event Status bit—Part of the IEEE 488.2-defined status byte which is received from a device responding to a serial poll. F FIFO First-in-first-out. G GET Group Execute Trigger—The GPIB command used to trigger a device or internal function of an addressed Listener.
Glossary hex Hexadecimal—A number represented in base 16. For example, decimal 16 is hex 10. high-level function See device-level function. HS488 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. Hz Hertz. I I/O 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.
Glossary L LAD Listen Address. See also MLA. language interface Code that enables an application program that uses NI-488.2 calls to access the driver. Listener A GPIB device that receives data messages from a Talker. LLO 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 mode.
Glossary N NDAC Not Data Accepted—One of the three GPIB handshake lines. See also handshake. NRFD Not Ready For Data—One of the three GPIB handshake lines. See also handshake. P parallel poll The process of polling all configured devices at once and reading a composite poll response. See also serial poll. PC Personal computer. PCI Peripheral Component Interconnect. PIO See programmed I/O.
Glossary S s Seconds. SDC Selected Device Clear—The GPIB command used to reset internal or device functions of an addressed Listener. See also DCL. semaphore An object that maintains a count between zero and some maximum value, limiting the number of threads that are simultaneously accessing a shared resource. serial poll The process of polling and reading the status byte of one device at a time. See also parallel poll. service request See SRQ.
Glossary T TAD Talk Address. See also MTA. Talker A GPIB device that sends data messages to Listeners. TCT Take Control—The GPIB command used to pass control of the bus from the current Controller to an addressed Talker. timeout A feature of the GPIB driver that prevents I/O functions from hanging indefinitely when there is a problem on the GPIB. TLC An integrated circuit that implements most of the GPIB Talker, Listener, and Controller functions in hardware.
Index Symbols items to include multiple-interface or multiple-device applications, 4-9 single-device applications, 4-7 talker/listener applications, 8-12 asynchronous event notification in NI-488.
Index 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, 3-5 DevClear function, 7-9 DevClearList function, 4-10, 7-9 device-level calls and bus management, 8-11 diagnostic tools (NI resources), E-1 direct entry with C accessing gpib-32.
Index 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-14, 3-9 Event Status bit (ESB), 8-13 EWIP error code, C-11 examples (NI resources), E-1 execute function n times (n *) function,
Index G Linux startup screen (figure), 3-3 Mac OS X startup screen (figure), 3-2 starting, 3-2 viewing NI-488.2 software version, 3-5 GPIB Hardware Guide, xi GPIB instrumentation information, 2-12 GPIB interface settings viewing or changing, 3-6 under Mac OS X, 3-5 under Windows, 2-10 GPIB web site, 2-13, 3-8 gpib-32.
Index I ibsta bit layout definitions, 4-5, B-1 return value information, 4-5 ibwait function causing autopolling, 8-14 Talker/Listener applications, 8-12 waiting for GPIB conditions, 8-4 ibwrt function sending *IDN? query to device, 4-9 using in Interactive Control utility (example), 7-3 IEEE 488 and IEEE 488.
Index K viewing or changing GPIB-ENET/100 network settings configuring network parameters, 2-14 updating GPIB-ENET/100 firmware, 2-14 Message Available bit (MAV), 8-13 messages, sending across GPIB data lines, A-3 handshake lines, A-3 interface management lines, A-3 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.
Index O starting, 6-1 viewing properties for recorded calls, 6-3 NI support and services, E-1 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-15 SRQ and serial polling with multi-device NI-488.2 calls, 8-15 viewing version, 2-8, 3-5 NI-488.2 API choosing how to access, 4-2 choosing how to use, 4-3 dynamic link library, 4-2 NI-488.
Index R set udname function, Interactive Control utility, 7-10 software (NI resources), E-1 SRQ (service request) line (table), A-4 SRQI status word condition, 4-5, B-1, B-3 starting GPIB Explorer, 3-2 status of devices or interfaces global variables, 4-4 status word (ibsta), 4-5 ATN, B-4 CIC, B-4 CMPL, B-3 DCAS, B-5 DTAS, B-5 END, B-2 ERR, B-2 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-14 sup
Index turn OFF display (-) function, Interactive Control utility, 7-10 turn ON display (+) function, Interactive Control utility, 7-10 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 and certification (NI resources), E-1 troubleshooting example Troubleshooting Utility results (figure), 2-3 under Measurement & Automation Explorer, 2-3 using NI-488.