National Instruments Time Clock NI 4882 User Manual

NI-488.2  
User Manual for Windows  
January 1996 Edition  
Part Number 370902A-01  
© Copyright 1993, 1996 National Instruments Corporation.  
All Rights Reserved.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Limited Warranty  
The media on which you receive National Instruments software are warranted not to fail  
to execute programming instructions, due to defects in materials and workmanship, for a  
period of 90 days from date of shipment, as evidenced by receipts or other  
documentation. National Instruments will, at its option, repair or replace software media  
that do not execute programming instructions if National Instruments receives notice of  
such defects during the warranty period. National Instruments does not warrant that the  
operation of the software shall be uninterrupted or error free.  
A Return Material Authorization (RMA) number must be obtained from the factory and  
clearly marked on the outside of the package before any equipment will be accepted for  
warranty work. National Instruments will pay the shipping costs of returning to the  
owner parts which are covered by warranty.  
National Instruments believes that the information in this manual is accurate. The  
document has been carefully reviewed for technical accuracy. In the event that technical  
or typographical errors exist, National Instruments reserves the right to make changes to  
subsequent editions of this document without prior notice to holders of this edition. The  
reader should consult National Instruments if errors are suspected. In no event shall  
National Instruments be liable for any damages arising out of or related to this document  
or the information contained in it.  
EXCEPT AS SPECIFIED HEREIN, NATIONAL INSTRUMENTS MAKES NO  
WARRANTIES, EXPRESS OR IMPLIED, AND SPECIFICALLY DISCLAIMS ANY  
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
CUSTOMER'S RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE  
ON THE PART OF NATIONAL INSTRUMENTS SHALL BE LIMITED TO THE AMOUNT  
THERETOFORE PAID BY THE CUSTOMER. NATIONAL INSTRUMENTS WILL NOT BE  
LIABLE FOR DAMAGES RESULTING FROM LOSS OF DATA, PROFITS, USE OF  
PRODUCTS, OR INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF ADVISED OF  
THE POSSIBILITY THEREOF. This limitation of the liability of National Instruments will  
apply regardless of the form of action, 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.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Copyright  
Under the copyright laws, this publication may not be reproduced or transmitted in any  
form, electronic or mechanical, including photocopying, recording, storing in an  
information retrieval system, or translating, in whole or in part, without the prior written  
consent of National Instruments Corporation.  
Trademarks  
®
NI-488 , NI-488.2 , and TNT4882C are trademarks of National Instruments  
Corporation.  
Product and company names listed are trademarks or trade names of their respective  
companies.  
WARNING REGARDING MEDICAL AND CLINICAL  
USE OF NATIONAL INSTRUMENTS PRODUCTS  
National Instruments products are not designed with components and testing intended to  
ensure a level of reliability suitable for use in treatment and diagnosis of humans.  
Applications of National Instruments products involving medical or clinical treatment can  
create a potential for accidental injury caused by product failure, or by errors on the part  
of the user or application designer. Any use or application of National Instruments  
products for or involving medical or clinical treatment must be performed by properly  
trained and qualified medical personnel, and all traditional medical safeguards,  
equipment, and procedures that are appropriate in the particular situation to prevent  
serious injury or death should always continue to be used when National Instruments  
products are being used. National Instruments products are NOT intended to be a  
substitute for any form of established process, procedure, or equipment used to monitor  
or safeguard human health and safety in medical or clinical treatment.  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
About This Manual ............................................................................................... xiii  
How to Use This Manual Set........................................................................... xiii  
Organization of This Manual........................................................................... xiv  
Conventions Used in This Manual................................................................... xv  
Related Documentation ................................................................................... xvi  
Customer Communication ............................................................................... xvi  
Chapter One  
Introduction.............................................................................................................. 1-1  
GPIB Overview ............................................................................................... 1-1  
Talkers, Listeners, and Controllers ................................................... 1-1  
Controller-In-Charge and System Controller .................................... 1-1  
GPIB Addressing............................................................................... 1-2  
Sending Messages Across the GPIB ................................................. 1-2  
Data Lines ........................................................................... 1-2  
Handshake Lines................................................................. 1-3  
Interface Management Lines............................................... 1-3  
Setting Up and Configuring Your System......................................... 1-4  
Controlling More Than One Board..................................... 1-5  
Configuration Requirements ............................................................. 1-5  
The NI-488.2 Software Package ...................................................................... 1-6  
NI-488.2 Driver and Driver Utilities................................................. 1-6  
C Language Files............................................................................... 1-7  
Visual Basic Language Files ............................................................. 1-7  
Win 32s Files..................................................................................... 1-8  
Sample Application Files .................................................................. 1-8  
How the NI-488.2 Software Works with Windows......................................... 1-8  
Unloading and Reloading the NI-488.2 Driver ............................................... 1-9  
Chapter 2  
Application Examples........................................................................................... 2-1  
Example 1: Basic Communication ................................................................. 2-2  
Example 2: Clearing and Triggering Devices................................................. 2-4  
Example 3: Asynchronous I/O........................................................................ 2-6  
Example 4: End-of-String Mode..................................................................... 2-8  
Example 5: Service Requests.......................................................................... 2-10  
Example 6: Basic Communication with IEEE 488.2-Compliant Devices ..... 2-14  
Example 7: Serial Polls Using NI-488.2 Routines ......................................... 2-16  
Example 8: Parallel Polls ................................................................................ 2-18  
Example 9: Non-Controller Example ............................................................. 2-20  
© National Instruments Corp.  
v
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Chapter 3  
Developing Your Application ............................................................................ 3-1  
Choosing How to Access the NI-488.2 DLL................................................... 3-1  
Choosing Between NI-488 Functions and NI-488.2 Routines ........................ 3-1  
Using NI-488 Functions: One Device for Each Board..................... 3-2  
NI-488 Device Functions .................................................... 3-2  
NI-488 Board Functions ..................................................... 3-2  
Using NI-488.2 Routines: Multiple Boards and/or Multiple  
Devices .............................................................................................. 3-3  
Checking Status with Global Variables........................................................... 3-3  
Status Word – ibsta ........................................................................... 3-3  
Error Variable – iberr ........................................................................ 3-5  
Count Variables – ibcnt and ibcntl .................................................... 3-5  
Using wibic to Communicate with Devices..................................................... 3-5  
Writing Your NI-488 Application ................................................................... 3-6  
Items to Include ................................................................................. 3-6  
NI-488 Program Shell ....................................................................... 3-7  
General Program Steps and Examples .............................................. 3-8  
Step 1. Open a Device........................................................ 3-8  
Step 2. Clear the Device..................................................... 3-8  
Step 3. Configure the Device ............................................. 3-9  
Step 4. Trigger the Device ................................................. 3-9  
Step 5. Wait for the Measurement ..................................... 3-9  
Step 6. Read the Measurement........................................... 3-10  
Step 7. Process the Data..................................................... 3-10  
Step 8. Place the Device Offline ........................................ 3-10  
Writing Your NI-488.2 Application ................................................................ 3-11  
Items to Include ................................................................................. 3-11  
NI-488.2 Program Shell..................................................................... 3-12  
General Program Steps and Examples .............................................. 3-13  
Step 1. Initialization ........................................................... 3-13  
Step 2. Find All Listeners .................................................. 3-13  
Step 3. Identify the Instrument........................................... 3-13  
Step 4. Initialize the Instrument ......................................... 3-14  
Step 5. Configure the Instrument ....................................... 3-15  
Step 6. Trigger the Instrument ........................................... 3-15  
Step 7. Wait for the Measurement ..................................... 3-15  
Step 8. Read the Measurement........................................... 3-16  
Step 9. Process the Data..................................................... 3-16  
Step 10. Place the Board Offline........................................ 3-16  
Compiling, Linking, and Running Your Application ...................................... 3-17  
Microsoft C ....................................................................................... 3-17  
Borland C++ ...................................................................................... 3-17  
Visual Basic....................................................................................... 3-18  
Direct Entry with C ........................................................................... 3-18  
Method 1. List Functions in the  
Module Definition File..................................... 3-19  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
vi  
© National Instruments Corp.  
Contents  
Method 2. Generate an Import Library  
Using implib..................................................... 3-20  
Method 3. Use LoadLibrary and GetProcAddress............. 3-20  
Direct Entry with Visual Basic.......................................................... 3-23  
Chapter 4  
Debugging Your Application............................................................................. 4-1  
Running wibtest ............................................................................................... 4-1  
Presence Test of Driver ..................................................................... 4-1  
Presence Test of Board...................................................................... 4-1  
GPIB Cables Connected .................................................................... 4-2  
Running GPIBInfo........................................................................................... 4-2  
Debugging with the Global Status Variables................................................... 4-3  
Debugging with wibic...................................................................................... 4-4  
Debugging with GPIB Spy .............................................................................. 4-4  
GPIB Error Codes ............................................................................................ 4-4  
Configuration Errors ........................................................................................ 4-5  
Timing Errors................................................................................................... 4-6  
Communication Errors..................................................................................... 4-6  
Repeat Addressing............................................................................. 4-6  
Termination Method.......................................................................... 4-6  
Common Questions ......................................................................................... 4-7  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility ................... 5-1  
Overview.......................................................................................................... 5-1  
Example Using NI-488 Functions ................................................................... 5-1  
wibic Syntax..................................................................................................... 5-4  
Number Syntax.................................................................................. 5-4  
String Syntax ..................................................................................... 5-5  
Address Syntax.................................................................................. 5-5  
wibic Syntax for NI-488 Functions ................................................... 5-5  
wibic Syntax for NI-488.2 Routines ................................................. 5-8  
Status Word ..................................................................................................... 5-9  
Error Information............................................................................................. 5-9  
Count................................................................................................................ 5-10  
Common NI-488 Functions ............................................................................. 5-10  
ibfind ................................................................................................. 5-10  
ibdev .................................................................................................. 5-10  
ibwrt................................................................................................... 5-12  
ibrd..................................................................................................... 5-12  
Common NI-488.2 Routines in wibic.............................................................. 5-13  
Set ...................................................................................................... 5-13  
Send and SendList ............................................................................. 5-13  
Receive .............................................................................................. 5-13  
Auxiliary Functions ......................................................................................... 5-14  
Set (Select Device or Board) ............................................................. 5-15  
Help (Display Help Information) ...................................................... 5-15  
© National Instruments Corp.  
Download from Www.Somanuals.covmii. All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Contents  
! (Repeat Previous Function)............................................................. 5-15  
- (Turn OFF Display) and + (Turn ON Display)............................... 5-15  
n* (Repeat Function n Times) ........................................................... 5-16  
$ (Execute Indirect File).................................................................... 5-16  
Print (Display the ASCII String) ....................................................... 5-17  
Buffer (Set Buffer Display Mode)..................................................... 5-17  
Chapter 6  
GPIB Spy ................................................................................................................... 6-1  
Overview.......................................................................................................... 6-1  
Starting GPIB Spy ........................................................................................... 6-1  
Exiting GPIB Spy ............................................................................................ 6-2  
Viewing Call Details........................................................................................ 6-2  
GPIB Spy Configuration Options .................................................................... 6-3  
Calls to Highlight .............................................................................. 6-3  
Calls To Trap On............................................................................... 6-3  
Buffer History ................................................................................... 6-3  
Set Highlight Color ........................................................................... 6-3  
Store Configuration ........................................................................... 6-4  
GPIB Spy Output Options ............................................................................... 6-4  
To Screen........................................................................................... 6-4  
To File ............................................................................................... 6-4  
Clear Screen....................................................................................... 6-4  
GPIB Spy Help ................................................................................................ 6-5  
Performance Considerations ............................................................................ 6-5  
Chapter 7  
GPIB Programming Techniques ..................................................................... 7-1  
Termination of Data Transfers......................................................................... 7-1  
High-Speed Data Transfers (HS488)............................................................... 7-2  
Enabling HS488................................................................................. 7-2  
System Configuration Effects on HS488 .......................................... 7-3  
Waiting for GPIB Conditions .......................................................................... 7-3  
Device-Level Calls and Bus Management....................................................... 7-3  
Talker/Listener Applications ........................................................................... 7-4  
Waiting for Messages from the Controller ........................................ 7-4  
Using the Event Queue...................................................................... 7-5  
Requesting Service ............................................................................ 7-5  
Serial Polling ................................................................................................... 7-5  
Service Requests from IEEE 488 Devices ........................................ 7-5  
Service Requests from IEEE 488.2 Devices ..................................... 7-6  
Automatic Serial Polling ................................................................... 7-6  
Stuck SRQ State.................................................................. 7-6  
Autopolling and Interrupts .................................................. 7-7  
SRQ and Serial Polling with NI-488 Device Functions.................... 7-7  
SRQ and Serial Polling with NI-488.2 Routines............................... 7-8  
Example 1: Using FindRQS............................................... 7-9  
Example 2: Using AllSpoll ................................................ 7-9  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
viii  
© National Instruments Corp.  
Contents  
Parallel Polling................................................................................................. 7-10  
Implementing a Parallel Poll ............................................................. 7-10  
Parallel Polling with NI-488 Functions .............................. 7-10  
Parallel Polling with NI-488.2 Routines............................. 7-12  
Chapter 8  
wibconf–Windows Interface Bus Configuration Utility......................... 8-1  
Overview.......................................................................................................... 8-1  
Starting wibconf............................................................................................... 8-1  
Upper and Lower Levels of wibconf ............................................................... 8-2  
Upper Level Device Map .................................................................. 8-3  
Device Maps of the Boards................................................. 8-4  
Help..................................................................................... 8-4  
Rename ............................................................................... 8-4  
(Dis)connect ........................................................................ 8-4  
Edit ...................................................................................... 8-5  
Exit ...................................................................................... 8-5  
Lower Level Device/Board Characteristics....................................... 8-5  
Change Characteristics........................................................ 8-6  
Change Board or Device..................................................... 8-6  
Help..................................................................................... 8-6  
Reset Value ......................................................................... 8-6  
Return to Map ..................................................................... 8-6  
Board and Device Configuration Options ....................................................... 8-7  
Primary GPIB Address ...................................................................... 8-7  
Secondary GPIB Address .................................................................. 8-7  
Timeout Setting ................................................................................. 8-7  
Serial Poll Timeouts (Device Characteristic Only)........................... 8-8  
Terminate Read on EOS.................................................................... 8-8  
Set EOI with EOS on Writes............................................................. 8-8  
Type of Compare on EOS ................................................................. 8-8  
EOS Byte........................................................................................... 8-8  
Send EOI at End of Write ................................................................. 8-9  
System Controller (Board Characteristic Only) ................................ 8-9  
Assert REN when SC (Board Characteristic Only)........................... 8-9  
Enable Auto Serial Polling (Board Characteristic Only) .................. 8-9  
Enable CIC Protocol (Board Characteristic Only) ............................ 8-9  
Bus Timing (Board Characteristic Only) .......................................... 8-10  
Cable Length for High Speed (Board Characteristic Only) .............. 8-10  
Parallel Poll Duration (Board Characteristic Only)........................... 8-10  
Use This GPIB Interface (Board Characteristic Only)...................... 8-10  
Base I/O Address (Board Description Only)..................................... 8-10  
DMA Channel (Board Characteristic Only)...................................... 8-11  
Interrupt Jumper Setting (Board Characteristic Only) ...................... 8-11  
Serial Poll Timeout (Device Characteristic Only)............................. 8-11  
Enable Repeat Addressing (Device Characteristic Only) ................. 8-11  
GPIB-PCII/IIA Mode Switch ............................................................ 8-11  
Default Configurations in wibconf .................................................................. 8-12  
© National Instruments Corp.  
ix  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Contents  
Exiting wibconf ............................................................................................... 8-12  
Checking for Errors ........................................................................... 8-13  
wibconf Batch Mode........................................................................................ 8-13  
Appendix A  
Status Word Conditions ...................................................................................... A-1  
Appendix B  
Error Codes and Solutions ................................................................................. B-1  
Appendix C  
Customer Communication ................................................................................. C-1  
Glossary......................................................................................................... Glossary-1  
Index ..................................................................................................................... Index-1  
Figures  
Figure 1-1. GPIB Address Bits ..................................................................................... 1-2  
Figure 1-2. Linear and Star System Configuration ....................................................... 1-4  
Figure 1-3. Example of Multiboard System Setup ....................................................... 1-5  
Figure 1-4. How the NI-488.2 Software Works with Windows ................................... 1-8  
Figure 2-1. Program Flowchart for Example 1 ............................................................. 2-3  
Figure 2-2. Program Flowchart for Example 2 ............................................................. 2-5  
Figure 2-3. Program Flowchart for Example 3 ............................................................. 2-7  
Figure 2-4. Program Flowchart for Example 4 ............................................................. 2-9  
Figure 2-5. Program Flowchart for Example 5 ............................................................. 2-12  
Figure 2-6. Program Flowchart for Example 6 ............................................................. 2-15  
Figure 2-7. Program Flowchart for Example 7 ............................................................. 2-17  
Figure 2-8. Program Flowchart for Example 8 ............................................................. 2-19  
Figure 2-9. Program Flowchart for Example 9 ............................................................. 2-21  
Figure 3-1. General Program Shell Using NI-488 Device Functions ........................... 3-7  
Figure 3-2. General Program Shell Using NI-488.2 Routines ...................................... 3-12  
Figure 6-1. Main GPIB Spy Window ........................................................................... 6-1  
Figure 6-2 GPIB Spy Call Details Window for ibwrt................................................... 6-2  
Figure 8-1. Upper Level of wibconf ............................................................................. 8-3  
Figure 8-2. Lower Level of wibconf ............................................................................. 8-5  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
x
© National Instruments Corp.  
Contents  
Tables  
Table 1-1. GPIB Handshake Lines ............................................................................... 1-3  
Table 1-2. GPIB Interface Management Lines ............................................................. 1-3  
Table 3-1. Status Word (ibsta) Layout .......................................................................... 3-4  
Table 4-1. GPIB Error Codes ........................................................................................ 4-5  
Table 5-1. Syntax for Device-Level NI-488 Functions in wibic................................... 5-6  
Table 5-2. Syntax for Board-Level NI-488 Functions in wibic .................................... 5-7  
Table 5-3. Syntax for NI-488.2 Routines in wibic ........................................................ 5-8  
Table 5-4. Auxiliary Functions in wibic ....................................................................... 5-14  
Table 8-1. Options for Starting wibconf ....................................................................... 8-2  
Table 8-2. wibconf Batch Mode Command Pairs......................................................... 8-15  
Table A-1. Status Word Bits ......................................................................................... A-1  
Table B-1. GPIB Error Codes ....................................................................................... B-1  
© National Instruments Corp.  
xi  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
About This Manual  
This manual describes the features and functions of the NI-488.2 software for Windows.  
The NI-488.2 software is meant to be used with Microsoft Windows version 3.0 or  
higher. This manual assumes that you are already familiar with Windows.  
How to Use This Manual Set  
Getting Started  
Manual  
Installation and  
Configuration  
Experienced  
Users  
Novice  
Users  
NI-488.2 Function  
Reference Manual  
for DOS/Windows  
NI-488.2 User  
Manual for Windows  
Function  
and Routine  
Descriptions  
Application  
Development  
and Examples  
Use the getting started manual to install and configure your GPIB hardware and NI-488.2  
software for Windows.  
Use the NI-488.2 User Manual for Windows to learn the basics of GPIB and how to  
develop an application program. The user manual also contains debugging information  
and detailed examples.  
Use the NI-488.2 Function Reference Manual for DOS/Windows for specific information  
about each NI-488 function and NI-488.2 routine such as format, parameters, and  
possible errors.  
© National Instruments Corp.  
xiii  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
About This Manual  
Organization of This Manual  
This manual is organized as follows:  
• Chapter 1, Introduction, gives an overview of GPIB and the NI-488.2 software.  
• Chapter 2, Application Examples, contains nine sample applications designed to  
illustrate specific GPIB concepts and techniques that can help you write your own  
applications. The description of each example includes the programmer's task, a  
program flowchart, and numbered steps which correspond to the numbered blocks on  
the flowchart.  
• Chapter 3, Developing Your Application, explains how to develop a GPIB application  
program using NI-488 functions and NI-488.2 routines.  
• Chapter 4, Debugging Your Application, describes several ways to debug your  
application program.  
• Chapter 5, wibic–Windows Interface Bus Interactive Control, introduces you to  
wibic, the interactive control program that you can use to communicate with GPIB  
devices interactively.  
• Chapter 6, GPIB Spy, explains how to use the GPIB Spy utility to monitor and debug  
your application program.  
• Chapter 7, GPIB Programming Techniques, describes techniques for using some  
NI-488 functions and NI-488.2 routines in your application program.  
• Chapter 8, wibconf–Windows Interface Bus Configuration Utility, contains a  
description of wibconf, the software configuration program you can use to configure  
the NI-488.2 software for Windows.  
• Appendix A, Status Word Conditions, gives a detailed description of the conditions  
reported in the status word, ibsta.  
• Appendix B, Error Codes and Solutions, lists a description of each error, some  
conditions under which it might occur, and possible solutions.  
• Appendix C, Customer Communication, contains forms you can use to request help  
from National Instruments or to comment on our products and manuals.  
• The Glossary contains an alphabetical list and description of terms used in this manual,  
including abbreviations, acronyms, metric prefixes, mnemonics, and symbols.  
• The Index contains an alphabetical list of key terms and topics in this manual,  
including the page where you can find each one.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
xiv  
© National Instruments Corp.  
About This Manual  
Conventions Used in This Manual  
The following conventions are used in this manual.  
bold  
Text in bold denotes windows, menus, menu options, and  
dialog box options.  
bold italic  
Bold italic text denotes a note, caution, or warning.  
italic  
Italic text denotes emphasis, cross references, field names, or  
an introduction to a key concept.  
monospace  
Text in this font denotes text or characters that you enter from  
the keyboard. Sections of code, programming examples, and  
syntax examples also appear in this font. This font is also  
used for the proper name of disk drives, paths, directories,  
device names, variables, and for statements taken from  
program code.  
bold monospace  
Bold text in this font denotes the messages and responses that  
the computer automatically prints to the screen.  
italic monospace Italic text in this font denotes that you must supply the  
appropriate words or values in the place of these items.  
< >  
-
Angle brackets enclose the name of a key on the keyboard–for  
example, <PageDown>.  
A hyphen between two or more key names enclosed in angle  
brackets denotes that you should simultaneously press the  
named keys–for example, <Control-C>.  
IEEE 488 and  
IEEE 488.2  
IEEE 488 and IEEE 488.2 are used throughout  
this manual to refer to the ANSI/IEEE Standard  
488.1-1987 and the ANSI/IEEE Standard  
488.2-1992, respectively, which define the GPIB.  
NI-488.2 software  
The term NI-488.2 software is used throughout this manual to  
refer to the NI-488.2 software for Windows, unless otherwise  
noted.  
Abbreviations, acronyms, metric prefixes, mnemonics, symbols, and terms are listed in  
the Glossary.  
© National Instruments Corp.  
Download from Www.Somanuals.coxmv. All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
About This Manual  
Related Documentation  
The following documents contain information that you may find helpful as you read this  
manual:  
• ANSI/IEEE Standard 488.1-1987, IEEE Standard Digital Interface for Programmable  
Instrumentation  
• ANSI/IEEE Standard 488.2-1992, IEEE Standard Codes, Formats, Protocols, and  
Common Commands  
Microsoft Windows User’s Guide  
Customer Communication  
National Instruments wants to receive your comments on our products and manuals. We  
are interested in the applications you develop with our products, and we want to help if  
you have problems with them. To make it easy for you to contact us, this manual  
contains comment and configuration forms for you to complete. These forms are in  
Appendix C, Customer Communication, at the end of this manual.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
xvi  
© National Instruments Corp.  
Chapter 1  
Introduction  
This chapter gives an overview of GPIB and the NI-488.2 software.  
GPIB Overview  
The ANSI/IEEE Standard 488.1-1987, also known as GPIB (General Purpose Interface  
Bus), describes a standard interface for communication between instruments and  
controllers from various vendors. It contains information about electrical, mechanical,  
and functional specifications. The GPIB is a digital, 8-bit parallel communications  
interface with data transfer rates of 1 Mbytes/s and above. The bus supports one System  
Controller, usually a computer, and up to 14 additional instruments. The ANSI/IEEE  
Standard 488.2-1987 extends IEEE 488.1 by defining a bus communication protocol, a  
common set of data codes and formats, and a generic set 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 personal computer has a National  
Instruments GPIB interface board and NI-488.2 software installed, it can function as a  
Talker, Listener, and Controller.  
Controller-In-Charge and System Controller  
You can have multiple Controllers on the GPIB, but only one Controller at a time can be  
the active Controller, or Controller-In-Charge (CIC). The CIC can either be active or  
inactive (Standby) Controller. Control can pass from the current CIC to an idle  
Controller, but only the System Controller, usually a GPIB interface board, can make  
itself the CIC.  
© National Instruments Corp.  
1-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Introduction  
Chapter 1  
GPIB Addressing  
All GPIB devices and boards must be assigned a unique GPIB address. A GPIB address  
is made up of two parts: a primary address and an optional secondary address.  
The primary address is a number in the range 0 to 30. The GPIB Controller uses this  
address to form a talk or listen address that is sent over the GPIB when communicating  
with a device.  
A talk address is formed by setting bit 6, the TA (Talk Active) bit of the GPIB address.  
A listen address is formed by setting bit 5, the LA (Listen Active) bit of the GPIB  
address. For example, if a device is at address 1, the Controller sends hex 41 (address 1  
with bit 6 set) to make the device a Talker. Because the Controller is usually at primary  
address 0, it sends hex 20 (address 0 with bit 5 set) to make itself a Listener. Figure 1-1  
shows the configuration of the GPIB address bits.  
Bit  
Position  
7
0
6
5
4
3
2
1
0
Meaning  
TA  
LA  
GPIB Primary Address (range 0 to 30)  
Figure 1-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 secondary addressing is in use, the Controller sends  
the primary talk or listen address of the device followed by the secondary address of the  
device.  
Sending Messages Across the GPIB  
Devices on the bus communicate by sending messages. Signals and lines transfer these  
messages across the GPIB interface, which consists of 16 signal lines and eight ground  
return (shield drain) lines. The 16 signal lines are discussed in the following sections.  
Data Lines  
Eight data lines, DIO1 through DIO8, carry both data and command messages.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
1-2  
© National Instruments Corp.  
Chapter 1  
Introduction  
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 1-1 summarizes the GPIB handshake lines.  
Table 1-1. GPIB Handshake Lines  
Line  
Description  
NRFD (not ready for data)  
Listening device is ready/not ready to receive a message  
byte. Also used by the Talker to signal high-speed GPIB  
transfers.  
NDAC (not data accepted)  
DAV (data valid)  
Listening device has/has not accepted a message byte.  
Talking device indicates signals on data lines are stable  
(valid) data.  
Interface Management Lines  
Five GPIB hardware lines manage the flow of information across the bus. Table 1-2  
summarizes the GPIB interface management lines.  
Table 1-2. GPIB Interface Management Lines  
Line  
Description  
ATN (attention)  
Controller drives ATN true when it sends commands and  
false when it sends data messages.  
IFC (interface clear)  
REN (remote enable)  
SRQ (service request)  
EOI (end or identify)  
System Controller drives the IFC line to initialize the bus  
and make itself CIC.  
System Controller drives the REN line to place devices  
in remote or local program mode.  
Any device can drive the SRQ line to asynchronously  
request service from the Controller.  
Talker uses the EOI line to mark the end of a data  
message. Controller uses the EOI line when it conducts  
a parallel poll.  
© National Instruments Corp.  
1-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Introduction  
Chapter 1  
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. Figure 1-2 shows the linear and star configurations.  
Linear  
Configuration  
Device A  
Device B  
Device C  
Star  
Configuration  
Device D  
Device A  
Device B  
Device C  
Figure 1-2. Linear and Star System Configuration  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
1-4  
© National Instruments Corp.  
Chapter 1  
Introduction  
Controlling More Than One Board  
Multiboard drivers, such as the NI-488.2 driver for Windows, can control more than one  
interface board. Figure 1-3 shows an example of a multiboard system configuration.  
gpib0 is the access board for the voltmeter, and gpib1 is the access board for the  
plotter and printer. The control functions of the devices automatically access their  
respective boards.  
One  
GPIB  
Digital Voltmeter  
gpib0  
Plotter  
Another  
gpib1  
GPIB  
Printer  
Figure 1-3. Example of Multiboard System Setup  
Configuration Requirements  
To achieve the high data transfer rate that the GPIB was designed for, you must limit the  
physical distance between devices and the number of devices on the bus. The following  
restrictions are typical:  
A maximum separation of four meters between any two devices and an average  
separation of two meters over the entire bus.  
A maximum total cable length of 20 m.  
A maximum of 15 devices connected to each bus, with at least two-thirds powered on.  
© National Instruments Corp.  
1-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Introduction  
Chapter 1  
For high-speed operation, the following restrictions apply:  
All devices in the system must be powered on.  
Cable lengths as short as possible up to a maximum of 15 m of cable for each system.  
At least one equivalent device load per meter of cable.  
If you want to exceed these limitations, you can use bus extenders to increase the cable  
length or expander to increase the number of device loads. Extenders and expanders are  
available from National Instruments.  
The following sections describe the NI-488.2 software, which controls the flow of  
communication on the GPIB.  
The NI-488.2 Software Package  
The following section highlights important elements of the NI-488.2 software for  
Windows and describes the function of each element.  
NI-488.2 Driver and Driver Utilities  
The NI-488.2 software contains the following driver and utility files:  
readme.txtis a documentation file that contains important information about the  
NI-488.2 software and a description of any new features. Before you use the  
software, read this file for the most recent information.  
setup.exeis a Windows setup executable that installs the NI-488.2 software.  
gpib.dll is a 16-bit dynamic link library that implements the NI-488 and  
NI-488.2 functions.  
gpib.ini is the GPIB configuration information file that describes the default  
configuration of the NI-488.2 software.  
nivgpibd.386, the National Instruments virtual GPIB device, allows you to use  
DMA to transfer buffers located above 16 MB in memory. The setup program offers  
to install this virtual device for you.  
nivdmad.386is an improved version of the virtual DMA device (vdmad) used by  
Windows 3.0 in 386-enhanced mode. The setup program offers to install this virtual  
device for you if you are running Windows 3.0.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
1-6  
© National Instruments Corp.  
Chapter 1  
Introduction  
ibdiag.exeis a program that you can use to test the GPIB hardware and ensure  
that it is functioning properly.  
wibtest.exeis the Windows NI-488.2 software installation test.  
gpibinfo.exe is a utility you can use to obtain information about your GPIB  
hardware and software, such as the version of the NI-488.2 software and the type of  
interface board you are using.  
wibic.exeis an interactive control program that you use to communicate with the  
GPIB devices interactively using NI-488.2 functions and routines. It helps you to  
learn the NI-488.2 routines and to program your instrument or other GPIB devices.  
wibconf.exeis a software configuration program that changes the configuration  
parameters of the NI-488.2 software for Windows.  
gpibspy.exeis the GPIB activity monitor program. It is a debugging tool that you  
can use to monitor the NI-488.2 calls made by your Windows applications.  
C Language Files  
The NI-488.2 software contains the following C language files:  
readme.mcis a documentation file that contains information about the C language  
interface.  
gpib.lib is the Microsoft C (version 5.1 or higher) and Borland C++ (version 2.0  
or higher) language interface library. You must link this library with your application  
program so that your program can access the NI-488.2 dynamic link library.  
windecl.his an include file. It contains NI-488 function and NI-488.2 routine  
prototypes and various predefined constants.  
Visual Basic Language Files  
The distribution disk contains the following language files for Microsoft Visual Basic:  
readme.vbis a documentation file that contains information about the Visual Basic  
language interface.  
vbib.bas is the Visual Basic (version 1.0 or higher) language source file which  
defines the NI-488 functions and NI-488.2 routines that call the gpib.dll.  
niglobal.basis the Visual Basic global module that includes certain predefined  
constant declarations and declares the global variables.  
© National Instruments Corp.  
1-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Introduction  
Chapter 1  
Win 32s Files  
gpib-32.dllis a 32-bit translation dynamic link library that handles the 32-bit to  
16-bit translation.  
gpib-16.dllis a 16-bit translation dynamic link library.  
wibic32.exeis a Win32s version of the wibic application.  
Sample Application Files  
The NI-488.2 software includes nine sample applications along with source code for each  
language supported by the NI-488.2 software. For a detailed description of the sample  
application files, refer to Chapter 2, Application Examples.  
How the NI-488.2 Software Works with Windows  
The NI-488.2 driver is a standard 16-bit Windows DLL, which is loaded when a  
Windows GPIB application is executed. The NI-488.2 driver for Windows is unloaded  
when the last active GPIB application is exited.  
Figure 1-4 shows how the NI-488.2 software works with Windows and your GPIB  
hardware.  
WIBIC  
32-bit Utility  
for Using  
NI-488.2  
Commands  
Interactively  
WIBIC  
16-bit Utility  
for Using  
NI-488.2  
Commands  
Interactively  
Win 32s  
User  
Application  
Program  
Win16  
User  
Application  
Program  
Win 32s User  
Application  
Program that  
Uses Direct  
Entry  
Win16 User  
Application  
Program that  
Uses Direct  
Entry  
OR  
O
OR  
R
OR  
O
32-bit NI-488.2 Language Interface  
16-bit NI-488.2 Language Interface  
Windows  
32-bit NI-488.2  
Translation DLL  
16-bit NI-488.2  
Translation DLL  
16-bit NI-488.2 DLL  
GPIB Hardware Interface  
Figure 1-4. How the NI-488.2 Software Works with Windows  
NI-488.2 User DMoawnnuloaadl fforormWWiwnwd.oSwomsanuals.co1m-8. All Manuals Sear©ch NAnadtiDoonwanlloIands.truments Corp.  
Chapter 1  
Introduction  
Unloading and Reloading the NI-488.2 Driver  
The NI-488.2 driver for Windows is a dynamic link library (DLL), which is loaded and  
unloaded automatically. When a Windows application first accesses the NI–488.2 DLL,  
it loads the DLL into memory. When the last Windows application using the NI-488.2  
DLL has exited, the DLL is unloaded from memory.  
The NI-488.2 DLL might use the services of the virtual device driver, nivgpibd.386.  
If you have more than 16 MB of RAM in your computer and you use DMA to read from  
and write to your GPIB instrument, then you must have the nivgpibd.386device  
installed. If it is not installed, the EDMA error might be returned.  
You can remove the nivgpibd.386device by editing the system.inifile as  
follows:  
1. Locate the system.inifile in the Windows directory (usually c:\windows).  
2. Find the line in the [386Enh] section that is of the following form:  
device = drive:\path\nivgpibd.386  
where drive is the drive (usually c) and path is the path where the NI-488.2  
software is installed (for example, c:\at-gpibw).  
3. Change this command line to a comment by adding a semicolon at the beginning of  
the line as follows:  
;device = drive:\path\nivgpibd.386  
4. Restart Windows so that the change in system.inican take effect.  
© National Instruments Corp.  
1-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 2  
Application Examples  
This chapter contains nine sample applications designed to illustrate specific GPIB  
concepts and techniques that can help you write your own applications. The description  
of each example includes the programmer's task, a program flowchart, and numbered  
steps which correspond to the numbered blocks on the flowchart.  
Use this chapter along with your NI-488.2 software, which includes the C and Visual  
Basic source code for each of the nine examples. The programs are listed in order of  
increasing complexity. If you are new to GPIB programming, you might want to study  
the contents and concepts of the first sample, simple.c, before moving on to more  
complex examples.  
The following example programs are included with your NI-488.2 software:  
simple.c is the source code file for Example 1. It illustrates how you can establish  
communication between a host computer and a GPIB device.  
clr_trg.cis the source code file for Example 2. It illustrates how you can clear  
and trigger GPIB devices.  
asynch.c is the source code file for Example 3. It illustrates how you can perform  
non-GPIB tasks while data is being transferred over the GPIB.  
eos.c is the source code file for Example 4. It illustrates the concept of the end-of-  
string (EOS) character.  
rqs.c is the source code file for Example 5. It illustrates how you can communicate  
with GPIB devices that use the GPIB SRQ line to request service. This sample is  
written using NI-488 functions.  
easy4882.cis the source code file for Example 6. It is an introduction to NI-488.2  
routines.  
rqs4882.cis the source code file for Example 7. It uses NI-488.2 routines to  
communicate with GPIB devices that use the GPIB SRQ line to request service.  
ppoll.c is the source code file for Example 8. It uses NI-488.2 routines to conduct  
parallel polls.  
non_cic.cis the source code file for Example 9. It illustrates how you can use the  
NI-488.2 driver in a non-Controller application.  
© National Instruments Corp.  
2-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Application Examples  
Chapter 2  
Example 1: Basic Communication  
This example focuses on the basics of establishing communication between a host  
computer and a GPIB device.  
A technician needs to monitor voltage readings using a GPIB multimeter. His computer  
is equipped with an IEEE 488.2 interface board. The NI-488.2 software is installed, and  
a GPIB cable runs from the computer to the GPIB port on the multimeter.  
The technician is familiar with the multimeter remote programming command set. This  
list of commands is specific to his multimeter and is available from the multimeter  
manufacturer.  
He sets up the computer to direct the multimeter to take measurements and record each  
measurement as it occurs. To do this, he has written an application that uses some simple  
high-level GPIB commands. The following steps correspond to the program flowchart in  
Figure 2-1.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application sends the multimeter an instruction, setting it up to take voltage  
measurements in autorange mode.  
3. The application sends the multimeter an instruction to take a voltage measurement.  
4. The application tells the multimeter to transmit the data it has acquired to the  
computer.  
The process of requesting a measurement and reading from the multimeter (Steps 3  
and 4) is repeated as long as there are readings to be obtained.  
5. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-2  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
Computer  
INIT  
Multimeter  
1
2
ibwrt  
Set Up Multimeter  
to Take Voltages  
"VOLTS DC;AUTO"  
"VOLTS?"  
ibwrt  
Tell Multimeter to  
Take Measurement  
3
4
ibrd  
Read  
Measurement  
from Multimeter  
"+ 5 volts"  
Finished Getting  
Measurements?  
No  
Yes  
5
CLEAN UP  
Figure 2-1. Program Flowchart for Example 1  
© National Instruments Corp.  
2-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Application Examples  
Chapter 2  
Example 2: Clearing and Triggering Devices  
This example illustrates how you can clear and trigger GPIB devices.  
Two freshman physics lab partners are learning how to use a GPIB digital oscilloscope.  
They have successfully loaded the NI-488.2 software on a personal computer and  
connected their GPIB board to a GPIB digital oscilloscope. Their current lab assignment  
is to write a small application to practice using the oscilloscope and its command set  
using high-level GPIB commands. The following steps correspond to the program  
flowchart in Figure 2-2.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application sends a GPIB clear command to the oscilloscope. This command  
clears the internal registers of the oscilloscope, reinitializing it to default values and  
settings.  
3. The application sends a command to the oscilloscope telling it to read a waveform  
each time it is triggered. Predefining the task in this way decreases the execution  
time required. Each trigger of the oscilloscope is now sufficient to get a new run.  
4. The application sends a GPIB trigger command to the oscilloscope which causes it to  
acquire data.  
5. The application queries the oscilloscope for the acquired data. The oscilloscope  
sends the data.  
6. The application reads the data from the oscilloscope.  
7. The application calls an external graphics routine to display the acquired waveform.  
Steps 4, 5, 6, and 7 are repeated until all of the desired data has been acquired by the  
oscilloscope and received by the computer.  
8. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-4  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
Computer  
INIT  
Oscilloscope  
1
2
3
ibclr  
Clear  
Clear  
Oscilloscope  
Command  
ibwrt  
Define Task to Be Done  
When Oscilloscope is  
Triggered  
"WAV=TRIG"  
ibtrg  
Trigger  
Oscilloscope to  
Get Reading  
Trigger  
Command  
4
ibwrt  
Request Data  
from  
"CURV?"  
Data  
5
6
7
Oscilloscope  
ibrd  
Read Data  
from  
Oscilloscope  
Display  
Waveform  
No  
Finished  
Reading?  
Yes  
CLEAN UP  
8
Figure 2-2. Program Flowchart for Example 2  
© National Instruments Corp.  
2-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Application Examples  
Chapter 2  
Example 3: Asynchronous I/O  
This example illustrates how an application conducts data transfers with a GPIB device  
and immediately returns to perform other non-GPIB related tasks while GPIB I/O is  
occurring in the background. This asynchronous mode of operation is particularly useful  
when the requested GPIB activity may take some time to complete.  
In this example, a research biologist is trying to obtain CAT scans of a laboratory  
animal's liver. She will print out a color copy of each scan as it is acquired. The entire  
operation is computer-controlled. The CAT scan machine sends the images it acquires to  
a computer that has the NI-488.2 software installed and is connected to a GPIB color  
printer . The biologist is familiar with the command set of her color printer, as described  
in the color printer's user manual. She acquires and prints images with the aid of an  
application program she wrote using high-level GPIB commands. The following steps  
correspond to the program flowchart in Figure 2-3.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. An image is scanned in.  
3. The application sends the GPIB printer a command to print the new image and  
immediately returns without waiting for the I/O operation to be completed.  
4. The application saves the image obtained to a file.  
5. The application inquires as to whether the printing operation has completed by  
issuing a GPIB wait command. If the status reported by the wait command indicates  
completion (CMPL is in the status returned) and more scans need to be acquired,  
Steps 2 through 5 are repeated until the scans have all been acquired. If the status  
reported by the wait command in Step 5 does not indicate that printing is finished,  
statistical computations are performed on the scan obtained and Step 5 is repeated.  
6. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-6  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
Computer  
INIT  
Color Printer  
1
2
Image  
Scan  
ibwrta  
Print Image  
3
4
Print Image  
Asynchronously  
Non-GPIB  
Activity: Save  
to Disk  
ibwait  
No  
Is GPIB  
Printing  
Done?  
5
Non-GPIB Activity:  
Compute Statistics  
Yes  
Yes  
More  
Images?  
No  
CLEAN UP  
6
Figure 2-3. Program Flowchart for Example 3  
© National Instruments Corp.  
2-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Application Examples  
Chapter 2  
Example 4: End-of-String Mode  
This example illustrates how to use the end-of-string modes to detect that the GPIB  
device has finished sending data.  
A journalist is using a GPIB scanner to scan some pictures into his personal computer for  
a news story. A GPIB cable runs between the scanner and the computer. He is using an  
application written by an intern in the department who has read the scanner's instruction  
manual and is familiar with the scanner's programming requirements. The following  
steps correspond to the program flowchart in Figure 2-4.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application sends a GPIB clear message to the scanner, initializing it to its  
power-on defaults.  
3. The scanner needs to detect a delimiter indicating the end of a command. In this  
case, the scanner expects the commands to be terminated with <CR><LF> (carriage  
return, \r, and linefeed, \n). The application sets its end-of-string (EOS) byte to  
<LF>. The linefeed code indicates to the scanner that no more data is coming, and is  
called the end-of-string byte. It flags an end-of-string condition for this particular  
GPIB scanner. The same effect could be accomplished by asserting the EOI line  
when the command is sent.  
4. With the exception of the scan resolution, all the default settings are appropriate for  
the task at hand. The application changes the scan resolution by writing the  
appropriate command to the scanner.  
5. The scanner sends back information describing the status of the change resolution  
command. This is a string of bytes terminated by the end-of-string character to tell  
the application it is done changing the resolution.  
6. The application starts the scan by writing the scan command to the scanner.  
7. The application reads the scan data into the computer.  
8. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-8  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
Scanner  
Computer  
INIT  
1
ibclr  
Reset  
Internal  
State  
Clear  
Command  
2
3
ibeos  
Set EOS  
Mode  
ibwrt  
Change  
Scan  
4
5
"RES:3 \ r \ n"  
"OK"  
Resolution  
ibrd  
Read Status  
ibwrt  
Start Scan  
6
7
8
"scan \ r \ n"  
ibrd  
Read  
Data  
Scanned  
Data  
CLEAN UP  
Figure 2-4. Program Flowchart for Example 4  
© National Instruments Corp.  
2-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Application Examples  
Chapter 2  
Example 5: Service Requests  
This example illustrates how an application communicates with a GPIB device that uses  
the GPIB service request (SRQ) line to indicate that it needs attention.  
A graphic arts designer is transferring digital images stored on her computer to a roll of  
color film, using a GPIB digital film recorder. A GPIB cable connects the GPIB port on  
the film recorder to the IEEE 488.2 interface board installed in her computer. She has  
installed the NI-488.2 software on the host computer and is familiar with the  
programming instructions for the film recorder, as described in the film recorder's user  
manual. She places a fresh roll of film in the camera and launches a simple application  
she has written using high-level GPIB commands. With the aid of the application, she  
records a few images on film. The following steps correspond to the program flowchart  
in Figure 2-5.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application brings the film recorder to a ready state by issuing a device clear  
instruction. The film recorder is now set up for operation using its default values.  
(The graphic arts designer has previously established that the default values for the  
film recorder are appropriate for the type of film she is using.)  
3. The application advances the new roll of film into position so the first image can be  
exposed on the first frame of film. This is done by sending the appropriate  
instructions as described in the film recorder programming guide.  
4. The application waits for the film recorder to signify that it is done loading the film,  
by waiting for RQS (request for service). The film recorder asserts the GPIB SRQ  
line when it has finished loading the film.  
5. As soon as the film recorder asserts the GPIB SRQ line, the application’s wait for the  
RQS event completes. The application conducts a serial poll by sending a special  
command message to the film recorder that directs it to return a response in the form  
of a serial poll status byte. This byte contains information indicating what kind of  
service the film recorder is requesting or what condition it is flagging. In this  
example, it indicates the completion of a command.  
6. A color image transfers to the digital film recorder in three consecutive passes–one  
pass each for the red, green and blue components of the image. Sub-steps 6a, 6b,  
and 6c are repeated for each of the passes:  
6a. The application sends a command to the film recorder directing it to accept data  
to create a single pass image. The film recorder asserts the SRQ line as soon as  
a pass is completed.  
6b. The application waits for RQS.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-10  
© National Instruments Corp.  
Chapter 2  
Application Examples  
6c. When the SRQ line is asserted, the application serial polls the film recorder to  
see if it requested service, as in Step 5.  
7. The application issues a command to the film recorder to advance the film by one  
frame. The advance occurs successfully unless the end of film is reached.  
8. The application waits for RQS, which completes when the film recorder asserts the  
SRQ line to signal it is done advancing the film.  
9. As soon as the application's wait for RQS completes, the application serial polls the  
film recorder to see if it requested service, as in Step 5. The returned serial poll  
status byte indicates either of two conditions–the film recorder finished advancing  
the film as requested or the end of film was reached and it can no longer advance.  
Steps 6 through 9 are repeated as long as film is in the camera and more images need  
to be recorded.  
10. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m1.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Application Examples  
Chapter 2  
GPIB Cable  
Digital Film Recorder  
Computer  
INIT  
1
ibclr  
Clear Film Recorder  
Clear Command  
2
3
ibwrt  
Advance  
Film  
"FRM+"  
ibwait  
Request  
Service  
Wait for the  
Film Recorder to  
Request Service  
4
5
Did You Request  
Service ?  
Yes  
ibrsp  
Read  
Response from  
the Film  
Response  
Recorder  
Finished  
Loading  
Film?  
No  
Exit Application  
and Repair  
Film Recorder  
Yes  
(continues)  
Figure 2-5. Program Flowchart for Example 5  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-12  
© National Instruments Corp.  
Chapter 2  
Application Examples  
(Continued)  
Digital Film Recorder  
Computer  
Yes  
ibwrt  
Create a  
Single Pass  
Image  
Data for Red, Green,  
6a  
or Blue Pass  
ibwait  
6
These steps  
are repeated 3  
times, once for  
each color  
pass  
Request  
Service  
Wait for Film  
Recorder to  
Request  
Did You Request  
Service?  
6b  
6c  
Service  
Yes  
ibrsp  
Read Response  
From Film  
Response  
Recorder  
ibwrt  
"ADV"  
Advance Film  
7
8
ibwait  
Request  
Service  
Wait for Film  
Recorder to  
Request  
Did You Request  
Service?  
Service  
Yes  
ibrsp  
Read Response From  
Film Recorder  
9
Response  
Reached  
End of  
Film?  
No  
Yes  
CLEAN UP  
10  
Figure 2-5. Program Flowchart for Example 5 (Continued)  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m1.3All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Application Examples  
Chapter 2  
Example 6: Basic Communication with  
IEEE 488.2-Compliant Devices  
This example is an introduction to communicating with IEEE 488.2-compliant devices.  
A test engineer in a metal factory is using IEEE 488.2-compliant tensile testers to  
determine the strength of metal rods as they come out of production. There are several  
tensile testers and they are all connected to a central computer equipped with an IEEE  
488.2 interface board. These machines are fairly voluminous and it is difficult for the  
engineer to reach the address switches of each machine. For the purposes of his future  
work with these tensile testers, he needs to determine the setting of each GPIB address  
switch. He can do so with the aid of a simple application he has written. The following  
steps correspond to the program flowchart in Figure 2-6.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application issues a command to detect the presence of listening devices on the  
GPIB and compiles a list of the addresses of all such devices.  
3. The application sends an identification query ("*IDN?") to all of the devices  
detected on the GPIB in Step 2.  
4. The application reads the identification information returned by each of the devices  
as it responds to the query in Step 3.  
5. As a cleanup step before exiting, the application returns the interface board back to  
its original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-14  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
GPIB Cable  
GPIB Cable  
Tensile Tester 3  
Computer  
INIT  
Tensile Tester 1 Tensile Tester 2  
1
2
FindLstn  
Who's  
Listening?  
Get a List  
of Devices  
Present on  
GPIB  
Device 1  
is Here  
Device 2  
is Here  
Device 3  
is Here  
Send  
Tell Device 1  
to Identify  
Itself  
3
"*IDN?"  
Receive  
Read  
Response  
from  
4
3
"MUTT 10383"  
Device 1  
Send  
Tell Device  
2 to Identify  
Itself  
"*IDN?"  
Receive  
Read  
Response  
from  
4
3
"MUTT 10426"  
Device 2  
Send  
Tell Device  
3 to Identify  
Itself  
"*IDN?"  
Receive  
Read  
Response  
from  
"MUTT 10528"  
4
5
Device 3  
CLEAN UP  
Figure 2-6. Program Flowchart for Example 6  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m1.5All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Application Examples  
Chapter 2  
Example 7: Serial Polls Using NI-488.2 Routines  
This example illustrates how you can take advantage of the NI-488.2 routines to reduce  
the complexity of performing serial polls of multiple devices.  
A candy manufacturer is using GPIB strain gauges to measure the consistency of the  
syrup used to make candy. The plant has four big mixers containing syrup. The syrup  
has to reach a certain consistency to make good quality candy. This is measured by strain  
gauges that monitor the amount of pressure used to move the mixer arms. When a certain  
consistency is reached, the mixture is removed and a new batch of syrup is poured in the  
mixer. The GPIB strain gauges are connected to a computer with an IEEE 488.2  
interface board and the NI-488.2 software installed. The process is controlled by an  
application that uses NI-488.2 routines to communicate with the IEEE 488.2-compliant  
strain gauges. The following steps correspond to the program flowchart in Figure 2-7.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application configures the strain gauges to request service when they have a  
significant pressure reading or a mechanical failure occurs. They signal their request  
for service by asserting the SRQ line.  
3. The application waits for one or more of the strain gauges to indicate that they have a  
significant pressure reading. This wait event ends as soon as the SRQ line is  
asserted.  
4. The application serial polls each of the strain gauges to see if it requested service.  
5. Once the application has determined which one of the strain gauges requires service,  
it takes a reading from that strain gauge.  
6. If the reading matches the desired consistency, a dialog window appears on the  
computer screen and prompts the mixer operator to remove the mixture and start a  
new batch. Otherwise, a dialog window prompts the operator to service the mixer in  
some other way.  
Steps 3 through 6 are repeated as long as the mixers are in operation.  
7. After the last batch of syrup has been processed, the application returns the interface  
board to its original state by taking it offline.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-16  
© National Instruments Corp.  
Chapter 2  
Application Examples  
GPIB Cable  
GPIB Cable  
GPIB Cable  
Strain  
Gauge 2  
Strain  
Gauge 3  
Computer  
INIT  
Strain  
Gauge 1  
1
SendList  
Configure Strain  
Gauges to  
2
"SRQ=HI"  
Request Service  
When They  
Have a Reading  
WaitSRQ  
Wait for 1 or More  
Strain Gauges to  
Request Service  
Request  
Service  
3
4
FindRQS  
Did You Request  
Serial Poll Each  
Strain Gauge  
Until One  
Requesting  
Service is  
Located  
Service?  
No  
Did You Request  
Service?  
Yes  
Receive  
Get a Reading  
From Strain  
Gauge  
Response  
5
Does the  
Gauge Need  
Service?  
Yes  
No  
Provide  
Whatever  
Service is  
Required  
Mixture is Ready.  
Display "Remove  
Mixture"  
6
Message  
Done for  
the  
Day?  
No  
Yes  
7
CLEAN UP  
Figure 2-7. Program Flowchart for Example 7  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m1.7All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Application Examples  
Chapter 2  
Example 8: Parallel Polls  
This example illustrates how you can use NI-488.2 routines to obtain information from  
several IEEE 488.2-compliant devices at once using a procedure called parallel polling.  
The process of manufacturing a particular alloy involves bringing three different metals  
to specific temperatures before mixing them to form the alloy. Three vats are used, each  
containing a different metal. Each is monitored by a GPIB ore monitoring unit. The  
monitoring unit consists of a GPIB temperature transducer and a GPIB power supply.  
The temperature transducer is used to probe the temperature of each metal. The power  
supply is used to start a motor to pour the metal into the mold when it reaches a  
predefined temperature. The three monitoring units are connected to the IEEE 488.2  
interface board of a computer that has the NI-488.2 software installed. An application  
using NI-488.2 routines operates the three monitoring units. The application will obtain  
information from the multiple units by conducting a parallel poll, and will then determine  
when to pour the metals into the mixture tank. The following steps correspond to the  
program flowchart in Figure 2-8.  
1. The application initializes the GPIB by bringing the interface board in the computer  
online.  
2. The application configures the temperature transducer in the first monitoring unit by  
choosing which of the eight GPIB data lines the transducer uses to respond when a  
parallel poll is conducted. The application also sets the temperature threshold. The  
transducer manufacturer has defined the individual status (ist) bit to be true when  
the temperature threshold is reached, and the configured status mode of the  
transducer is assert the data line. When a parallel poll is conducted, the transducer  
asserts its data line if the temperature has exceeded the threshold.  
3. The application configures the temperature transducer in the second monitoring unit  
for parallel polls.  
4. The application configures the temperature transducer in the third monitoring unit for  
parallel polls.  
5. The application conducts non-GPIB activity while the metals are heated.  
6. The application conducts a parallel poll of all three temperature transducers to  
determine whether the metals have reached the appropriate temperature. Each  
transducer asserts its data line during the configuration step if its temperature  
threshold has been reached.  
7. If the response to the poll indicates that all three metals are at the appropriate  
temperature, the application sends a command to each of the three power supplies,  
directing them to power on. Then the motors start and the metals pour into the mold.  
If only one or two of the metals is at the appropriate temperature, Steps 5 and 6 are  
repeated until the metals can be successfully mixed.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-18  
© National Instruments Corp.  
Chapter 2  
Application Examples  
8. The application unconfigures all of the transducers so that they no longer participate  
in parallel polls.  
9. As a cleanup step before exiting, the application returns the interface board to its  
original state by taking it offline.  
GPIB  
Cable  
GPIB  
Cable  
GPIB  
Cable  
GPIB  
Cable  
GPIB  
Cable  
GPIB Cable  
Computer  
UNIT 1  
UNIT 2  
UNIT 3  
Temp  
Power  
Supply  
Temp  
Power  
Temp  
Power  
Transducer  
Transducer Supply  
Transducer Supply  
1
INIT  
PPollConfig  
Configure  
Transducer 1 for  
Parallel Polls  
Parallel Poll  
Enable  
2
PPollConfig  
Configure  
Transducer 2  
for Parallel Polls  
Parallel Poll  
Enable  
3
4
PPollConfig  
Configure  
Transducer 3  
for Parallel Polls  
Parallel Poll  
Enable  
Non-GPIB  
Activity  
5
6
PPoll  
Parallel Poll  
Are All  
Metals  
Ready?  
No  
Yes  
Yes  
Yes  
Yes  
SendList  
"MIX ON"  
Start Power  
Supplies  
7
PPollUnconfig  
PPoll  
8
9
Parallel Poll  
Disable  
Unconfigure  
CLEAN UP  
Figure 2-8. Program Flowchart for Example 8  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m1.9All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Application Examples  
Chapter 2  
Example 9: Non-Controller Example  
This example illustrates how you can use the NI-488.2 software to emulate a GPIB  
device that is not the GPIB Controller.  
A software engineer has written firmware to emulate a GPIB device for a research project  
and is testing it using an application that makes simple GPIB calls. The following steps  
correspond to the program flowchart in Figure 2-9.  
1. The application brings the device online.  
2. The application waits for any of three events to occur: the device to become listen-  
addressed, become talk-addressed, or receive a GPIB clear message.  
3. As soon as one of the events occurs, the application takes an action based upon the  
event that occurred. If the device was cleared, the application resets the internal state  
of the device to default values. If the device was talk-addressed, it writes data back  
to the Controller. If the device was listen-addressed, it reads in new data from the  
Controller.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
2-20  
© National Instruments Corp.  
Chapter 2  
Application Examples  
Device  
INIT  
Controller  
1
ibwait  
Wait to be Talk  
Addressed,  
Listen  
Addressed, or  
Cleared  
fffffffffff  
2
Reset  
Internal  
State  
Is This the  
Clear Event?  
3
Yes  
No  
Is This the  
Talk  
Addressed  
Event?  
No  
Yes  
ibwrt  
Write Out  
New Data  
Data  
Data  
3
3
ibrd  
Read In  
New Data  
Figure 2-9. Program Flowchart for Example 9  
© National Instruments Corp.  
Download from Www.Somanuals.c2o-m2.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Chapter 3  
Developing Your Application  
This chapter explains how to develop a GPIB application program using NI-488  
functions and NI-488.2 routines.  
Choosing How to Access the NI-488.2 DLL  
Applications can access the NI-488.2 dynamic link library (gpib.dll) either by using  
the NI-488.2 language interfaces for C or Visual Basic, or by directly accessing the  
gpib.dll. The NI-488.2 language interface is the easiest and fastest method, and it is  
adequate for most applications.  
If you want to access the gpib.dll from languages other than C and Visual Basic, or if  
you have special needs for accessing the gpib.dll, then you must use the direct entry  
functions. These functions are identical to the NI-488 and NI-488.2 calls, except for the  
following two differences:  
You must preface each function name by the characters DLL. For example, instead of  
using the NI-488 function ibwrt, use the direct entry function DLLibwrt.  
The number of arguments taken by each function is increased by three. The last three  
parameters are, in order, a pointer to the ibsta variable, a pointer to the iberr  
variable, and a pointer to the ibcntl variable. Your application must declare its  
own ibsta, iberr, and ibcntl variables to use the direct entry functions.  
Choosing Between NI-488 Functions and NI-488.2 Routines  
Your NI-488.2 software includes two distinct sets of subroutines to meet your application  
needs. For most application programs, the NI-488 functions are sufficient. You should  
use the NI-488.2 routines if you have a complex configuration with one or more interface  
boards and multiple devices.  
The following sections discuss some differences between NI-488 functions and NI-488.2  
routines.  
© National Instruments Corp.  
3-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Developing Your Application  
Chapter 3  
Using NI-488 Functions: One Device for Each Board  
If your system has only one device attached to each board, the NI-488 functions are  
probably sufficient for your programming needs. Some other factors that make the  
NI-488 functions more convenient include the following:  
With NI-488 asynchronous I/O functions (ibcmda, ibrda, and ibwrta), you can  
initiate an I/O sequence while maintaining control over the CPU for non-GPIB tasks.  
NI-488 functions include built-in file transfer functions (ibrdf and ibwrtf).  
With NI-488 functions, you can control the bus in non-typical ways or communicate  
with non-compliant devices.  
The NI-488 functions consist of high-level (or device) functions that hide much of the  
GPIB management operations and low-level (or board) functions that offer you more  
control over the GPIB than NI-488.2 routines. The following sections describe these  
different function types.  
NI-488 Device Functions  
Device functions are high-level functions that automatically execute commands that  
handle bus management operations such as reading from and writing to devices or polling  
them for status. If you use device functions, you do not need to understand GPIB  
protocol or bus management. For information about device-level calls and how they  
manage the GPIB, refer to Device-Level Calls and Bus Management, in Chapter 7, GPIB  
Programming Techniques.  
NI-488 Board Functions  
Board functions are low-level functions that perform rudimentary GPIB operations.  
Board functions access the interface board directly and require you to handle the  
addressing and bus management protocol. In cases when the high-level device functions  
might not meet your needs, low-level board functions give you the flexibility and control  
to handle situations such as the following:  
Communicating with non-compliant (non-IEEE 488.2) devices  
Altering various low-level board configurations  
Managing the bus in non-typical ways  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-2  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
The NI-488 board functions are compatible with, and can be interspersed within,  
sequences of NI-488.2 routines. When you use board functions within a sequence of  
NI-488.2 routines, you do not need a prior call to ibfind to obtain a board descriptor.  
You simply substitute the board index as the first parameter of the board function call.  
With this flexibility, you can handle non-standard or unusual situations that you cannot  
resolve using NI-488.2 routines only.  
Using NI-488.2 Routines: Multiple Boards and/or Multiple Devices  
When your system includes a board that must access more than one device, use the  
NI-488.2 routines. NI-488.2 routines can perform the following tasks with a single call:  
Find all of the Listeners on the bus  
Find a device requesting service  
Determine the state of the SRQ line, or wait for SRQ to be asserted  
Address multiple devices to listen  
Checking Status with Global Variables  
Each NI-488 function and NI-488.2 routine updates the global variables to reflect the  
status of the device or board that you are using. The status word (ibsta), the error  
variable (iberr), and the count variables (ibcnt and ibcntl) contain useful  
information about the performance of your application program. Your program should  
check these variables frequently. The following sections describe each of these global  
variables and how you can use them in your application program.  
Status Word – ibsta  
All functions update a global status word, ibsta, which contains information about the  
state of the GPIB and the GPIB hardware. Most of the NI-488 functions return the value  
stored in ibsta. You can test for conditions reported in ibstato make decisions  
about continued processing, or you can debug your program by checking ibstaafter  
each call.  
ibsta is a 16-bit value. A bit value of one (1) indicates that a certain condition is in  
effect. A bit value of zero (0) indicates that the condition is not in effect. Each bit in  
ibsta can be set for NI-488 device calls (dev), NI-488 board calls and NI-488.2 calls  
(brd), or all (dev, brd).  
© National Instruments Corp.  
3-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Developing Your Application  
Chapter 3  
Table 3-1 shows the condition that each bit position represents, the bit mnemonics, and  
the type of calls for which each bit can be set. For a detailed explanation of each of the  
status conditions, refer to Appendix A, Status Word Conditions.  
Table 3-1. Status Word (ibsta) Layout  
Bit  
Pos.  
Hex  
Value  
Mnemonic  
ERR  
Type  
dev, brd  
dev, brd  
dev, brd  
brd  
Description  
15  
14  
13  
12  
11  
10  
8000  
4000  
2000  
1000  
800  
GPIB error  
TIMO  
END  
Time limit exceeded  
END or EOS detected  
SRQ interrupt received  
Device requesting service  
SRQI  
RQS  
dev  
SPOLL  
400  
brd  
Board has been serial polled by  
Controller  
EVENT  
CMPL  
LOK  
9
8
7
6
5
4
3
2
1
0
200  
100  
80  
40  
20  
10  
8
brd  
dev, brd  
brd  
DCAS, DTAS, or IFC event has occurred  
I/O completed  
Lockout State  
REM  
brd  
Remote State  
CIC  
brd  
Controller-In-Charge  
Attention is asserted  
Talker  
ATN  
brd  
TACS  
LACS  
DTAS  
DCAS  
brd  
4
brd  
Listener  
2
brd  
Device Trigger State  
Device Clear State  
1
brd  
The language header files included on your distribution disk contain the mnemonic  
constants for ibsta. You can check a bit position in ibstaby using its numeric value  
or its mnemonic constant. For example, bit position 15 (hex 8000) detects a GPIB error.  
The mnemonic for this bit is ERR. To check for a GPIB error, use either of the following  
statements after each NI-488 function and NI-488.2 routine as shown:  
if (ibsta & ERR) gpiberr();  
or  
if (ibsta & 0x8000) gpiberr();  
where gpiberr()is an error handling routine.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-4  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Error Variable iberr  
If the ERR bit is set in the status word (ibsta), a GPIB error has occurred. When an  
error occurs, the error type is specified by the value in iberr.  
Note: The value in iberris meaningful as an error type only when the ERR bit is  
set, indicating that an error has occurred.  
For more information on error codes and solutions refer to Chapter 4, Debugging Your  
Application, or Appendix B, Error Codes and Solutions.  
Count Variables ibcnt and ibcntl  
The count variables are updated after each read, write, or command function. ibcntis a  
16-bit integer and ibcntl is a 32-bit integer. If you are reading data, the count  
variables indicate the number of bytes read. If you are sending data or commands, the  
count variables reflect the number of bytes sent.  
In your application program, you can use the count variables to null-terminate an ASCII  
string of data received from an instrument. For example, if data is received in an array of  
characters, you can use ibcntlto null-terminate the array and print the measurement on  
the screen as follows:  
char rdbuf[512];  
ibrd (ud, rdbuf, 20L);  
if (!(ibsta & ERR)){  
rdbuf[ibcntl] = '\0';  
printf ("Read: %s\n", rdbuf);  
}
else {  
error();  
}
ibcntl is the number of bytes received. Data begins in the array at index zero (0);  
therefore, ibcntlis the position for the null character that marks the end of the string.  
Using wibic to Communicate with Devices  
Before you begin writing your application program, you might want to use the wibic  
utility. With wibic (Windows Interface Bus Interactive Control), you communicate  
with your instruments from the keyboard rather than from an application program. You  
can use wibicto learn to communicate with your instruments using the NI-488  
functions or NI-488.2 routines. For specific device communication instructions, refer to  
the user manual that came with your instrument. For information about using wibic  
and for detailed examples, refer to Chapter 5, wibic–Windows Interface Bus Interactive  
Control Utility.  
After you have learned how to communicate with your devices in wibic, you are ready  
to begin writing your application program.  
© National Instruments Corp.  
3-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Developing Your Application  
Chapter 3  
Writing Your NI-488 Application  
This section discusses items you should include in your application program, general  
program steps, and an NI-488 example. In this manual the example code is presented in  
C. The NI-488.2 software includes the source code for C (devsamp.c), Visual Basic  
(devsamp.bas), direct entry functions in C (dlldev.c), and direct entry functions in  
Visual Basic (dlldev.bas).  
The NI-488.2 software also includes the source code for nine application examples,  
which are described in Chapter 2, Application Examples.  
Items to Include  
Include the appropriate GPIB header file. This file contains prototypes for the NI-488  
functions and constants that you can use in your application program.  
Check for errors after each NI-488 function call.  
Declare and define a function to handle GPIB errors. This function takes the device  
offline and closes the application. If the function is declared as:  
void gpiberr (char * msg); /* function prototype */  
then your application invokes it as follows:  
if (ibsta & ERR) {  
gpiberr ("GPIB error");  
}
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-6  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
NI-488 Program Shell  
Figure 3-1 is a flowchart of the steps to create your application program using device-  
level NI-488 functions.  
START  
Open Device (ibdev)  
Are All  
No  
Devices  
Open?  
Yes  
Make a Device-Level Call  
• Send Data to Device  
(ibwrt)  
(ibrd)  
• Receive Data from Device  
• Clear Device  
(ibclr)  
(ibrsp)  
• Serial Poll Device  
and so on  
No  
Finished GPIB  
Programming?  
Yes  
Close Device (ibonl)  
Closed All  
Devices?  
No  
Yes  
END  
Figure 3-1. General Program Shell Using NI-488 Device Functions  
© National Instruments Corp.  
3-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Developing Your Application  
Chapter 3  
General Program Steps and Examples  
The following steps demonstrate how to use the NI-488 device functions in your  
program. This example configures a digital multimeter, reads 10 voltage measurements,  
and computes the average of these measurements.  
Step 1. Open a Device  
Your first NI-488 function call should be to ibdevto open a device.  
ud = ibdev(0, 1, 0 , T10s, 1, 0);  
if (ibsta & ERR) {  
gpiberr("ibdev error");  
}
The input arguments of the ibdev function are as follows:  
0 - board index for GPIB0  
1 - primary GPIB address of the device  
0 - no secondary GPIB address for the device  
T10s - I/O timeout value (10 s)  
1 - send END message with the last byte when writing to device  
0 - disable EOS detection mode  
When you call ibdev, the driver automatically initializes the GPIB by sending an  
Interface Clear (IFC) message and placing the device in remote programming state.  
Step 2. Clear the Device  
Clear the device before you configure the device for your application. Clearing the  
device resets its internal functions to a default state.  
ibclr(ud);  
if (ibsta & ERR) {  
gpiberr("ibclr error");  
}
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-8  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Step 3. Configure the Device  
After you open and clear the device, it is ready to receive commands. To configure the  
instrument, you send device-specific commands using the ibwrt function. Refer to the  
instrument user manual for the command bytes that work with your instrument.  
ibwrt(ud, "*RST; VAC; AUTO; TRIGGER 2; *SRE 16", 35L);  
if (ibsta & ERR) {  
gpiberr("ibwrt error");  
}
The programming instruction in this example resets the multimeter (*RST). The meter is  
instructed to measure the volts alternating current (VAC) using auto-ranging (AUTO), to  
wait for a trigger from the GPIB interface board before starting a measurement  
(TRIGGER 2), and to assert the SRQ line when the measurement completes and the  
multimeter is ready to send the result (*SRE 16).  
Step 4. Trigger the Device  
If you configure the device to wait for a trigger, you must send a trigger command to the  
device before reading the measurement value. Then instruct the device to send the next  
triggered reading to its GPIB output buffer.  
ibtrg(ud);  
if (ibsta & (ERR 1 TIMO)) {  
gpiberr("ibtrg error");  
}
ibwrt(ud,"VAL1?", 5L);  
if (ibsta & ERR) {  
gpiberr("ibwrt error");  
}
Step 5. Wait for the Measurement  
After you trigger the device, the RQS bit is set when the device is ready to send the  
measurement. You can detect RQS by using the ibwait function. The second  
parameter indicates what you are waiting for. Notice that the ibwait function also  
returns when the I/O timeout value is exceeded.  
printf("Waiting for RQS...\n");  
ibwait (ud, TIMO| RQS);  
if (ibsta & (ERR | TIMO)) {  
gpiberr("ibwait error");  
}
When SRQ has been detected, serial poll the instrument to determine if the measured data  
is valid or if a fault condition exists. For IEEE 488.2 instruments, you can find out by  
checking the message available (MAV) bit, bit 4 in the status byte that you receive from  
the instrument.  
© National Instruments Corp.  
3-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Developing Your Application  
Chapter 3  
ibrsp (ud, &StatusByte);  
if (ibsta & ERR) {  
gpiberr("ibrsp error");  
}
if ( !(StatusByte & MAVbit)) {  
gpiberr("Improper Status Byte");  
printf(" Status Byte = 0x%x\n", StatusByte);  
}
Step 6. Read the Measurement  
If the data is valid, read the measurement from the instrument. (AsciiToFloatis a  
function that takes a null-terminated string as input and outputs the floating point number  
it represents.)  
ibrd (ud, rdbuf, 10L);  
if (ibsta & ERR) {  
gpiberr("ibrd error");  
}
rdbuf[ibcntl] = '\0';  
printf("Read: %s\n", rdbuf);  
/* Output ==> Read: +10.98E-3 */  
sum += AsciiToFloat(rdbuf);  
Step 7. Process the Data  
Repeat steps 4 through 6 in a loop until 10 measurements have been read. Then print the  
average of the readings as shown:  
printf("The average of the 10 readings is %f\n", sum/10.0);  
Step 8. Place the Device Offline  
As a final step, take the device offline using the ibonl function.  
ibonl (ud, 0);  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-10  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Writing Your NI-488.2 Application  
This section discusses items you should include in an application program that uses  
NI-488.2 routines, general program steps, and an NI-488.2 example. In this manual the  
example code is presented in C. The NI-488.2 software includes the source code for C  
(samp4882.c), Visual Basic (samp4882.bas), direct entry functions in C  
(dll4882.c), and direct entry functions in Visual Basic (dll4882.bas).  
The NI-488.2 software also includes the source code for nine example programs, which  
are described in Chapter 2, Application Examples.  
Items to Include  
Include the appropriate GPIB header file. This file contains prototypes for the  
NI-488.2 routines and constants that you can use in your application program.  
Check for errors after each NI-488.2 routine.  
Declare and define a function to handle GPIB errors. This function takes the device  
offline and closes the application. If the function is declared as:  
void gpiberr (char * msg); /* function prototype */  
then your application invokes it as follows:  
if (ibsta & ERR) {  
gpiberr ("GPIB error");  
}
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m1.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
NI-488.2 Program Shell  
Figure 3-2 is a flowchart of the steps to create your application program using NI-488.2  
routines.  
START  
Initialize Specified GPIB  
Interface (SendIFC)  
No  
Are All Boards  
Initialized?  
Yes  
Making  
Low-Level  
High-Level  
High-Level or  
Low-Level Call?  
Make a Low-Level Call  
Make a High-Level Call  
• Send Data to Device (Send)  
• Receive Data from Device  
(Receive)  
• Clear Device (DevClear)  
• Serial Poll Device  
(ReadStatusByte)  
and so on  
• Address Devices to Listen (SendSetup)  
• Send Data to Addressed Listener  
(SendDataBytes)  
• Address Device to Talk (ReceiveSetup)  
• Receive Data from Addressed Talker  
(RcvRespMsg)  
and so on  
No  
Finished GPIB  
Programming?  
Yes  
Close Board  
(ibonl)  
No  
Are All Boards  
Closed?  
Yes  
END  
Figure 3-2. General Program Shell Using NI-488.2 Routines  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-12  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
General Program Steps and Examples  
The following steps demonstrate how to use the NI-488.2 routines in your program. This  
example configures a digital multimeter, reads 10 voltage measurements, and computes  
the average of these measurements.  
Step 1. Initialization  
Use the SendIFC routine to initialize the bus and the GPIB interface board so that the  
GPIB board is Controller-In-Charge (CIC). The only argument of SendIFCis the GPIB  
interface board number.  
SendIFC(0);  
if (ibsta & ERR) {  
gpiberr("SendIFC error");  
}
Step 2. Find All Listeners  
Use the FindLstn routine to create an array of all of the instruments attached to the  
GPIB. The first argument is the interface board number, the second argument is the list  
of instruments that was created, the third argument is a list of instrument addresses that  
the procedure actually found, and the last argument is the maximum number of devices  
that the procedure can find (that is, it must stop if it reaches the limit). The end of the list  
of addresses must be marked with the NOADDR constant, which is defined in the header  
file that you included at the beginning of the program.  
for (loop = 0; loop <=30; loop++){  
instruments[loop] = loop;  
}
instruments[31] = NOADDR;  
printf("Finding all Listeners on the bus...\n");  
Findlstn(0, instruments, result, 30);  
if (ibsta & ERR) {  
gpiberr("FindLstn error");  
}
Step 3. Identify the Instrument  
Send an identification query to each device for identification. For this example, assume  
that all of the instruments are IEEE 488.2-compatible and can accept the identification  
query, *IDN?. In addition, assume that FindLstn found the GPIB interface board at  
primary address 0 (default) and, therefore, you can skip the first entry in the result  
array.  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m1.3All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
for (loop = 1; loop <= num_Listeners; loop++) {  
Send(0, result[loop], "*IDN?", 5L, NLend);  
if (ibsta & ERR) {  
gpiberr("Send error");  
}
Receive(0, result[loop], buffer, 10L, STOPend);  
if (ibsta & ERR) {  
gpiberr("Receive error");  
}
buffer[ibcntl] = '\0';  
printf("The instrument at address %d is a %s\n",  
result[loop], buffer);  
if (strncmp(buffer, "Fluke, 45", 9) == 0) {  
fluke = result[loop];  
printf("**** Found the Fluke ****\n");  
break;  
}
}
if (loop > num_Listeners) {  
printf("Did not find the Fluke!\n");  
ibonl(0,0);  
exit(1);  
}
The constant NLend signals that the new line character with EOI is automatically  
appended to the data to be sent.  
The constant STOPend indicates that the read is stopped when EOI is detected.  
Step 4. Initialize the Instrument  
After you find the multimeter, use the DevClearroutine to clear it. The first argument  
is the GPIB board number. The second argument is the GPIB address of the multimeter.  
Then send the IEEE 488.2 reset command to the meter.  
DevClear(0, fluke);  
if (ibsta & ERR) {  
gpiberr("DevClear error")  
}
Send(0, fluke, "*RST", 4L, NLend);  
if (ibsta & ERR) {  
gpiberr("Send *RST error");  
}
sum = 0.0;  
for(m =0; m<10; m++){  
/* start of loop for Steps 5 through 8 */  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-14  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Step 5. Configure the Instrument  
After initialization, the instrument is ready to receive instructions. To configure the  
multimeter, use the Sendroutine to send device-specific commands. The first argument  
is the number of the access board. The second argument is the GPIB address of the  
multimeter. The third argument is a string of bytes to send to the multimeter.  
The bytes in this example instruct the meter to measure volts alternating current (VAC)  
using auto-ranging (AUTO), to wait for a trigger from the Controller before starting a  
measurement (TRIGGER 2), and to assert SRQ when the measurement has been  
completed and the meter is ready to send the result (*SRE 16). The fourth argument  
represents the number of bytes to be sent. The last argument, NLend, is a constant  
defined in the header file which tells Send to append a linefeed character, with EOI  
asserted, to the end of the message sent to the multimeter.  
Send (0,fluke,"VAC; AUTO; TRIGGER 2; *SRE 16", 29L, NLend);  
if (ibsta & ERR) {  
gpiberr("Send setup error");  
}
Step 6. Trigger the Instrument  
In the previous step, the multimeter was instructed to wait for a trigger before conducting  
a measurement. Now send a trigger command to the multimeter. You could use the  
Trigger routine to accomplish this, but because the Fluke 45 is IEEE 488.2-  
compatible, you can just send it the trigger command, *TRG. The VAL1?command  
instructs the meter to send the next triggered reading to its output buffer.  
Send(0, fluke, "*TRG; VAL1?", 11L, NLend);  
if (ibsta & ERR) {  
gpiberr("Send trigger error");  
}
Step 7. Wait for the Measurement  
After the meter is triggered, it takes a measurement and displays it on its front panel and  
then asserts SRQ. You can detect the assertion of SRQ using either the TestSRQor  
WaitSRQ routine. If you have a process that you want to execute while you are waiting  
for the measurement, use TestSRQ. For this example, you can use the WaitSRQ  
routine. The first argument in WaitSRQis the GPIB board number. The second  
argument is a flag returned by WaitSRQ that indicates whether or not SRQ is asserted.  
WaitSRQ(0, &SRQasserted);  
if (!SRQasserted) {  
gpiberr("WaitSRQ error");  
}
After you have detected SRQ, use the ReadStatusByteroutine to poll the meter and  
determine its status. The first argument is the GPIB board number, the second argument  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m1.5All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
is the GPIB address of the instrument, and the last argument is a variable that  
ReadStatusByteuses to store the status byte of the instrument.  
ReadStatusByte(0, fluke, &statusByte);  
if (ibsta & ERR) {  
gpiberr("ReadStatusByte error");  
}
After you have obtained the status byte, you must check to see if the meter has a message  
to send. You can do this by checking the message available (MAV) bit, bit 4 in the status  
byte.  
if (!(statusByte & MAVbit) {  
gpiberr("Improper Status Byte");  
printf("Status Byte = 0x%x\n", statusByte);  
}
Step 8. Read the Measurement  
Use the Receive function to read the measurement over the GPIB. The first argument  
is the GPIB interface board number, and the second argument is the GPIB address of the  
multimeter. The third argument is a string into which the Receivefunction places the  
data bytes from the multimeter. The fourth argument represents the number of bytes to  
be received. The last argument indicates that the Receivemessage terminates upon  
receiving a byte accompanied with the END message.  
Receive(0, fluke, buffer, 10L, STOPend);  
if (ibsta & ERR) {  
gpiberr("Receive error");  
}
buffer[ibcntl] = '\0';  
printf (Reading : %s\n", buffer);  
sum += AsciiToFloat(buffer);  
} /* end of loop started in Step 5 */  
Step 9. Process the Data  
Repeat Steps 5 through 8 in a loop until 10 measurements have been read. Then print the  
average of the readings as shown:  
printf(" Theaverageof the10 readingsis : %f\n",sum/10);  
Step 10. Place the Board Offline  
Before ending your application program, take the board offline using the ibonl  
function.  
ibonl(0,0);  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-16  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Compiling, Linking, and Running Your Application  
The following sections describe how to compile, link, and run your application program.  
To see examples that show how to include specific lines of code in your program, refer to  
the program examples included with your NI-488.2 software.  
If you discover errors when you execute the program refer to Chapter 4, Debugging Your  
Application. If you want to verify the NI-488 and NI-488.2 calls made by your  
application, you can use GPIB Spy, the GPIB applications monitor for Windows  
described in Chapter 6, GPIB Spy.  
Microsoft C  
Before you compile your C application program, make sure that the following line is  
included at the beginning of your program:  
#include "windecl.h"  
After you have written your C application program, you must compile your application  
program using one of the following compilers: Microsoft C Version 7.0 with Microsoft  
SDK (Software Development Kit) Version 3.1 or Microsoft Visual C++ Version 1.0 (also  
known as Microsoft C Version 8.0). Then link your application with the C language  
interface, gpib.lib. Use the following command to compile and link a QuickWin C  
application named cprogusing Microsoft C:  
cl /Mq cprog.c gpib.lib  
The /Mq option of Microsoft C creates a QuickWin application. To run your application,  
choose the Run option from the File menu in the Program Manager window. Enter the  
path and name of the compiled program in the dialog box that pops up.  
Borland C++  
Before you compile your C application program, make sure that the following line is  
included at the beginning of your program:  
#include "windecl.h"  
After you have written your C application program, you must compile your application  
program using the Borland C++ (version 2.0 or higher) compiler. Then link your  
application with the C language interface, gpib.lib. Use the following command to  
compile and link a Windows C application named cprog using Borland C++:  
bcc -W cprog.c gpib.lib  
The -W option of Borland C++ creates a Windows application. To run your application,  
choose the Run option from the File menu in the Program Manager window. Enter the  
path and name of the compiled program in the dialog box that pops up.  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m1.7All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
Visual Basic  
With Visual Basic, you access the NI-488 functions as subroutines, using the BASIC  
keyword CALL followed by the NI-488 function name (for example CALL ibtrg  
(ud%)). You can also access the NI-488 functions using another set of functions, the il  
functions (for example result% = iltrg (ud%)). If you are using Visual Basic  
and prefer calling functions instead of subroutines, then you can use the il functions.  
With some of the ib commands (for example, ibrd) the length of the string buffer is  
automatically calculated within the actual subroutine, which eliminates the need to pass  
in the length as an extra parameter.  
Before you run your Visual Basic application, include the files niglobal.basand  
vbib.basin your application project file.  
If you are using Microsoft Visual Basic 1.0, you must edit niglobal.bas to define  
the constants trueand false as follows:  
global const true = -1  
global const false = 0  
In Microsoft Visual Basic 2.0 and higher, true and false are reserved words;  
therefore, these constants are no longer defined in niglobal.bas.  
After you have written your Visual Basic application, choose the Start option from the  
Run menu to execute your program.  
Direct Entry with C  
Before you compile your C application program, make sure that the following lines are  
included at the beginning of your program:  
#ifdef __cplusplus  
extern "C"{  
#endif  
#include "windecl.h  
int ibsta, iberr;  
long ibcntl;  
/* NI-488.2 global status variables */  
#ifdef __cplusplus  
}
#endif  
You must define the global status variables in your application program.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-18  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Sample programs using direct entry are included with the National Instruments driver.  
The C sample programs are console-type applications. They illustrate how to use the  
function calls the NI-488.2 driver exports. Since most of the popular compilers support  
console-type applications as well as GUI applications, you can create console-type  
applications without knowing Windows GUI programming. A console-type application  
is a Win16 program that uses text-based input and output instead of a graphical interface.  
This allows you to quickly create a Win16 application by using simple input and output  
functions like printfand scanf.  
You must define the direct entry prototypes of the functions used in your application  
program. There are three methods of accessing the Dynamic Link Library (DLL)  
directly. The NI-488.2 Function Reference Manual for DOS/Windows provides the  
format for the first two methods. Refer to it for the C direct entry syntax for NI-488  
functions and NI-488.2 routines. The direct entry sample programs use the third method.  
The three methods of direct entry are documented in the Microsoft Windows Software  
Development Kit (SDK) Guide's online help file. The first method of accessing the DLL  
follows.  
Method 1. List Functions in the Module Definition File  
To use the first method, list the names of the functions in the importssection in the  
application's .def file.  
You must create a module definition file, such as cprog.def. This file contains an  
imports section that lists the direct entry points used by the application program. You  
must link the module definition file to your application program.  
After you have written your Microsoft C application program, compile your program and  
use the /Mq option of Microsoft C to create a QuickWin application. This option is  
available starting with Microsoft C/C++ Version 7.0 with the Microsoft Software  
Development Kit (SDK) or with Microsoft Visual C++ Version 1.x. The following  
command compiles and links a Microsoft QuickWin application named cprog with the  
module definition file cprog.def:  
cl /Mq cprog.c cprog.def  
After you have written your Borland C/C++ application program, compile your program  
and use the -W option of Borland C/C++ to create a Windows application. The following  
command compiles and links a Borland C/C++ Windows application named cprog with  
the module definition file cprog.def:  
bcc -W cprog.c cprog.def  
To run your application, choose the Run option from the File menu in the  
Program Manager window. Enter the path and name of the compiled program in the  
dialog box that appears.  
The second method of accessing the DLL follows.  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m1.9All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
Method 2. Generate an Import Library Using implib  
To use the second method, link the application to an import library generated from the  
DLL using the implibutility.  
To generate the import library, type in the following text:  
implib gpib.lib c:\windows\system\gpib.dll  
where c:\windows\system\is the path to your Windows System directory. The file  
named gpib.libis the name of the file generated by the implibutility. For more  
information about the implibutility program, refer to the Windows online help or other  
documentation supplied with your compiler.  
After you have written your Microsoft C application program, compile your program and  
use the /Mq option of Microsoft C to create a QuickWin application. This option is  
available starting with Microsoft C/C++ Version 7.0 with the Microsoft Software  
Development Kit (SDK) or with Microsoft Visual C++ Version 1.x. The following  
command compiles and links a Microsoft QuickWin application named cprog with the  
import library file gpib.lib:  
cl /Mq cprog.c gpib.lib  
After you have written your Borland C/C++ application program, compile your program  
and use the -W option of Borland C/C++ to create a Windows application. The following  
command compiles and links a Borland C/C++ Windows application named cprog with  
the import library file gpib.lib:  
bcc -W cprog.c gpib.lib  
To run your application, choose the Run option from the File menu in the  
Program Manager window. Enter the path and name of the compiled program in the  
dialog box that appears.  
The third method of accessing the DLL follows.  
Method 3. Use LoadLibrary and GetProcAddress  
To use the third method, use the LoadLibraryand GetProcAddressfunctions to  
load the library and retrieve a pointer to the function.  
The Direct Entry sample programs use this method. At the beginning of your program,  
declare the following global variable for the DLL as follows:  
HINSTANCE GpibLib = NULL;  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-20  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
The prototypes for each function can be found in the NI-488.2 Function Reference  
Manual for DOS/Windows. For functions that return an integer value, like ibdev, you  
must cast the pointer to the function as follows:  
int(_far _pascal *Pname)  
where *Pname is the name of the pointer to the function. For functions (that is, the  
NI-488.2 calls) that do not return a value, you must cast the pointer to the function as  
follows:  
void(_far _pascal *Pname)  
where *Pname is the name of the pointer to the function. A function is followed by its  
list of parameters and pointers to the three global variables, as described in the NI-488.2  
Function Reference Manual for DOS/Windows. The following is an example of how to  
cast the function pointer and how to set up the parameter list for ibdev and ibonl:  
int(_far _pascal *Pibdev)(int BdIndx, int pad, int sad,  
int tmo, int eot, int eos, int _far *ibsta,  
int _far *iberr, long _far *ibcntl);  
int(_far _pascal *Pibonl)(int ud, int v, int _far *ibsta,  
int _far *iberr, long _far *ibcntl);  
You must load the GPIB.DLLlibrary within your application program. The following  
code calls the LoadLibraryfunction and handles errors:  
GpibLib=LoadLibrary("GPIB.DLL");  
if (GpibLib <= HINSTANCE_ERROR)  
{
return FALSE;  
}
Next you must get the address and assign it to the function pointer by using the  
GetProcAddressfunction. This code goes in your application program.  
Pibdev=(int (_far _pascal *)(int, int, int, int, int, int,  
int _far*, int _far *, long _far *))  
GetProcAddress(GpibLib,(LPCSTR)"DLLibdev");  
Pibonl=(int (_far _pascal *)(int, int, int _far *, int _far *,  
long _far *))GetProcAddress(GpibLib,  
(LPCSTR)"DLLibonl");  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m2.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Developing Your Application  
Chapter 3  
If GetProcAddressdoes not return a pointer, you can check to see if an address was  
assigned or not, as in the following example:  
if ((Pibdev==NULL)||  
(Pibonl==NULL))  
{
FreeLibrary(GpibLib);  
GpibLib=NULL;  
return FALSE;  
}
else  
return TRUE;  
The following code shows you how to call functions from within your application  
program:  
dvm = (*Pibdev) (0, 1, 0, T10s, 1, 0, &ibsta, &iberr,  
&ibcntl);  
(*Pibonl) (dvm, 0, &ibsta, &iberr, &ibcntl);  
Upon completion of your program, you must free the library, as in the following  
example:  
FreeLibrary(GpibLib);  
For more information about the Windows functions like LoadLibraryand  
GetProcAddress, refer to the Windows SDK documentation or your compiler's  
Windows documentation.  
After you have written your Microsoft C application program, compile your program and  
use the /Mq option of Microsoft C to create a QuickWin application. This option is  
available starting with Microsoft C/C++ Version 7.0 with the Microsoft Software  
Development Kit (SDK) or with Microsoft Visual C++ Version 1.x. The following  
command compiles and links a Microsoft QuickWin application named cprog:  
cl /Mq cprog.c  
After you have written your Borland C/C++ application program, compile your program  
and use the -W option of Borland C/C++ to create a Windows application. The following  
command compiles and links a Borland C/C++ Windows application named cprog:  
bcc -W cprog.c  
To run your application, choose the Run option from the File menu in the Program  
Manager window. Enter the path and name of the compiled program in the dialog box  
that appears.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
3-22  
© National Instruments Corp.  
Chapter 3  
Developing Your Application  
Direct Entry with Visual Basic  
See the Visual Basic section, earlier in this chapter, for information on calling the NI-488  
functions with Visual Basic.  
Include the file niglobal.basin your application project file. You must create a file  
(for example, dllfunc.bas) that contains the direct entry prototypes of the functions  
used in your application program. Include the direct entry file in your application project  
file. Refer to the NI-488.2 Function Reference Manual for DOS/Windows for the Visual  
Basic direct entry syntax for NI-488 and NI-488.2 functions.  
If you are using Microsoft Visual Basic 1.0, you must edit niglobal.basto define the  
constants true and false as follows:  
global const true = -1  
global const false = 0  
In Microsoft Visual Basic 2.0 and higher, true and false are reserved words;  
therefore, these constants are no longer defined in niglobal.bas.  
After you have written your Visual Basic application, choose the Start option from the  
Run menu to execute your program.  
© National Instruments Corp.  
Download from Www.Somanuals.c3o-m2.3All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Chapter 4  
Debugging Your Application  
This chapter describes several ways to debug your application program.  
Running wibtest  
Before you run your application program, you should run the software diagnostic test,  
wibtest, that came with your NI-488.2 software. The wibtestprogram is an  
NI-488.2 application that makes calls to the driver. If wibtest passes, your GPIB  
hardware and NI-488.2 software are interacting correctly. The following paragraphs  
describe the messages you might receive while running wibtest, and how to resolve  
each problem. The term gpibx refers to one of the boards gpib0, gpib1, gpib2, and  
gpib3.  
Presence Test of Driver  
The wibtestprogram tests for the presence of the NI-488.2 driver gpib.dlland the  
NI-488.2 configuration information file gpib.ini. If gpib.dllis not in the  
Windows directory, a warning box pops up with the following text:  
File Error: Cannot find GPIB.DLL  
Press the Close button. wibtest displays the following error message when it fails:  
<<< No driver present for GPIBx. >>>  
To correct the problem, make sure that the file gpib.dllis in the Windows directory  
(usually c:\windows). The same error message is displayed if gpib.iniis not  
located in the Windows directory. If you are unable to locate gpib.dllor gpib.ini,  
you should reinstall the NI-488.2 software.  
Presence Test of Board  
The following error message appears if the board gpibxis not installed or if the  
software is not configured properly:  
<<< No board present for GPIBx. >>>  
If this message appears, you could have one of the following situations:  
The Use this GPIB Interfacefield in wibconf might be set to no for  
board gpibx. If you want to use the board, you must set this field to yes.  
© National Instruments Corp.  
4-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Debugging Your Application  
Chapter 4  
The board might not be properly installed and configured. Refer to the getting  
started manual for detailed instructions.  
The software and hardware settings do not match. You can run wibconfto check  
the current configuration of the software.  
GPIB Cables Connected  
The following error message appears if a GPIB cable is connected to the board when you  
run wibtest:  
Call(25) 'ibcmd " "' failed, ibsta (0x134) not what was expected  
(0x8130)  
Call(25) 'ibcmd " "' failed, expected ibsta (0x100) to have the  
ERR bit set.  
Disconnect all GPIB cables before trying the test again.  
Running GPIBInfo  
The GPIBInfo utility program is a simple diagnostic tool you can use to obtain  
information about the NI-488.2 software you are using and any GPIB interface boards in  
your system. This information helps you determine the capabilities of your NI-488.2  
software and is also helpful if you need to call National Instruments for technical support.  
If you run GPIBInfowith no specific parameters, the program displays software  
information such as the name and version of your GPIB software, the type of GPIB  
interface board and functions that you can use with the software, and whether or not you  
can use the HS488 high-speed protocol. GPIBInfoalso displays information about  
each GPIB interface board installed in your system, including the name of the board, its  
Controller chip, the hardware settings, the type of functions that the board can use, and  
whether or not the board can use the HS488 high-speed communication protocol. The  
typical GPIBInfo output is as follows:  
GPIBInfo (Sep 29 1993)  
Copyright (c) 1993 National Instruments Corp. All rights  
reserved.  
Software Information:  
The NI-488.2 Software for Windows 3 is loaded.  
You are running Version 2.5 for the AT-GPIB/TNT board.  
It supports both the NI-488 functions and the NI-488.2 routines.  
It supports the HS488 high-speed protocol.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
4-2  
© National Instruments Corp.  
Chapter 4  
Debugging Your Application  
Hardware Information:  
GPIB0:an AT-GPIB/TNT board using the TNT4882C chip.  
It supports both the NI-488 functions and NI-488.2  
routines.  
It supports the HS488 high-speed protocol.  
It uses base I/O address 0x2C0.  
It uses interrupt level 11.  
It uses DMA channel 5.  
You can also run GPIBInfo by specifying the base I/O address of a GPIB board in your  
system. If GPIBInfofinds a board at the given address, it displays information about  
that board. This feature of GPIBInfois useful in determining whether you have a  
GPIB board installed at a particular address. If you have a board installed at base I/O  
address 2C0 (hex), entering gpibinfo 0x2c0produces the following output:  
GPIBInfo (Sep 29 1993)  
Copyright (c) 1993 National Instruments Corp. All rights  
reserved.  
The board at base I/O address 0x2C0 appears to be an AT-GPIB/TNT.  
It uses the TNT4882C GPIB Controller chip.  
It supports both the NI-488 functions and the NI-488.2 routines.  
It supports the HS488 high-speed protocol.  
The NI-488.2 software is configured to access this board as  
GPIB0.  
Debugging with the Global Status Variables  
After each function call to your NI-488.2 driver, ibsta, iberr, ibcnt, and ibcntl  
are updated before the call returns to your application. You should check for an error  
after each GPIB call. Refer to Chapter 3, Developing Your Application, for more  
information about how to use these variables within your program to automatically check  
for errors.  
After you determine which GPIB call is failing and note the corresponding values of the  
global variables, refer to Appendix A, Status Word Conditions, and Appendix B, Error  
Codes and Solutions. These appendixes will help you interpret the state of the driver.  
© National Instruments Corp.  
4-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Debugging Your Application  
Chapter 4  
Debugging with wibic  
If your application does not automatically check for and display errors, you can locate an  
error by using wibic. Simply issue the same functions or routines, one at a time as they  
appear in your application program. Because wibicreturns the status values and error  
codes after each call, you should be able to determine which GPIB call is failing. For  
more information about wibic, refer to Chapter 5, wibic–Windows Interface Bus  
Interactive Control Utility.  
After you determine which GPIB call is failing and note the corresponding values of the  
global variables, refer to Appendix A, Status Word Conditions, and Appendix B, Error  
Codes and Solutions. These appendixes will help you interpret the state of the driver.  
Debugging with GPIB Spy  
The NI-488.2 software includes GPIB Spy, an applications monitor utility that is useful  
as a debugging tool. You can use GPIB Spy to monitor the NI-488 and NI-488.2 calls  
made by your Windows application. You can configure GPIB Spy to suspend the  
execution of your application and display an information screen any time the error bit is  
set in ibsta. For more information about GPIB Spy, refer to Chapter 6, GPIB Spy.  
GPIB Error Codes  
Table 4-1 lists the GPIB error codes. Remember that the error variable is meaningful  
only when the ERR bit in the status variable is set. For a detailed description of each  
error and possible solutions, refer to Appendix B, Error Codes and Solutions.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
4-4  
© National Instruments Corp.  
Chapter 4  
Debugging Your Application  
Table 4-1. GPIB Error Codes  
Error  
iberr  
Value  
Mnemonic  
EDVR  
ECIC  
Meaning  
0
1
Windows error  
Function requires GPIB board to be CIC  
No Listeners on the GPIB  
GPIB board not addressed correctly  
Invalid argument to function call  
GPIB board not System Controller as required  
I/O operation aborted (timeout)  
Nonexistent GPIB board  
ENOL  
EADR  
EARG  
ESAC  
EABO  
ENEB  
EDMA  
EOIP  
2
3
4
5
6
7
8
DMA error  
10  
11  
12  
14  
15  
16  
20  
Asynchronous I/O in progress  
No capability for operation  
File system error  
ECAP  
EFSO  
EBUS  
ESTB  
GPIB bus error  
Serial poll status byte queue overflow  
SRQ stuck in ON position  
Table problem  
ESRQ  
ETAB  
Configuration Errors  
Several applications require customized configuration of the GPIB driver. For example,  
you might want to terminate reads on a special end-of-string character, or you might  
require secondary addressing. In these cases, you can use either the wibconf utility to  
permanently reconfigure the driver, or you can programmatically modify the driver while  
your application is running by using the NI-488 ibconfigfunction.  
Note: To change settings other than base I/O address, interrupt level, or DMA  
channel, National Instruments recommends using ibconfiginstead of  
running the wibconfutility.  
If your application uses ibconfig, it will always work regardless of the previous  
configuration of the driver. Refer to the description of ibconfigin the NI-488.2  
Function Reference Manual for DOS/Windows for more information.  
© National Instruments Corp.  
4-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Debugging Your Application  
Chapter 4  
To test the configuration of your hardware, you can use the ibdiagprogram as  
described in your getting started manual.  
Timing Errors  
If your application fails, but the same calls issued in wibic are successful, your program  
might be issuing the NI-488.2 calls too quickly for your device to process and respond to  
them. This problem can also result in corrupted or incomplete data.  
A well behaved IEEE 488 device should hold off handshaking and set the appropriate  
transfer rate. If your device is not well behaved, you can test for and resolve the timing  
error by single-stepping through your program and inserting finite delays between each  
GPIB call. One way to do this is to have your device communicate its status whenever  
possible. Although this method is not possible with many devices, it is usually the best  
option. Your delays will be controlled by the device and your application can adjust  
itself and work independently on any platform. Other delay mechanisms will probably  
cause varying delay times on different platforms.  
Communication Errors  
Repeat Addressing  
Some devices require GPIB addressing before any GPIB activity. Devices adhering to  
the IEEE 488.2 standard should remain in their current state until specific commands are  
sent across the GPIB to change their state. You might need to configure your NI-488.2  
driver to perform repeat addressing if your device does not remain in its currently  
addressed state. Refer to Chapter 8, wibconf–Windows Interface Bus Configuration  
Utility, or to the description of ibconfig(option IbcREADDR) in the NI-488.2  
Function Reference Manual for DOS/Windows for more information about reconfiguring  
your software.  
Termination Method  
You should be aware of the data termination method that your device uses. By default,  
your NI-488.2 software is configured to send EOI on writes and terminate reads on EOI  
or a specific byte count. If you send a command string to your device and it does not  
respond, it might be because it does not recognize the end of the command. You might  
need to send a termination message such as <CR> <LF> after a write command as  
follows:  
ibwrt(dev,”COMMAND\x0A\x0D”,9);  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
4-6  
© National Instruments Corp.  
Chapter 4  
Debugging Your Application  
Common Questions  
Can I have the DOS and Windows drivers installed at the same time?  
Yes, there is nothing wrong with installing both. However, it is better not to access them  
at the same time.  
What do I do if ibdiag or wibtest fail with an error?  
Refer to the Running wibtest section of this chapter and to the section about ibdiagin  
your getting started manual for specific information about what might cause these tests to  
fail.  
How do I communicate with my instrument over the GPIB?  
Refer to the documentation that came from the instrument manufacturer. The command  
sequences you use are totally dependent on the specific instrument. The documentation  
for each instrument should include the GPIB commands you need to communicate with  
it. In most cases, NI-488 device-level calls are sufficient for communicating with  
instruments. Refer to Chapter 3, Developing Your Application, for more information.  
Can I use the NI-488 and NI-488.2 calls together in the same application?  
Yes, you can mix NI-488 functions and NI-488.2 routines.  
What can I do to check for errors in my GPIB application?  
Examine the value of ibsta after each NI-488 or NI-488.2 call. If a call fails, the ERR  
bit of ibsta is set and an error code is stored in ibcntl. For more information about  
global status variables, refer to Chapter 3, Developing Your Application.  
How do I use wibic?  
You can use wibicto practice communication with your instrument, troubleshoot  
problems, and develop your application program. For instructions, refer to Chapter 5,  
wibic–Windows Interface Bus Interactive Control Utility.  
© National Instruments Corp.  
4-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Debugging Your Application  
Chapter 4  
What should I type into the pop-up window that appears when I start wibconf?  
This pop-up window is prompting you for the drive and path where the gpib.inifile is  
located. If Windows is installed in the default directory (c:\windows), just press  
<Return>. If Windows is not installed in the default directory, enter the path and  
directory where Windows is installed so that wibconf can find the correct gpib.ini  
file to modify, for example c:\win31\gpib.ini.  
How can I determine which type of GPIB board I have installed?  
Run the GPIBInfoutility. If you run GPIBInfowithout specifying any parameters, it  
returns information about the GPIB boards currently configured for use in your system.  
If you know the base I/O address of a GPIB interface board, you can enter it as a  
parameter for specific information. For example, gpibinfo 2C0returns information  
about the GPIB board at base I/O address 2C0.  
How can I determine which version of the NI-488.2 software I have installed?  
Run the GPIBInfoutility. If you run GPIBInfowithout specifying any parameters, it  
provides information about the version of the NI-488.2 software currently installed.  
Why can't I launch Windows after installing Windows 3.1 on top of my  
Windows 3.0 installation?  
If the system.ini file contains conflicting information about which virtual devices to  
load, Windows fails to start. In this case, the system.inifile is probably trying to  
load two virtual DMA devices. The system.inifile should include the lines to load  
only one virtual DMA device. You can either delete unwanted lines or change them to  
comment lines by adding a semicolon at the beginning of the line.  
The virtual DMA device is loaded in the [386Enh] section of the system.inifile.  
The correct one to use with Windows 3.1 is loaded by the following line:  
device=*vdmad  
The correct one to use with Windows 3.0 is loaded by the following line:  
device=drive:\path\nivdmad.386  
where drive and path describe the location of the nivdmad.386file on your hard  
disk (for example c:\at-gpibw).  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
4-8  
© National Instruments Corp.  
Chapter 4  
Debugging Your Application  
What information should I have before I call National Instruments?  
When you call National Instruments, you should have the results of the diagnostic tests  
ibdiag and wibtest along with the output from the GPIBInfoutility. Also, make  
sure you have filled out the technical support form in Appendix C, Customer  
Communication.  
© National Instruments Corp.  
4-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 5  
wibic–Windows Interface Bus Interactive  
Control Utility  
This chapter introduces you to wibic, the interactive control program that you can use  
to communicate with GPIB devices interactively.  
Overview  
With the wibicprogram, you communicate with the GPIB devices through functions  
you enter at the keyboard. For specific information about how to communicate with your  
particular device, refer to the manual that came with the device. You can use wibic to  
practice communicating with the instrument, troubleshoot problems, and develop your  
application program.  
One way wibic helps you to learn about your instrument and to troubleshoot problems  
is by displaying the following information on your screen whenever you enter a  
command:  
The results of the status word (ibsta) in hexadecimal notation  
The mnemonic constant of each bit set in ibsta  
The mnemonic value of the error variable (iberr) if an error exists (the ERR bit is  
set in ibsta)  
The count value for each read, write, or command function  
The data received from your instrument  
Example Using NI-488 Functions  
This section shows how you might use wibicto test a sequence of NI-488 device  
function calls. You do not need to remember the parameters that each function takes. If  
you enter the function name only, wibicprompts you for the necessary parameters.  
© National Instruments Corp.  
5-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
1. To run wibic, double-click on the wibic icon in the GPIB group in the Program  
Manager. A window appears with the following information displayed:  
National Instruments  
IEEE 488 Interface Bus Interactive Control Program (WIBIC)  
Copyright (c) 1993 National Instruments Corp. Version 3.0 (Win16)  
Version Date: May 28 1993 Version Time: 09:42:25  
All rights reserved  
Type 'help' for help or 'q' to quit  
:
2. Use ibdev to find the device name which is assigned to your device in the  
wibconfprogram. The following example shows how you could use ibdev to  
open a device, assign it to access board gpib0, choose a primary address of 6 with  
no secondary address, set a timeout of 10 s, enable the END message, and disable the  
EOS mode:  
:ibdev  
enter board index: 0  
enter primary address: 6  
enter secondary address: 0  
enter timeout: 13  
enter 'EOI on last byte' flag: 1  
enter end-of-string mode/byte: 0  
id = 32256  
ud0:  
You could also input all the same information with the ibdevcommand as follows:  
:ibdev 0 6 0 13 1 0  
id = 32256  
ud0:  
3. Clear the device as follows:  
ud0: ibclr  
[0100] (cmpl)  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-2  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
4. Write the function, range, and trigger source instructions to your device. Refer to the  
instrument's user manual for the command bytes that work with your instrument.  
ud0: ibwrt  
enter string: "*RST; VAC; AUTO; TRIGGER 2; *SRE 16"  
[0100] (cmpl)  
count: 35  
or  
ud0: ibwrt "*RST; VAC; AUTO; TRIGGER 2; *SRE 16"  
[0100] (cmpl)  
count: 35  
5. Trigger the device as follows:  
ud0: ibtrg  
[0100] (cmpl)  
6. Wait for a timeout or for your device to request service. If the current timeout limit  
is too short, use ibtmoto change it. Use the ibwaitcommand as follows:  
ud0: ibwait  
enter wait mask: TIMO RQS  
[0900] (rqs cmpl)  
or  
ud0: ibwait TIMO RQS  
[0900] (rqs cmpl)  
7. Read the serial poll status byte. This serial poll status byte varies depending on the  
device used.  
ud0: ibrsp  
[0100] (cmpl)  
Poll: 0x40 (decimal : 64)  
© National Instruments Corp.  
5-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
8. Use the read command to display the data on the screen both in hex values and their  
ASCII equivalents.  
ud0: ibrd  
enter byte count: 18  
[0100] (cmpl)  
count: 18  
4e 44 43 56 20 30 30 30  
2e 30 30 34 37 45 2b 30  
0a 0a  
N D C V 0 0 0  
. 0 0 4 7 E + 0  
. .  
or  
ud0: ibrd 18  
[0100] (cmpl)  
count: 18  
4e 44 43 56 20 30 30 30  
2e 30 30 34 37 45 2b 30  
0a 0a  
N D C V 0 0 0  
. 0 0 4 7 E + 0  
. .  
9. Place the device offline as follows:  
ud0: ibonl  
enter value: 0  
[0100] (cmpl)  
or  
ud0: ibonl 0  
[0100] (cmpl)  
10. Terminate the wibicprogram by entering qat the prompt.  
wibic Syntax  
When you enter commands in wibic, you can either include the parameters, or the  
program prompts you for values. Some commands require numbers as input values.  
Others might require you to input a string.  
Number Syntax  
You can enter numbers as hexadecimal, octal, or decimal integer.  
Hexadecimal numbers–You must precede hex numbers by zero and x (for example, 0xD).  
Octal numbers–You must precede octal numbers by zero only (for example, 015).  
Decimal numbers–Enter the number only.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-4  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
String Syntax  
You can enter strings in the following formats.  
ASCII character sequence–You must enclose the entire sequence in quotation marks.  
Octal bytes–You must use a backslash character followed by the octal value. For  
example, octal 40 is represented by \40.  
Hex bytes–You must use a backslash character and an xfollowed 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 "F3R5T1\r\n".  
Address Syntax  
Many of the NI-488.2 routines have an address or address list parameter. An address is a  
16-bit representation of the GPIB address of a device. The primary address is stored in  
the low byte and the secondary address, if any, is stored in the high byte. For example, a  
device at primary address 6 and secondary address 0x67 has an address of 0x6706. A  
NULL address is represented as 0xffff.  
wibic Syntax for NI-488 Functions  
Table 5-1 and Table 5-2 summarize the syntax of NI-488 functions in wibic.  
vrepresents a number that you input. string represents a string that you input. For  
more information about the function parameters, use the wibichelp feature or refer to  
the NI-488.2 Function Reference Manual for DOS/Windows.  
© National Instruments Corp.  
5-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
Table 5-1. Syntax for Device-Level NI-488 Functions in wibic  
Syntax  
Description  
ibask mn  
Return configuration information where mn is a mnemonic for a  
configuration parameter or equivalent integer value  
ibbna brdname  
Change access board of device where brdname is symbolic  
name of new board  
ibclr  
Clear specified device  
ibconfig mn v  
Alter configurable parameters where mnis mnemonic for a  
configuration parameter or equivalent integer value  
ibdev vvvvvv  
Open an unused device  
ibdev parameters are board id, pad, sad, tmo, eos, eot  
ibeos v  
ibeot v  
ibln v v  
ibloc  
Change/disable EOS message  
Enable/disable END message  
Check for presence of device on the GPIB at pad, sad  
Go to local  
ibonl v  
ibpad v  
ibpct  
Place device online or offline  
Change primary address  
Pass control  
ibppc v  
ibrd v  
Parallel poll configure  
Read data where vis the bytes to read  
Read data asynchronously where vis the bytes to read  
Read data to file where flnameis pathname of file to read  
Conduct a parallel poll  
ibrda v  
ibrdf flname  
ibrpp  
ibrsp  
Return serial poll byte  
ibsad v  
ibstop  
Change secondary address  
Abort asynchronous operation  
Change/disable time limit  
ibtmo v  
ibtrg  
Trigger selected device  
ibwait mask  
Wait for selected event where mask is a hex, octal, or decimal  
integer or a mask bit mnemonic  
ibwrt string  
ibwrta string  
ibwrtf flname  
Write data  
Write data asynchronously  
Write data from a file where flnameis pathname of file to write  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-6  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Table 5-2. Syntax for Board-Level NI-488 Functions in wibic  
Syntax  
Description  
ibask mn  
Return configuration information where mn is a mnemonic for a  
configuration parameter or equivalent integer value  
ibcac v  
Become Active Controller  
ibcmd string  
ibcmda string  
ibconfig mn v  
Send commands  
Send commands asynchronously  
Alter configurable parameters where mnis mnemonic for a  
configuration parameter or equivalent integer value  
ibdma v  
Enable/disable DMA  
ibeos v  
Change/disable EOS message  
Enable/disable END message  
Return the oldest recorded event  
ibeot v  
ibevent  
ibfind udname  
Return unit descriptor where udnameis the symbolic name of a  
board (for example, or gpib0)  
ibgts v  
ibist v  
iblines  
ibln v v  
ibloc  
Go from Active Controller to standby  
Set/clear ist  
Read the state of all GPIB control lines  
Check for presence of device on the GPIB at pad, sad  
Go to local  
ibonl v  
ibpad v  
ibppc v  
ibrd v  
Place device online or offline  
Change primary address  
Parallel poll configure  
Read data where vis the bytes to read  
Read data asynchronously where vis the bytes to read  
Read data to file where flnameis pathname of file to read  
Conduct a parallel poll  
ibrda v  
ibrdf flname  
ibrpp  
ibrsc v  
ibrsv v  
ibsad v  
ibsic  
Request/release system control  
Request service  
Change secondary address  
Send interface clear  
ibsre v  
ibstop  
Set/clear remote enable line  
Abort asynchronous operation  
Change/disable time limit  
ibtmo v  
ibwait mask  
Wait for selected event where mask is a hex, octal, or decimal  
integer or a mask bit mnemonic  
ibwrt string  
ibwrta string  
ibwrtf flname  
Write data  
Write data asynchronously  
Write data from a file where flnameis pathname of file to write  
© National Instruments Corp.  
5-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
wibic Syntax for NI-488.2 Routines  
Table 5-3 summarizes the syntax of NI-488.2 routines in wibic. vrepresents a number  
and string represents a string. address represents an address, and addrlist  
represents a list of addresses separated by commas. For more information about the  
routine parameters, use the wibichelp feature or refer to the NI-488.2 Function  
Reference Manual for DOS/Windows.  
Table 5-3. Syntax for NI-488.2 Routines in wibic  
Description  
Routine Syntax  
AllSpoll addrlist  
Serial poll multiple devices  
Clear a device  
DevClear address  
DevClearList addrlist  
EnableLocal addrlist  
EnableRemote addrlist  
FindLstn padlist v  
FindRQS addrlist  
PassControl address  
PPoll  
Clear multiple devices  
Enable local control  
Enable remote control  
Find all Listeners  
Find device asserting SRQ  
Pass control to a device  
Parallel poll devices  
PPollConfig address v v  
PPollUnconfig addrlist  
RcvRespMsg v v  
Configure device for parallel poll  
Unconfigure device for parallel poll  
Receive response message  
Serial poll a device  
ReadStatusByte address  
Receive address v v  
ReceiveSetup address  
ResetSys addrlist  
Send address string v  
SendCmds string  
Receive data from a device  
Receive setup  
Reset multiple devices  
Send data to a device  
Send command bytes  
Send data bytes  
SendDataBytes bufferv  
SendIFC  
Send interface clear  
SendList addrlist string v  
SendLLO  
Send data to multiple devices  
Put devices in local lockout  
Send setup  
SendSetup addrlist  
Set 488.2 v  
Enter 488.2 mode for board v  
(continues)  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-8  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Table 5-3. Syntax for NI-488.2 Routines in wibic (Continued)  
Description  
Routine Syntax  
SetRWLS addrlist  
TestSys addrlist  
TestSRQ  
Put devices in remote with lockout state  
Causes multiple devices to perform self tests  
Test for service request  
Trigger address  
TriggerList addrlist  
WaitSRQ  
Trigger a device  
Trigger multiple devices  
Wait for service request  
Status Word  
In wibic, all NI-488 functions (except ibfindand ibdev) and NI-488.2 routines  
return the status word ibstain two forms: a hex value in square brackets and a list of  
mnemonics in parentheses. In the following example, the status word is on the second  
line. It shows that the device function write operation completed successfully:  
ud0: ibwrt "f2t3x"  
[0100] (cmpl)  
count: 5  
ud0:  
For more information about the status word, refer to Chapter 3, Developing Your  
Application.  
Error Information  
If an NI-488 function or NI-488.2 routine completes with an error, wibicdisplays the  
relevant error mnemonic. In the following example, the error condition EBUS has  
occurred during a data transfer.  
ud0: ibwrt "f2t3x"  
[8100] (err cmpl)  
error: EBUS  
count: 1  
ud0:  
In this example, the addressing command bytes could not be transmitted to the device.  
This indicates that either dev1is powered off, or the GPIB cable is disconnected.  
© National Instruments Corp.  
5-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
For a detailed list of the error codes and their meanings, refer to Chapter 4, Debugging  
Your Application.  
Count  
When an I/O function completes, wibic displays the actual number of bytes sent or  
received, regardless of the existence of an error condition.  
If one of the addresses in an address list of an NI-488.2 routine is invalid, then the error is  
EARG and wibic displays the index of the invalid address as the count.  
The count has a different meaning depending on which NI-488 function or NI-488.2  
routine is called. Refer to the function descriptions in the NI-488.2 Function Reference  
Manual for DOS/Windows for the correct interpretation of the count return.  
Common NI-488 Functions  
ibfind  
Use the ibfind function to open a board. The following example opens gpib0.  
:ibfind gpib0  
id = 32000  
gpib0:  
id is the unit descriptor of the board. The prompt gpib0indicates that the board is  
open.  
Any name you use with the ibfindfunction must be a valid symbolic name in the  
driver. gpib0 is the default name found in the driver. For more information about valid  
names, refer to Chapter 8, wibconf–Windows Interface Bus Configuration Utility.  
ibdev  
The ibdev command initializes a device descriptor with the input information.  
With ibdev, you specify the following values:  
Access board for the device  
Primary address  
Secondary address  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-10  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Timeout setting  
EOT mode  
EOS mode  
The following example shows ibdevopening an available device and assigning it to  
access gpib0( board = 0) with a primary address of 6 (pad = 6), a secondary address  
of hex 67 (sad = 0x67), a timeout of 10 s (tmo=13), the END message enabled  
(eot =1), and the EOS mode disabled (eos= 0).  
:ibdev 0 6 0x67 13 1 0  
id = 32256  
ud0:  
If you use ibdev without specifying parameters, wibic prompts you for the input  
parameters as shown in the following example:  
:ibdev  
enter board index: 0  
enter primary address: 6  
enter secondary address: 0x67  
enter timeout: 13  
enter ‘EOI on last byte’ flag: 1  
enter end-of-string mode/byte: 0  
id = 32256  
ud0:  
Three distinct errors can occur with the ibdev call:  
EDVR–No device is available, the board index entered refers to a nonexistent board  
(that is, not 0, 1, 2, or 3) or Windows cannot locate the gpib.dllfile and/or  
gpib.ini file. The following example illustrates an EDVR error.  
:ibdev 4 6 0x67 7 1 0  
id = -1  
[8000] (err)  
error: EDVR (2)  
:
ENEB–The board index entered refers to a known board (such as 0), but the driver  
cannot find the board. In this case, run wibconf to verify that the base address of  
the board is set correctly and that the Use This GPIB Interfacefield is set to  
yes.  
© National Instruments Corp.  
Download from Www.Somanuals.c5o-m1.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
EARG–One of the last five parameters is an invalid value. The ibdevcall returns  
with a new prompt and the EARG error (invalid function argument). If the ibdev  
call returns with an EARG error, you must identify which parameter is incorrect and  
use the appropriate command to correct it. In the following example, pad has an  
invalid value. You can correct it with an ibpadcall as shown:  
:ibdev 0 66 0x67 7 1 0  
id = 32256  
[8100] (err cmpl)  
error: EARG  
ud0: ibpad 6  
previous value: 16  
ibwrt  
The ibwrt command sends data from one GPIB device to another. For example, to  
send the six character data string F3R5T1from the computer to a device, you enter the  
following string at the prompt as shown in the following example:  
ud0: ibwrt "F3R5T1"  
[0100] (cmpl)  
count: 6  
The returned status word contains the cmpl bit, which indicates a successful I/O  
completion. The byte count 6indicates that all six characters were sent from the  
computer and received by the device.  
ibrd  
The ibrd command causes a GPIB device to receive data from another GPIB device.  
The following example acquires data from the device and displays it on the screen in hex  
format and in its ASCII equivalent, along with the status word and byte count.  
ud0: ibrd 20  
[2100] (end cmpl)  
count: 18  
4e 44 43 56 28 30 30 30  
2e 30 30 34 37 45 2b 30  
0d 0a  
N D C V 9 0 0 0  
. 0 0 4 7 E + 0  
. .  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-12  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Common NI-488.2 Routines in wibic  
Set  
You must use the setcommand before you can use NI-488.2 routines in wibic. The  
syntax for this form of the setcommand is as follows:  
set 488.2 n  
where nrepresents a board number (for example, n=0 for gpib0).  
The 488.2 prompt indicates that you are in NI-488.2 mode on board n. The following  
example shows how to enter into 488.2 mode on board gpib0.  
set 488.2 0  
488.2 (0):  
Send and SendList  
The Send routine sends data to a single GPIB device. You can use the SendList  
command to send data to multiple GPIB devices. For example, suppose you want to send  
the five character string *IDN?followed by the new line character with EOI. You want  
to send the message from the computer to the devices at primary address 2 and 17. To do  
this, enter the SendListcommand at the 488.2 (0) prompt as shown in the  
following example:  
488.2 (0): SendList 2, 17 “*IDN?” NLend  
[0128] (cmpl cic tacs)  
count: 6  
The returned status word contains the cmpl bit, which indicates a successful I/O  
completion. The byte count 6indicates that six characters, including the added new line,  
were sent from the computer and received by both devices.  
Receive  
The Receiveroutine causes the GPIB board to receive data from another GPIB device.  
The following example acquires 10 data bytes from the device at primary address 5. It  
stops receiving data when 10 characters have been received or when the END message is  
received. The acquired data is then displayed in hex format along with its ASCII  
equivalent. The wibicprogram also displays the status word and the count of  
transferred bytes.  
© National Instruments Corp.  
Download from Www.Somanuals.c5o-m1.3All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
488.2 (0): Receive 5 10 STOPend  
[2124] (end cmpl cic lacs)  
count: 5  
48 65 6c 6c 6f  
Hello  
Auxiliary Functions  
Table 5-4 summarizes the auxiliary functions that you can use in wibic.  
Table 5-4. Auxiliary Functions in wibic  
Function  
Description  
set udname  
Select active device or board where udname is the symbolic  
name of the new device or board (for example, dev1 or gpib0).  
Call ibfindor ibdev initially to open each device or board.  
help [option]  
Display help information where option is any NI-488 or  
NI-488.2 call. If you do not enter an option, a menu of options  
appears.  
!
Repeat previous function.  
Turn display off.  
-
+
Turn display on.  
n* function  
Execute function ntimes where functionrepresents the  
correct wibic function syntax.  
n* !  
Execute previous function ntimes.  
$ filename  
Execute indirect file where filenameis the pathname of a file  
that contains wibicfunctions to be executed.  
print string  
buffer option  
Display string on screen where stringis an ASCII character  
sequence, octal bytes, hex bytes, or special symbols.  
Set the type of display used for buffers. Valid options are full,  
brief, ascii, and off. The default is full.  
e
q
Exit or quit.  
Exit or quit.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-14  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Set (Select Device or Board)  
You can use the set command to select 488.2 mode or to communicate with a different  
device. The following example switches communication from using NI-488.2 routines  
for gpib0 to using a unit descriptor (ud0) previously acquired by an ibdev call.  
488.2 (0): set ud0  
ud0:  
Help (Display Help Information)  
The help feature displays a menu of topics to choose from. Each topic lists relevant  
functions and other information. You can access help for a specific NI-488 function or  
NI-488.2 routine by typing helpfollowed by the call name (for example, help  
ibwrt). Help describes the function syntax for all NI-488 functions and NI-488.2  
routines.  
! (Repeat Previous Function)  
The !function repeats the most recent function executed. The following example issues  
an ibsic command and then repeats that same command.  
gpib0: ibsic  
[0130] (cmpl cic atn)  
gpib0: !  
[0130] (cmpl cic atn)  
- (Turn Display Off) and + (Turn Display On)  
The -function turns off all screen output except for the prompt. This function is useful  
when you want to repeat any I/O function quickly without waiting for screen output to be  
displayed.  
The +function turns the screen output on.  
In the following example 24 consecutive letters of the alphabet are read from a device  
using three ibrd calls.  
ud0: ibrd 8  
[2100] (end cmpl)  
count: 8  
61 62 63 64 65 66 67 68  
a b c d e f g h  
ud0: -  
© National Instruments Corp.  
Download from Www.Somanuals.c5o-m1.5All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
wibic–Windows Interface Bus Interactive Control Utility  
Chapter 5  
ud0: ibrd 8  
ud0: +  
ud0: ibrd 8  
[2100] (end cmpl)  
count: 8  
71 72 73 74 75 76 77 78  
q r s t u v w x  
n* (Repeat Function n Times)  
The n* function repeats the execution of the specified function ntimes, where nis an  
integer. In the following example, the message Hellois sent five times to the device  
described by ud0.  
ud0: 5*ibwrt "Hello"  
In the following example, the word Hello is sent five times, 20 times, and then 10 more  
times.  
ud0: 5*ibwrt "Hello"  
ud0: 20* !  
ud0: 10* !  
Notice that the multiplier (*) does not become part of the function name; that is, ibwrt  
"Hello"is repeated 20 times, not 5* ibwrt "Hello".  
$ (Execute Indirect File)  
The $function reads a specified file and executes the wibic functions listed in that file,  
in sequence, as if they were entered in that order from the keyboard. The following  
example executes the wibicfunctions listed in the file userfile.  
gpib0: $ userfile  
The following example repeats the operation three times.  
gpib0: 3*$ userfile  
The display mode that is in effect before this function was executed can be changed by  
functions in the indirect file.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
5-16  
© National Instruments Corp.  
Chapter 5  
wibic–Windows Interface Bus Interactive Control Utility  
Print (Display the ASCII String)  
You can use the print function to echo a string to the screen. The following example  
shows how you can use ASCII or hex with the print command.  
dev1: print "hello"  
hello  
dev1: print "and\r\n\x67\x6f\x6f\x64\x62\x79\x65"  
and  
goodbye  
You can also use print to display comments from indirect files. The print string  
appears even if the display is suppressed with the -function.  
Buffer (Set Buffer Display Mode)  
You can set the type of display used for buffers to control how much of the buffer is  
displayed. full displays the entire buffer, briefdisplays the first and last eight bytes  
of the buffer, ascii displays the entire buffer in ASCII mode, and off displays none of  
the buffer.  
© National Instruments Corp.  
Download from Www.Somanuals.c5o-m1.7All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Chapter 6  
GPIB Spy  
This chapter explains how to use the GPIB Spy utility to monitor and debug your  
application program.  
Overview  
GPIB Spy is a GPIB application monitor utility for Windows applications. It monitors  
the NI-488 and NI-488.2 calls made to the NI-488.2 driver for Windows, and records and  
displays information about the calls. You can use the GPIB Spy application to locate and  
analyze errors in your application or in the configuration of the NI-488.2 software.  
Starting GPIB Spy  
Start GPIB Spy by double-clicking on the GPIB Spy icon in the GPIB group in the  
Program Manager. This activates GPIB Spy and brings up the main GPIB Spy  
window. All NI-488 and NI-488.2 calls made while GPIB Spy is active are recorded in  
the main GPIB Spy window. GPIB Spy can be turned on and off by choosing SpyOn  
from the Spy menu. When GPIB Spy is on, the caption on the main GPIB Spy window  
is "GPIB Spy (recording)." When GPIB Spy is off, the caption is "GPIB Spy."  
Figure 6-1 shows the main GPIB Spy window with several NI-488 calls recorded in it.  
Figure 6-1. Main GPIB Spy Window  
© National Instruments Corp.  
6-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Spy  
Chapter 6  
Exiting GPIB Spy  
Exit GPIB Spy by choosing Exit from the Spy menu.  
Caution: When you exit GPIB Spy, all of the recorded information is lost. See the  
section in this chapter entitled GPIB Spy Output Options if you want to avoid  
losing the information.  
Viewing Call Details  
To see detailed information about calls recorded in GPIB Spy, use the Call Details  
window. You can activate the Call Details window in two different ways. If you  
double-click on any recorded call in the main GPIB Spy window, the call details for that  
particular call are displayed in the Call Details window. You can also select the View  
Details option from the Spy menu, which makes the Call Details window the top-level  
window.  
You can use the Call Details window in two ways. If you check the Continuously item  
in the View menu, the Call Details window is updated as each new GPIB is recorded and  
you cannot scroll through the details for each recorded call. If you uncheck the  
Continuously item in the View menu, you can use the <Page Up> or <Page Down> keys  
to scroll through the call details of all recorded calls. If a call to the driver produces a  
GPIB error condition, the corresponding Call Details window displays an iberr Help  
button. Clicking on this button launches an interactive help utility which helps you  
identify and correct the problem.  
Figure 6-2 shows the GPIB Spy Call Details window for the NI-488 function, ibwrt.  
Figure 6-2. GPIB Spy Call Details Window for ibwrt  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
6-2  
© National Instruments Corp.  
Chapter 6  
GPIB Spy  
GPIB Spy Configuration Options  
Calls To Highlight  
You can choose for GPIB Spy to highlight certain calls based on bits set in ibsta. If  
you want to modify this option then select the Calls to Highlight menu item from the  
Configure menu. Use the dialog box to select which ibstabits should cause a  
recorded call to be highlighted in the main GPIB Spy window. The default configuration  
of GPIB Spy is to highlight NI-488 and NI-488.2 calls which return with the ERR bit set  
in ibsta.  
Calls To Trap On  
You can configure GPIB Spy to suspend the execution of an application when one of the  
selected trap bits is set in ibsta for the NI-488 or NI-488.2 call that is completing. If  
you want to modify this option, select the Calls to Trap On menu item from the  
Configure menu. When a call causes a trap to occur, a dialog box pops up and gives a  
brief description of the trapped call. A dialog box causes all Windows applications  
currently running to be suspended until you click on the OK button. By default, GPIB  
Spy does not trap on any calls.  
Buffer History  
When GPIB Spy records a call such as ibrd, ibwrt, or Send, that includes a buffer of  
data, the Call Details window shows you the contents of the buffer. The default  
configuration of GPIB Spy is to store each I/O buffer in a brief format. If you want to  
modify this option then select the Buffer History menu item from the Configure menu.  
The buffer history has three settings: brief, full, and none. These settings determine how  
much of the buffer to save for the NI-488 or NI-488.2 call being recorded. Once a call is  
recorded, you cannot modify its buffer history. The brief buffer setting saves up to  
64 bytes of buffer information. If the buffer is longer than 64 bytes, only the first  
32 bytes and last 32 bytes of the buffer are saved. The none buffer setting saves no  
buffer information. The full buffer setting saves the entire I/O buffer. Note that the full  
buffer setting is likely to degrade the performance of your application and the whole  
windows system, especially if the application is transferring large GPIB buffers.  
Set Highlight Color  
You can use this option to configure the highlight color which is used to highlight  
information in the GPIB Spy windows. To change the highlight color, select the Set  
Highlight Color menu item from the Configure menu. This causes the standard  
Windows color selection dialog box to pop up. Choose a new color and click on OK.  
The default highlight color is red.  
© National Instruments Corp.  
6-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Spy  
Chapter 6  
Store Configuration  
You can use this option to make the current GPIB Spy configuration the default GPIB  
Spy configuration. If you want to set the default GPIB Spy configuration, select the  
Store Configuration menu item from the Configure menu.  
GPIB Spy Output Options  
To Screen  
You can use this option to select the number of NI-488 and NI-488.2 calls that are  
displayed in GPIB Spy. By default GPIB Spy displays 100 calls. Only the most recent  
information is stored so that when the number of recorded calls exceeds the limit the  
oldest information is discarded. To change the number of calls displayed, select the  
To Screen menu item from the Output menu. Then enter the new number and click OK  
to save the change.  
To File  
You can use this option to specify an output file in which to save the information  
currently recorded in GPIB Spy. To save the information to a file, select the To File  
menu item from the Output menu. This causes the standard Windows file selection  
dialog box to pop up. Select a drive, directory and file name in which to save the  
information. When you click OK , the information recorded in GPIB Spy is saved to the  
specified file.  
Check the Update Continuously check box in the dialog box if you want the GPIB Spy  
information to be saved as soon as it is recorded. The output file is opened, written, and  
closed as each NI-488 or NI-488.2 call is recorded. This option is useful if you are trying  
to debug a Windows application that causes the system to crash before you get an  
opportunity to close GPIB Spy. Use this option only if you need to because it is likely to  
slow down all Windows applications. In addition, if you are low on disk space, choosing  
this option could cause you to run out of disk space. To turn off the continuous update  
feature, unselect the Update Continuously check box in the file selection dialog box.  
Clear Screen  
This option clears the display and the information stored in GPIB Spy. You cannot  
retrieve information that has been cleared.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
6-4  
© National Instruments Corp.  
Chapter 6  
GPIB Spy  
GPIB Spy Help  
You can access online help for GPIB Spy by selecting the GPIB Spy Help menu item  
from the Help menu. All of the information covered in this chapter is available through  
the online help. The online help contains a thorough description of each of the features  
of GPIB Spy, as well as information to help you develop your Windows GPIB  
application.  
Performance Considerations  
Keep in mind that GPIB Spy can slow down the performance of your GPIB application  
and the whole windows system operating environment. If you record full I/O buffers,  
update to an output file continuously, or configure GPIB Spy to record the information on  
a large number of GPIB calls, it might have a significant effect on performance. For this  
reason, use GPIB Spy only while you are debugging your application or in situations in  
which performance is not critical.  
© National Instruments Corp.  
6-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Chapter 7  
GPIB Programming Techniques  
This chapter describes techniques for using some NI-488 functions and NI-488.2 routines  
in your application program.  
For more detailed information about each function or routine, refer to the NI-488.2  
Function Reference Manual for DOS/Windows.  
Termination of Data Transfers  
GPIB data transfers are terminated either when the GPIB EOI line is asserted with the  
last byte of a transfer or when a preconfigured end-of-string (EOS) character is  
transmitted. By default, the NI-488.2 driver asserts EOI with the last byte of writes and  
the EOS modes are disabled.  
You can use the ibeot function to enable or disable the end of transmission (EOT)  
mode. If EOT mode is enabled, the NI-488.2 driver asserts the GPIB EOI line when the  
last byte of a write is sent out on the GPIB. If it is disabled, the EOI line is not asserted  
with the last byte of a write.  
You can use the ibeos function to enable, disable, or configure the EOS modes. EOS  
mode configuration includes the following information:  
A 7-bit or 8-bit EOS byte  
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.  
EOS write method–If this is enabled, the NI-488.2 driver automatically asserts the  
GPIB EOI line when the EOS byte is written to the GPIB. If the buffer passed into an  
ibwrt call contains five occurrences of the EOS byte, the EOI line is asserted as  
each of the five EOS bytes are written to the GPIB. If an ibwrtbuffer 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).  
EOS read method–If this is enabled, the NI-488.2 driver terminates ibrd, ibrda,  
and ibrdf calls when the EOS byte is detected on the GPIB, when the GPIB EOI  
line is asserted, or when the specified count is reached. If the EOS read method is  
disabled, ibrd, ibrda, and ibrdf calls terminate only when the GPIB EOI line is  
asserted or the specified count has been read.  
© National Instruments Corp.  
7-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Programming Techniques  
Chapter 7  
You can use the ibconfig function to configure the software to inform you whether or  
not the GPIB EOI line was asserted when the EOS byte was read. Use the  
IbcEndBitIsNormaloption to configure the software to report only the END bit in  
ibsta when the GPIB EOI line is asserted. By default, the NI-488.2 driver reports END  
in ibsta when either the EOS byte is read in or the EOI line is asserted during a read.  
High-Speed Data Transfers (HS488)  
National Instruments has designed a high-speed data transfer protocol for IEEE 488  
called HS488. This protocol increases performance for GPIB reads and writes up to  
8 Mbytes/s, depending on your system.  
HS488 is a superset of the IEEE 488 standard; thus, you can mix IEEE 488.1,  
IEEE 488.2, and HS488 devices in the same system. If HS488 is enabled, the  
TNT4882C hardware implements high-speed transfers automatically when  
communicating with HS488 instruments. To determine whether your GPIB interface  
board has the TNT4882C hardware, use the GPIBInfoutility. If you attempt to enable  
HS488 on a GPIB board that does not have the TNT4882C chip, the error ECAP is  
returned.  
Enabling HS488  
To enable HS488 for your GPIB board, use the ibconfigfunction (option  
IbcHSCableLength). The value passed to ibconfigshould 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 board for HS488, the Controller-  
In-Charge must send out GPIB command bytes (interface messages) to configure other  
devices for HS488 transfers.  
If you are using device-level calls, the NI-488.2 software automatically sends the HS488  
configuration message to devices. If you enabled the HS488 protocol in wibconf, the  
NI-488.2 software sends out the HS488 configuration message when you use ibdevto  
bring a device online. If you call ibconfigto change the GPIB cable length, the  
NI-488.2 software sends out the HS488 message again the next time you call a device-  
level function.  
If you are using board-level functions or NI-488.2 routines and you want to configure  
devices for high-speed, you must send the HS488 configuration messages using ibcmd  
or SendCmds. The HS488 configuration message is made up of two GPIB command  
bytes. The first byte, the Configure Enable (CFE) message (hex 1F), places all HS488  
devices into their configuration mode. Non-HS488 devices should ignore this message.  
The second byte is a GPIB secondary command that indicates the number of meters of  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-2  
© National Instruments Corp.  
Chapter 7  
GPIB Programming Techniques  
cable in your system. It is called the Configure (CFGn) message. Because HS488 can  
operate only with cable lengths of 1 to 15 meters, only CFGn values of 1 through 15 (hex  
61 through 6F) are valid. If the cable length was configured correctly in wibconf, you  
can determine how many meters of cable are in your system by calling ibask(option  
IbaHSCableLength) in your application program. For CFE and CFGn messages,  
refer to Appendix A, Multiline Interface Messages, in the NI-488.2 Function Reference  
Manual for DOS/Windows.  
System Configuration Effects on HS488  
Maximum data transfer rates can be limited by your host computer and GPIB  
system setup. For example, even though the theoretical maximum transfer rate  
with HS488 is 8 Mbytes/s, the maximum transfer rate obtainable on PC compatible  
computers with an ISA bus is 2 Mbytes/s. The same IEEE 488 cabling constraints  
for a 350 ns T1 delay apply to HS488. As you increase the amount of cable in  
your GPIB configuration, the maximum data transfer rate using HS488 decreases.  
For example, two HS488 devices connected by two meters of cable can transfer  
data faster than three HS488 devices connected by four meters of cable.  
Waiting for GPIB Conditions  
You can use the ibwait function to obtain the current ibsta value or to suspend your  
application until a specified condition occurs on the GPIB. If you use ibwaitwith a  
parameter of zero, it immediately updates ibstaand returns. If you want to use  
ibwait to wait for one or more events to occur, then pass a wait mask to the function.  
The wait mask should always include the TIMO event; otherwise, your application is  
suspended indefinitely until one of the wait mask events occurs.  
Device-Level Calls and Bus Management  
The NI-488 device-level calls are designed to perform all of the GPIB management for  
your application program. However, the NI-488.2 driver can handle bus management  
only when the GPIB interface board is CIC (Controller-In-Charge). Only the CIC is able  
to send command bytes to the devices on the bus to perform device addressing or other  
bus management activities. Use one of the following methods to make your GPIB board  
the CIC:  
If your GPIB board is configured as the System Controller (default), it automatically  
makes itself the CIC by asserting the IFC line the first time you make a device-level  
call.  
© National Instruments Corp.  
7-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Programming Techniques  
Chapter 7  
If your setup includes more than one Controller, or if your GPIB interface board is not  
configured as the System Controller, use the CIC Protocol method. To use the  
protocol, issue the ibconfigfunction (option IbcCICPROT) or use the wibconf  
configuration utility to activate the CIC protocol. If the interface board is not CIC and  
you make a device-level call with the CIC Protocol enabled, the following sequence  
occurs:  
1. The GPIB interface board asserts the SRQ line.  
2. The current CIC serial polls the board.  
3. The interface board returns a response byte of hex 42.  
4. The current CIC passes control to the GPIB board.  
If the current CIC does not pass control, the NI-488.2 driver returns the ECIC error  
code to your application. This error can occur if the current CIC does not understand  
the CIC Protocol. If this happens, you could send a device-specific command  
requesting control for the GPIB board. Then use a board-level ibwaitcommand to  
wait for CIC.  
Talker/Listener Applications  
Although designed for Controller-In-Charge applications, you can also use the NI-488.2  
software in most non-Controller situations. These situations are known as  
Talker/Listener applications because the interface board is not the GPIB Controller. A  
typical Talker/Listener application waits for commands from the Controller and responds  
as appropriate. The following paragraphs describe some programming techniques for  
Talker/Listener applications.  
Waiting for Messages from the Controller  
A Talker/Listener application typically uses ibwait with a mask of 0 to monitor the  
status of the interface board. Then, based on the status bits set in ibsta, the application  
takes whatever action is appropriate. For example, the application could monitor the  
status bits TACS (Talker Active State) and LACS (Listener Active State) to determine  
when to send data to or receive data from the Controller. The application could also  
monitor the DCAS (Device Clear Active State) and DTAS (Device Trigger Active State)  
bits to determine if the Controller has sent the device clear (DCL or SDC) or trigger  
(GET) messages to the interface board. If the application detects a device clear from the  
Controller, it might reset the internal state of message buffers. If it detects a trigger  
message from the Controller, the application might begin an operation such as taking a  
voltage reading if the application is actually acting as a voltmeter.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-4  
© National Instruments Corp.  
Chapter 7  
GPIB Programming Techniques  
Using the Event Queue  
Some applications need to know the order in which certain messages are sent by the  
Controller. To monitor the ordering of these messages, your application program must  
enable the EVENT bit, using ibconfig(option IbcEventQueue). When the  
EVENT bit is enabled, the DCAS and DTAS bits are no longer activated. Instead, all  
DCAS and DTAS messages are stored in a queue, in the order that they are received.  
The event queue also stores interface clear (IFC) messages. When the queue contains  
some information, the NI-488.2 software sets the EVENT bit in ibsta. When the  
application program detects EVENT, it can call the function ibeventto retrieve the  
first event that occurred. Retrieving events from the queue ensures that the application  
can respond to device clear, device trigger, and interface clear messages in the correct  
order.  
Requesting Service  
Another type of event that might be important in a Talker/Listener application is the  
serial poll. A Talker/Listener application can call ibrsvwith a serial poll response byte  
when it needs to request service from the Controller. If the application needs to know  
when the Controller has read the serial poll response byte, it can enable the SPOLL bit in  
ibsta using ibconfig, option IbcSPollBit. The NI-488.2 software sets the  
SPOLL bit when the Controller serial polls the board.  
Serial Polling  
You can use serial polling to obtain specific information from GPIB devices when they  
request service. When the GPIB SRQ line is asserted, it signals the Controller that a  
service request is pending. The Controller must then determine which device asserted the  
SRQ line and respond accordingly. The most common method for SRQ detection and  
servicing is the serial poll. This section describes how you can set up your application to  
detect and respond to service requests from GPIB devices.  
Service Requests from IEEE 488 Devices  
IEEE 488 devices request service from the GPIB Controller by asserting the GPIB SRQ  
line. When the Controller acknowledges the SRQ, it serial polls each open device on the  
bus to determine which device requested service. Any device requesting service returns a  
status byte with bit 6 set and then unasserts the SRQ line. Devices not requesting service  
return a status byte with bit 6 cleared. Manufacturers of IEEE 488 devices use lower  
order bits to communicate the reason for the service request or to summarize the state of  
the device.  
© National Instruments Corp.  
7-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Programming Techniques  
Chapter 7  
Service Requests from IEEE 488.2 Devices  
The IEEE 488.2 standard refined the bit assignments in the status byte. In addition to  
setting bit 6 when requesting service, IEEE 488.2 devices also use two other bits to  
specify their status. Bit 4, the Message Available bit (MAV), is set when the device is  
ready to send previously queried data. Bit 5, the Event Status bit (ESB), is set if one or  
more of the enabled IEEE 488.2 events occurs. These events include power-on, user  
request, command error, execution error, device-dependent error, query error, request  
control, and operation complete. The device can assert SRQ when ESB or MAV are set,  
or when a manufacturer-defined condition occurs.  
Automatic Serial Polling  
You can enable automatic serial polling if you want your application to conduct a serial  
poll automatically any time the SRQ line is asserted. The autopolling procedure occurs  
as follows:  
1. To enable autopolling, use the configuration utility, wibconf, or the configuration  
function, ibconfigwith option IbcAUTOPOLL. (Autopolling is enabled by  
default.)  
2. When the SRQ line is asserted, the driver automatically serial polls the open devices.  
3. Each positive serial poll response (bit 6 or hex 40 is set) is stored in a queue  
associated with the device that sent it. The RQS bit of 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 ibrspfunction. ibrspreturns 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 ibrspis called, a serial poll is conducted and  
returns whatever response is received. You should empty the queue as soon as an  
automatic serial poll occurs, because responses might be discarded if the queue is  
full.  
6. If the RQS bit of the status word is still set after ibrsp is called, the response byte  
queue contains at least one more response byte. If this happens, you should continue  
to call ibrsp until RQS is cleared.  
Stuck SRQ State  
If autopolling is enabled and the GPIB interface board detects an SRQ, the driver serial  
polls all open devices connected to that board. The serial poll continues until either SRQ  
unasserts or all the devices have been polled.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-6  
© National Instruments Corp.  
Chapter 7  
GPIB Programming Techniques  
If no device responds positively to the serial poll, or if SRQ remains in effect because of  
a faulty instrument or cable, a stuck SRQ state is in effect. If this happens during an  
ibwait for RQS, the driver reports the ESRQ error. If the stuck SRQ state happens, no  
further polls are attempted until an ibwaitfor RQS is made. When ibwaitis issued,  
the stuck SRQ state is terminated and the driver attempts a new set of serial polls.  
Autopolling and Interrupts  
If autopolling and interrupts are both enabled, the NI-488.2 software can perform  
autopolling after any device-level NI-488 call as long as no GPIB I/O is currently in  
progress. This means that an automatic serial poll can occur even when your application  
is not making any calls to the NI-488.2 software. Autopolling can also occur when a  
device-level ibwaitfor RQS is in progress. Autopolling is not allowed whenever an  
application calls a board-level NI-488 function or any NI-488.2 routine, or the stuck SRQ  
(ESRQ) condition occurs.  
If autopolling is enabled and interrupts are disabled, you can use autopolling in the  
following situations only:  
During a device-level ibwaitfor RQS  
Immediately after a device-level NI-488 function is completed, before control is  
returned to the application program  
SRQ and Serial Polling with NI-488 Device Functions  
You can use the device-level NI-488 function ibrspto conduct a serial poll. ibrsp  
conducts a single serial poll and returns the serial poll response byte to the application  
program. If automatic serial polling is enabled, the application program can use ibwait  
to suspend program execution until RQS appears in the status word, ibsta. The  
program can then call ibrspto obtain the serial poll response byte.  
The following example illustrates the use of the ibwaitand ibrsp functions in a  
typical SRQ servicing situation when automatic serial polling is enabled.  
#include "decl.h"  
char GetSerialPollResponse ( int DeviceHandle )  
{
char SerialPollResponse = 0;  
ibwait ( DeviceHandle, TIMO | RQS );  
© National Instruments Corp.  
7-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Programming Techniques  
Chapter 7  
if ( ibsta & RQS ) {  
printf ( "Device asserted SRQ.\n" );  
/* Use ibrsp to retrieve the serial poll  
response. */  
ibrsp ( DeviceHandle, &SerialPollResponse );  
}
return SerialPollResponse;  
}
SRQ and Serial Polling with NI-488.2 Routines  
The NI-488.2 software includes a set of NI-488.2 routines that you can use to conduct  
SRQ servicing and serial polling. Routines pertinent to SRQ servicing and serial polling  
are AllSpoll, FindRQS, ReadStatusByte, TestSRQ, and WaitSRQ.  
AllSpoll can serial poll multiple devices with a single call. It places the status bytes  
from each polled instrument into a predefined array. Then you must check the RQS bit  
of each status byte to determine whether that device requested service.  
ReadStatusByteis similar to AllSpoll, except that it serial polls only a single  
device. It is also analogous to the device-level NI-488 ibrsp function.  
FindRQS serial polls a list of devices until it finds a device that is requesting service or  
until it has polled all of the specified devices. The routine returns the index and status  
byte value of the device requesting service.  
TestSRQ determines whether the SRQ line is asserted or unasserted, and returns to the  
program immediately.  
WaitSRQis similar to TestSRQ, except that WaitSRQsuspends the application  
program until either SRQ is asserted or the timeout period is exceeded.  
The following examples use NI-488.2 routines to detect SRQ and then determine which  
device requested service. In these examples three devices are present on the GPIB at  
addresses 3, 4, and 5, and the GPIB interface is designated as bus index 0. The first  
example uses FindRQSto determine which device is requesting service and the second  
example uses AllSpollto serial poll all three devices. Both examples use WaitSRQ  
to wait for the GPIB SRQ line to be asserted.  
Note: Automatic serial polling is not used in these examples because you cannot use  
it with NI-488.2 routines.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-8  
© National Instruments Corp.  
Chapter 7  
GPIB Programming Techniques  
Example 1: Using FindRQS  
This example illustrates the use of FindRQSto determine which device is requesting  
service.  
void GetASerialPollResponse ( char *DevicePad,  
char *DeviceResponse )  
{
char SerialPollResponse = 0;  
int WaitResult;  
Addr4882_t Addrlist[4] = {3,4,5,NOADDR};  
WaitSRQ (0, &WaitResult);  
if (WaitResult) {  
printf ("SRQ is asserted.\n");  
/* Use FindRQS to find a device that requested service. */  
FindRQS ( 0, AddrList, &SerialPollResponse );  
if (!(ibsta & ERR)) {  
printf ("Device at pad %x returned byte %x.\n",  
AddrList[ibcnt],(int) SerialPollResponse);  
*DevicePad = AddrList[ibcnt];  
*DeviceResponse = SerialPollResponse;  
}
}
return;  
}
Example 2: Using AllSpoll  
This example illustrates the use of AllSpollto serial poll three devices.  
void GetAllSerialPollResponses ( Addr4882_t AddrList[], short  
ResponseList[] )  
{
int WaitResult;  
WaitSRQ (0, &WaitResult);  
if ( WaitResult ) {  
printf ( "SRQ is asserted.\n" );  
© National Instruments Corp.  
7-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
GPIB Programming Techniques  
Chapter 7  
/* Use Allspoll to serial poll all the devices at once. */  
AllSpoll ( 0, AddrList, ResponseList );  
if (!(ibsta & ERR)) {  
for ( i = 0; AddrList[i] != NOADDR; i++ ) {  
printf ("Device at pad %x returned byte %x.\n",  
AddrList[i], ResponseList[i] );  
}
}
}
return;  
}
Parallel Polling  
Although parallel polling is not widely used, it is a useful method for obtaining the status  
of more than one device at the same time. The advantage of a parallel poll is that it can  
easily check up to eight individual devices at once. In comparison, eight separate serial  
polls would be required to check eight devices for their serial poll response bytes.  
Implementing a Parallel Poll  
You can implement parallel polling with either NI-488 functions or NI-488.2 routines. If  
you use NI-488.2 routines to execute parallel polls, you do not need extensive knowledge  
of the parallel polling messages. However, you should use the NI-488 functions for  
parallel polling when the GPIB board is not the Controller and must configure itself for a  
parallel poll and set its own individual status bit (ist).  
Parallel Polling with NI-488 Functions  
Follow these steps to implement parallel polling using NI-488 functions. Each step  
contains example code.  
1. Configure the device for parallel polling using the ibppc function, unless the device  
can configure itself for parallel polling.  
ibppc requires an 8-bit value to designate the data line number, the ist sense, and  
whether or not the function configures or unconfigures the device for the parallel  
poll. The bit pattern is as follows:  
0 1 1 E S D2 D1 D0  
E is 1 to disable parallel polling and 0 to enable parallel polling for that particular  
device.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-10  
© National Instruments Corp.  
Chapter 7  
GPIB Programming Techniques  
S is 1 if the device is to assert the assigned data line when ist = 1, and 0 if the  
device is to assert the assigned data line when ist = 0.  
D2 through D0 determine the number of the assigned data line. The physical line  
number is the binary line number plus one. For example, DIO3 has a binary bit  
pattern of 010.  
The following example code configures a device for parallel polling using NI-488  
functions. The device asserts DIO7 if its ist= 0.  
In this example, the ibdevcommand is used to open 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 "decl.h"  
char ppr;  
dev = ibdev(0,3,0,T3s,1,0);  
/* Pass the binary bit pattern, 0110 0110 or hex 66, to  
ibppc */  
ibppc(dev, 0x66);  
If the GPIB interface board configures itself for a parallel poll, you should still use  
the ibppc function. Pass the board index or a board unit descriptor value as the  
first argument in ibppc. In addition, if the individual status bit (ist) of the board  
needs to be changed, use the ibistfunction.  
In the following example, the GPIB board is to configure itself to participate in a  
parallel poll. It asserts DIO5 when ist = 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.  
ibrpp(dev, &ppr);  
if (ppr & 0x10) printf("ist = 1\n");  
3. Unconfigure the device for parallel polling with ibppc. Notice that any value  
having the parallel poll disable bit set (bit 4) in the bit pattern disables the  
configuration, so you can use any value between hex 70 and 7E.  
ibppc(dev, 0x70);  
© National Instruments Corp.  
Download from Www.Somanuals.c7o-m1.1All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
GPIB Programming Techniques  
Chapter 7  
Parallel Polling with NI-488.2 Routines  
Follow these steps to implement parallel polling using NI-488.2 routines. Each step  
contains example code.  
1. Configure the device for parallel polling using the PPollConfigroutine, unless  
the device can configure itself for parallel polling. The following example  
configures a device at address 3 to assert data line 5 (DIO5) when its ist value is 1.  
#include "decl.h"  
char response;  
Addr4882_t AddressList[2];  
/* The following command clears the GPIB. */  
SendIFC(0);  
/* The value of sense is compared with the ist bit of the  
device and determines whether the data line is asserted.*/  
PPollConfig(0,3,5,1);  
2. Conduct the parallel poll using 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 = 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. Check the bit in the following  
statement. */  
if (response & 0x10) {  
printf("The ist equals 1.\n");  
}
else {  
printf("The ist equals 0.\n");  
}
3. Unconfigure the device for parallel polling using the PPollUnconfigroutine 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 NOADDRis the only  
value in the array, all devices receive the parallel poll disable message.  
AddressList[0] = 3;  
AddressList[1] = NOADDR;  
PPollUnconfig(0, AddressList);  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
7-12  
© National Instruments Corp.  
Chapter 8  
wibconf–Windows Interface Bus  
Configuration Utility  
This chapter contains a description of wibconf, the software configuration program you  
can use to configure the NI-488.2 software for Windows.  
Overview  
The wibconfutility is a screen-oriented, interactive program you can use to view or  
modify the configuration parameters of your GPIB interface boards and the GPIB devices  
connected to them. Usually, you use wibconfto modify the hardware settings of your  
GPIB interface boards.  
The wibconfutility can read in and display configuration parameters for the NI-488.2  
driver file on disk. You can then save the changes back to the disk file. wibconfalso  
has a supplementary batch mode which can be used for configuring in a non-interactive  
fashion.  
Instead of using wibconf, you can configure your driver programmatically by using the  
ibconfig function to alter any of the board or device characteristics while your  
program is running. If you use dynamic configuration, you do not need to run wibconf  
before you start your application. Also, you can run your application on any computer  
with the appropriate NI-488.2 software regardless of its configuration because the  
application configures the driver as necessary. Programmatic configuration is the  
preferred method of GPIB application development.  
Starting wibconf  
The simplest way to use wibconfis to double-click on the wibconf icon in your  
GPIB group in the Windows Program Manager. Windows pops up a dialog box  
labeled Parameters.  
By default, wibconf looks for the NI-488.2 software configuration file, gpib.ini, in  
the c:\windowsdirectory. If you installed Windows in a directory other than  
c:\windows, specify the full path to the gpib.inifile in the Parameters box. For  
example, if you installed Windows in the directory d:\win3, type  
d:\win3\gpib.iniin the Parameters dialog box.  
If you installed Windows in the default directory, simply press <Return>.  
© National Instruments Corp.  
8-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
Table 8-1 lists the options you can select when you start wibconf.  
Table 8-1. Options for Starting wibconf  
wibconf Option  
Action  
driver  
Configure a specific driver.  
wibconf configures the given driver configuration file (for  
example, wibconf d:\win3\gpib.ini).  
-h  
Help.  
This option causes wibconf to display a summary of options.  
-b filename  
Batch mode configuration.  
wibconf is run in batch mode using the configuration  
information contained in the given file (for example, wibconf  
-b gpib.cfg). See the wibconf Batch Mode section later in  
this chapter.  
-e  
Expert mode.  
This option disables wibconfwarning messages when you exit  
wibconf. See the Exiting wibconf section later in this chapter.  
-m  
Monochrome mode.  
This option causes wibconf to run in monochrome mode even if  
you have a color monitor.  
-vb  
Video access through BIOS.  
This option causes wibconf to use the system BIOS routines  
when writing to the screen. This is slower than the default of  
direct screen access, but is more compatible with certain  
nonstandard systems.  
Upper and Lower Levels of wibconf  
wibconf operates at both an upper and a lower level. The upper level consists of the  
device map that gives a graphical picture of the GPIB system. The lower level consists  
of screens describing the individual boards and devices that make up the system.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-2  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Upper-Level Device Map  
Figure 8-1 shows the upper level of wibconf.  
Figure 8-1. Upper Level of wibconf  
As shown in Figure 8-1, the upper-level screen of wibconf displays the names of all  
devices controlled by the driver. It also indicates which devices, if any, are accessed  
through each interface board. You can move around the map by using the cursor control  
keys or the mouse.  
The following options are available at the upper level.  
Device maps of the boards  
Help  
Rename  
(Dis)connect  
Edit  
Exit  
© National Instruments Corp.  
8-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
Device Maps of  
the Boards  
Use <PageUp> or <PageDown> to toggle between the device maps  
for the different GPIB interface boards. These boards are referred  
to as access boards. The maps show which devices are assigned to  
each board.  
Help  
Use the function key <F1> to access the comprehensive, online  
help feature of wibconf. The help information describes the  
functions and common terms associated with the upper level of  
wibconf.  
Rename  
Use the function key <F4> to rename a device. Move to the device  
you want to rename by using the cursor control keys. Press the  
<F4> key and enter the new name of the device. The device name  
may contain up to eight characters in lowercase or uppercase.  
The following restrictions apply when renaming a device:  
Extensions (.xxx) are not allowed  
As specified by DOS, the device name cannot use the following  
characters:  
.
|
"
<
/
>
\
+
[
=
]
;
:
,
Do not use the reserved names con or nul for your device  
Do not give GPIB device names the same names as files,  
directories, or subdirectories. If you name a GPIB device  
pltr and your file system contains the file pltr.dator a  
subdirectory pltr, a conflict results.  
The names of the access boards gpib0, gpib1, gpib2, and  
gpib3 are fixed and connot be changed.  
(Dis)connect  
Use the function key <F5> to connect or disconnect a device from  
a particular access board. Move the cursor to the device that you  
want to connect or disconnect by using the cursor control keys and  
then press the <F5> key.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-4  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Edit  
Use the function key <F8> or the <Enter> key to edit or examine  
the characteristics of a particular board or device. Move to the  
board or device that you want to edit using the cursor control keys  
and then press the <F8> key. This step puts you in the lower level  
of wibconf and lists the characteristics for the particular board or  
device that you want to edit. To exit edit, press the function key  
<F9> or <Escape> to return to the upper level.  
Exit  
Use the function key <F9> or <Escape> to exit wibconf. If you  
have made changes, wibconf prompts you to save the changes  
before exiting. For more information, refer to the Exiting wibconf  
section later in this chapter.  
Lower-Level Device/Board Characteristics  
The lower-level screens of wibconf display the currently defined values for  
characteristics of a device or board such as addressing and timeout information, as shown  
in Figure 8-2.  
Figure 8-2. Lower Level of wibconf  
© National Instruments Corp.  
8-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
You can access the lower-level screens from the map level of wibconf by selecting a  
board or device and pressing <F8>. You can use the <Up>, <Down>, <PageUp>, and  
<PageDown> cursor keys to select a characteristic. For your convenience, cursor control  
keys and function keys are defined at the bottom of your computer screen.  
Selecting the configuration settings for each device and board customizes the  
communications and other options to be used with that board or device. The access board  
uses these settings either when device functions are called to program the device or when  
board functions are called to program the board.  
The following options are available at the lower level.  
Change Characteristics  
Change Board or Device  
Help  
Reset Value  
Return to Map  
Change  
Characteristics  
To change a specific characteristic of a device or a board, move the  
cursor to, or click the mouse, on the field for that characteristic.  
You can also use <PageUp>, <PageDown>, <Home>, or <End> to  
select other characteristics of a device or board. When the cursor  
is on the characteristic, either use the left/right arrow keys to select  
between different options or input the option directly from the  
keyboard. Instructions on the right side of the screen inform you  
which method is appropriate for the selected characteristic.  
Change Board  
or Device  
Use <Control-PageUp> and <Control-PageDown> to change to the  
next or previous GPIB board or device. For example, if you are  
editing dev3 and press <Control-PageUp>, you will then be  
editing dev4.  
Help  
Use the function key <F1> to access the comprehensive, online  
help feature of wibconf. The help information describes the  
functions and common terms associated with the lower level of  
wibconf.  
Reset Value  
Use the function key <F6> to reset a characteristic option to its  
previous value.  
Return to Map  
At the lower level, the function key <F9> or <Escape> returns you  
to the upper-level device map of wibconf.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-6  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Board and Device Configuration Options  
To view detailed information about each characteristic, position the cursor in the field for  
that characteristic. For information on characteristics specific to a particular driver,  
check the getting started manual that came with your interface board. The following  
paragraphs describe the options available in wibconf for the NI-488.2 software for  
Windows.  
Primary GPIB Address  
All devices and boards must be assigned a unique primary address in the range hex 00 to  
hex 1E (0 to 30 decimal). The default primary address of all GPIB boards is 0.  
The GPIB primary address of any device is set within the device, either with hardware  
switches or a by software program. The address set within the device must correspond to  
the address in the memory-resident driver. In the NI-488.2 driver for Windows, the  
default primary addresses of dev1through dev16, and dev17 through dev32, are 1  
through 16, respectively. Refer to the device documentation for instructions about setting  
the device address. GPIB boards do not have hardware switches to select the GPIB  
address.  
The primary GPIB address is used to compute the talk and listen addresses of devices and  
boards. The NI-488.2 driver automatically forms a listen address by adding hex 20 to the  
primary address and a talk address by adding hex 40 to the primary address. For  
example, a primary address of hex 10 has a listen address of hex 30 and a talk address of  
hex 50.  
Secondary GPIB Address  
Any device or board using extended addressing must be assigned a secondary address in  
the range hex 60 to hex 7E (96 to 126 decimal), or you can select NONEto disable  
secondary addressing.  
As with primary addressing, the secondary GPIB address of a device is set within that  
device, either with hardware switches or by a software program. The address set within  
the device must correspond to the address in the memory-resident driver. Refer to the  
device documentation for instructions about secondary addressing. The default setting  
for this characteristic is NONEfor all boards and devices.  
Timeout Setting  
The timeout value is the approximate length of time that GPIB functions wait for data to  
be transferred or commands to be sent. It is also the length of time that the ibwait  
function waits for an event before returning, if the TIMO bit is set in the event mask. For  
example, if the SRQI bit and TIMO bit in the event mask are passed to the ibwait  
function and no SRQ is detected, then the function times out after the timeout period has  
elapsed. The default option for this characteristic is 10 s.  
© National Instruments Corp.  
8-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
Serial Poll Timeouts (Device Characteristic Only)  
This timeout value controls the length of time the driver waits for a serial poll response  
from a device. The IEEE 488.1 specification does not specify the length of time a  
Controller should wait for the response byte. The default of 1 s should work for most  
devices. If you seem to have problems with serial polls, try using a longer timeout value.  
Terminate Read on EOS  
Some devices send an EOS byte signaling the last byte of a data message. A yes  
response in this field causes the GPIB board to terminate a read operation when it  
receives the EOS byte. The default option for this characteristic is no.  
Set EOI with EOS on Writes  
A yes response in this field causes the GPIB board to assert the EOI line when the EOS  
byte is detected on a write operation. The default option for this characteristic is no.  
Type of Compare on EOS  
This field specifies the type of comparison to be made with the EOS byte. You can state  
whether to compare all eight bits or just the seven least significant bits, which are in  
ASCII or ISO (International Standards Organization) format. The default option for this  
characteristic is 7-bit.  
Note: This field is only meaningful if a yesresponse was given for either the Set  
EOI with EOS on Write field or the Terminate Read on EOS field.  
EOS Byte  
Some devices can be programmed to terminate a read operation when a selected character  
is detected. A linefeed character (hex 0A) is a common EOS byte. The default option for  
this characteristic is 00H.  
Note: The driver does not automatically append an EOS byte to the end of data  
strings on write operations. You must explicitly include this byte in your data  
string. The EOS byte is used only so that the driver terminates read  
operations properly.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-8  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Send EOI at End of Write  
Some devices, as Listeners, require that the Talker terminate a data message by asserting  
the EOI line with the last byte. A yesresponse causes the GPIB board to assert the EOI  
line on the last data byte. The default option for this characteristic is yes.  
System Controller (Board Characteristic Only)  
This field appears on the board characteristics screen only. The System Controller in a  
GPIB system is the device that maintains ultimate control over the bus. In some  
situations, such as a network of computers linked by the GPIB, another device may be  
System Controller and the GPIB board should be designated as not System Controller. A  
no response would designate not System Controller and a yes response would designate  
System Controller capability. The GPIB board is usually designated as System  
Controller. The default option for this characteristic is yes.  
Note: You should not have more than one designated System Controller in any GPIB  
system.  
Assert REN when SC (Board Characteristic Only)  
A yes response to this field causes Remote Enable (REN) to be asserted automatically  
whenever the board is placed online, if that the board has System Controller capability.  
If you give a no response, an explicit call to ibsreis required to assert REN. The  
default option for this characteristic is no.  
Enable Auto Serial Polling (Board Characteristic Only)  
This option enables or disables automatic serial polls of devices when the GPIB Service  
Request (SRQ) line is asserted. Positive poll responses are stored following the polls and  
can be read with the ibrspdevice function. Normally, this feature does not conflict  
with devices that conform to the IEEE 488.1 specification. If a conflict exists with a  
device, use a no response for this field to disable this feature. The default option for this  
characteristic is yes.  
Enable CIC Protocol (Board Characteristic Only)  
If a device-level NI-488 function is called after control has been passed to another device,  
enabling this protocol causes the board to assert SRQ with a Serial Poll status byte of  
hex 42. The current Controller must recognize that the board wants to regain control. If  
the current Controller passes control back to the board, the device call proceeds as  
intended. If control is not passed within the timeout period, or if the CIC protocol is  
disabled, the ECIC error is returned. The default option for this characteristic is no.  
© National Instruments Corp.  
8-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
Bus Timing (Board Characteristic Only)  
This field specifies the T1 delay of the source handshake capability for the board. This  
delay determines the minimum amount of time, after the data is placed on the bus, that  
the board may assert DAV during a write or command operation. If the total length of  
the GPIB cable length in the system is less than 15 m, the value of 350 ns is appropriate.  
Other factors might affect the choice of the T1 delay, although they are unlikely to affect  
your system setup. Refer to the ANSI/IEEE Standard 488.1-1987, Section 5.2, for more  
information about these other factors. The default for this option is 500 ns.  
Cable Length for High Speed (Board Characteristic Only)  
This field specifies the number of meters of GPIB cable you have in your system. If you  
use the HS488 high-speed protocol to communicate with HS488-compliant devices, you  
must specify the total number of meters of GPIB cable in your system. The System  
Controller, when it initializes the GPIB, must send this information to all HS488 devices  
so that high-speed transfers occur without errors.  
Parallel Poll Duration (Board Characteristic Only)  
This field specifies the length of time the driver waits when conducting a parallel poll.  
For a normal bus configuration (the Controller and devices on the same bus) use the  
default duration of 2 µs. If you are using a GPIB bus extender in transparent parallel poll  
mode, you should increase the poll duration to 10 µs so that the bus extender can operate  
transparently to your applications.  
Use This GPIB Interface (Board Characteristic Only)  
If you do not want the driver to try to access a board at the selected base address (because  
you do not have a board in the system), select nofor this option. When this field is set to  
no, the driver returns the EDVR error as soon as a program tries to access the board. By  
default, access board gpib0is enabled, and gpib1, gpib2, and gpib3 are disabled.  
Base I/O Address (Board Description Only)  
This field specifies the I/O address of the GPIB board. It must be set to the same value as  
the base I/O address setting for the GPIB board itself. Setting the base I/O address level  
is explained in the getting started manual that you received with your GPIB interface  
board.  
Note: On some systems, this field is read-only and you cannot change it using  
wibconf. Refer to your getting started manual for information on how  
to change the I/O address.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-10  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
DMA Channel (Board Characteristic Only)  
This field specifies the DMA channel used by the GPIB board. It must be set to the same  
value as the DMA channel (arbitration level for Micro Channel systems) setting for the  
GPIB board itself. Setting the DMA channel is explained in the getting started manual  
that you received with your GPIB interface board.  
Note: On some systems, you can only enable or disable the use of DMA with the  
wibconf utility. You cannot change the DMA channel setting. Refer to your  
getting started manual for information on how to change the DMA channel.  
Interrupt Jumper Setting (Board Characteristic Only)  
This field specifies the interrupt line used by the GPIB board. It must be set to the same  
value as the interrupt level setting for the GPIB board itself. Setting the interrupt level is  
explained in the getting started manual that you received with your GPIB board.  
Note: On some systems, you can only enable or disable the use of interrupts with the  
wibconf utility. You cannot change the IRQ request line. Refer to your  
getting started manual for information on how to change the interrupt level.  
Enable Repeat Addressing (Device Characteristic Only)  
Normally, devices are not addressed each time a read or write operation is performed. If  
no is selected, read or write operations do not readdress the selected device if the same  
operation was just performed with that device. Avoiding readdressing saves some time  
when you have several GPIB operations to perform. But it might be a problem for some  
older IEEE 488.1 devices that require their GPIB address to be sent with each I/O  
operation. Select yesto enable repeat addressing in such a situation. The default option  
for this characteristic is no.  
GPIB-PCII/IIA Mode Switch  
The driver that is included with the GPIB-PCII and GPIB-PCIIA interface board kits is  
the same for each kit and can run with both boards. Use this field to indicate the type of  
board that is installed in your system. You can have both a GPIB-PCII and a  
GPIB-PCIIA interface board installed in your system at the same time.  
© National Instruments Corp.  
8-11  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
Default Configurations in wibconf  
This section lists the default configuration values of the NI-488.2 driver.  
Thirty-two devices with symbolic names dev1 through dev32.  
Four access boards with symbolic names gpib0, gpib1, gpib2, and gpib3. You  
cannot change the access board names.  
Access board gpib0is enabled. gpib1, gpib2, and gpib3 are disabled.  
The GPIB addresses of the first 16 devices are the same as the device number. For  
example, dev is at address 1. These 16 devices are assigned to the access board  
gpib0.  
The remaining 16 devices (that is, devices 17 through 32) are assigned to the access  
board gpib1. Their GPIB addresses range from 1 through 16, respectively. For  
example, dev17 is at address 1.  
Each GPIB interface board is System Controller for its independent bus and has a  
GPIB address of 0.  
The END message is sent with the last byte of each data message to a device. No  
end-of-string (EOS) character is recognized.  
The timeout value for I/O and wait functions is set for 10 s.  
Each GPIB board and device is set to perform I/O transfers using DMA.  
Automatic serial polling is enabled.  
At the end of each NI-488.2 routine, the NI-488.2 driver leaves the bus in its currently  
addressed state (IEEE 488.2 standard).  
Exiting wibconf  
After you have made all your changes, you can exit wibconf by pressing <F9> or  
<Esc>. The program prompts you to save the changes. Select Yesto save the changes,  
No to discard the changes, or cancel to remain in wibconf.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-12  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Checking for Errors  
Unless you started in expert mode, wibconfchecks for possible problems before  
quitting. It alerts you to situations such as the following:  
GPIB addressing conflict between a device and its access board  
GPIB boards not present in the host machine at the specified address  
Timeouts disabled on a device or board  
To disable automatic checking when starting wibconf, use the -e option.  
wibconf Batch Mode  
The wibconfbatch mode offers an alternative method for modifying the configurations  
of the NI-488.2 driver. Batch mode can also modify the loaded driver.  
In batch mode, the configuration information is contained in a configuration file that you  
create. To use the configuration file that you created, enter the following command:  
wibconf -b filename  
where filename is the name of the configuration file. You must include at least one  
space between -b and filename.  
The configuration file is a free-form text file consisting of pairs of items. Each item must  
be separated by at least one space or new line character. The first item of a pair is a  
mnemonic that represents a board or device characteristic or a device map configuration  
function (for example, rename, connect, disconnect) to be configured. The  
second item of a pair is the value to which the first item (mnemonic) should be set.  
Before configuring a board or device, that board or device must be found by the find  
name# pair, where nameis board or deviceand #is the index of the GPIB board or  
device you are configuring.  
When wibconf is run in batch mode, it checks the syntax of the first item in the pair  
and the value range of the second item, and it reports any errors as it finds them. If a  
value range error is found, the correct range of values is displayed. If any errors are  
found, the driver is not configured.  
© National Instruments Corp.  
8-13  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
wibconf-Windows Interface Bus Configuration Utility  
Chapter 8  
The following example is a sample configuration file followed by an explanation of each  
entry.  
find device1 name plotter  
find device2 disconnect  
find device3 connect board1  
find board0 pad 2 tmo 30sec eos 0x1E sc no  
bin 8-bit tmng 350nsec  
This example makes the following changes:  
1. Change the name of the first device to plotter.  
2. Disconnect the second device.  
3. Connect the third device to board 1 (gpib1).  
4. Change the configuration of board 0 (gpib0).  
Primary address to 2 (pad 2)  
Timeout setting to 30 s (tmo 30sec)  
EOS byte to hex 1E (eos 0x1E)  
System Controller capability to NO (sc no)  
Type of compare on EOS to 8-bit (bin 8-bit)  
GPIB bus timing to 350 ns (tmng 350nsec)  
Table 8-2 contains a list of the valid pairs of items. You can enter number values as  
decimal or hexadecimal. Hexadecimal numbers must be preceded with 0x. For  
example, decimal 64 would be written as 0x40. For more information about valid input  
values, refer to the relevant function descriptions in the NI-488.2 Function Reference  
Manual for DOS/Windows.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
8-14  
© National Instruments Corp.  
Chapter 8  
wibconf-Windows Interface Bus Configuration Utility  
Table 8-2. wibconf Batch Mode Command Pairs  
First Item  
Explanation  
Second Item  
Mnemonic  
find  
pad  
Find board or device  
board# or device#  
number  
Primary GPIB address  
sad  
Secondary GPIB address  
Timeout settings  
number  
tmo  
mnemonic  
xeos  
bin  
Set EOI with EOS on write  
Type of compare on EOS  
Set EOI with last byte of write  
System Controller (board only)  
Assert REN when SC (board only)  
Enable auto serial polling (board only)  
Timing (board only)  
yes or no  
7-bitor 8-bit  
yes or no  
eot  
sc  
yes or no  
sre  
yes or no  
spoll  
tmng  
yes or no  
2msec, 500nsec, or  
350nsec  
_
cic prot  
CIC protocol (board only)  
yes or no  
number  
int  
Interrupt setting (board only)  
Base I/O address (board only)  
DMA channel (board only)  
port  
number  
dma  
number  
raddr  
name  
Repeat addressing (device only)  
Rename a device (device only)  
Connect a device to a board (device only)  
yes or no  
device name  
board#  
no value  
connect  
disconnect  
Disconnect a device from a board (device  
only)  
type  
Switch the current board to PCII or PCIIA  
mode  
PCII or PCIIA  
pplength  
useboard  
spolltmo  
Parallel poll duration (board only)  
Use this interface board (board only)  
Serial Poll Timeout (device only)  
mnemonic  
yes or no  
mnemonic  
© National Instruments Corp.  
8-15  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix A  
Status Word Conditions  
This appendix gives a detailed description of the conditions reported in the status word,  
ibsta.  
For information about how to use ibsta in your application program, refer to Chapter 3,  
Developing Your Application.  
If a function call returns an ENEB or EDVR error, all status word bits except the ERR bit  
are cleared, indicating that it is not possible to obtain the status of the GPIB board.  
Each bit in ibsta can be set for device calls (dev), board calls (brd), or both (dev, brd).  
The following table lists the status word bits.  
Table A-1. Status Word Bits  
Bit  
Hex  
Value  
Mnemonic Pos.  
Type  
Description  
ERR  
15  
14  
13  
12  
11  
10  
8000  
4000  
2000  
1000  
800  
dev, brd GPIB error  
TIMO  
END  
dev, brd Time limit exceeded  
dev, brd END or EOS detected  
SRQI  
RQS  
brd  
dev  
brd  
SRQ interrupt received  
Device requesting service  
SPOLL  
400  
Board has been serial polled by  
Controller  
EVENT  
CMPL  
LOK  
9
8
7
6
5
4
3
2
1
0
200  
100  
80  
40  
20  
10  
8
brd  
DCAS, DTAS, or IFC event has occurred  
dev, brd I/O completed  
brd  
brd  
brd  
brd  
brd  
brd  
brd  
brd  
Lockout State  
REM  
Remote State  
CIC  
Controller-In-Charge  
Attention is asserted  
Talker  
ATN  
TACS  
LACS  
DTAS  
DCAS  
4
Listener  
2
Device Trigger State  
Device Clear State  
1
© National Instruments Corp.  
A-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Status Word Conditions  
Appendix A  
ERR (dev, brd)  
ERR is set in the status word following any call that results in an error. You can  
determine the particular error by examining the error variable iberr. Appendix B,  
Error Codes and Solutions, describes error codes that are recorded in iberr along with  
possible solutions. ERR is cleared following any call that does not result in an error.  
TIMO (dev, brd)  
TIMO indicates that the timeout period has been exceeded. TIMO is set in the status  
word following an ibwaitcall if the TIMO bit of the ibwaitmask parameter is set  
and the time limit expires. TIMO is also set following any synchronous I/O functions  
(for example, ibcmd, ibrd, ibwrt, Receive, Send, and SendCmds) if a timeout  
occurs during one of these calls. TIMO is cleared in all other circumstances.  
END (dev, brd)  
END indicates either that the GPIB EOI line has been asserted or that the EOS byte has  
been received, if the software is configured to terminate a read on an EOS byte. If the  
GPIB board is performing a shadow handshake as a result of the ibgts function, any  
other function can return a status word with the END bit set if the END condition occurs  
before or during that call. END is cleared when any I/O operation is initiated.  
Some applications might need to know the exact I/O read termination mode of a read  
operation–EOI by itself, the EOS character by itself, or EOI plus the EOS character. You  
can use the ibconfigfunction (option IbcEndBitIsNormal) to enable a mode in  
which the END bit is set only when EOI is asserted. In this mode, if the I/O operation  
completes because of the EOS character by itself, END is not set. The application should  
check the last byte of the received buffer to see if it is the EOS character.  
SRQI (brd)  
SRQI indicates that a GPIB device is requesting service. SRQI is set whenever the GPIB  
board is CIC, the GPIB SRQ line is asserted, and the automatic serial poll capability is  
disabled. SRQI is cleared either when the GPIB board ceases to be the CIC or when the  
GPIB SRQ line is unasserted.  
RQS (dev)  
RQS appears in the status word only after a device-level call. It indicates that one or  
more serial poll response bytes are waiting in the device’s serial poll response queue.  
Automatic serial poll responses are not stored in the response queue unless they have  
bit 6 set.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
A-2  
© National Instruments Corp.  
Appendix A  
Status Word Conditions  
An automatic serial poll occurs either as a result of a call to ibwait, or automatically, if  
automatic serial polling is enabled. If the serial poll response queue is not empty, ibrsp  
returns the oldest byte stored in the queue. To empty the response queue, call ibrsp  
repeatedly until RQS is no longer set in the device's status word.  
SPOLL (brd)  
Use SPOLL in Talker/Listener applications to determine when the Controller has serial  
polled the GPIB board. The SPOLL bit is disabled by default. Use the ibconfig  
function (option IbcSPollBit) to enable it. When this bit is enabled, it is set after the  
board has been polled. SPOLL is cleared on any call immediately after an ibwaitcall,  
if the SPOLL bit was set in the wait mask, or immediately following a call to ibrsv.  
EVENT (brd)  
Use EVENT in Talker/Listener applications (applications in which the GPIB interface is  
not the Controller) to monitor the order of GPIB device clear, group execute trigger, and  
send interface clear commands. The usual DCAS and DTAS bits of ibstamight be  
insufficient.  
The EVENT bit is disabled by default. If you want to use this bit, you must use the  
ibconfigfunction (option IbcEventQueue) to enable it. When you enable this bit,  
the DCAS and DTAS bits are disabled. When an event occurs, this bit is set and any I/O  
in progress is aborted. The application can then call the ibeventfunction to determine  
which event occurred.  
CMPL (dev, brd)  
CMPL indicates the condition of I/O operations. It is set whenever an I/O operation is  
complete. CMPL is cleared while the I/O operation is in progress.  
LOK (brd)  
LOK indicates whether the board is in a lockout state. While LOK is set, the  
EnableLocalroutine or ibloc function is inoperative for that board. LOK is set  
whenever the GPIB board detects that the Local Lockout (LLO) message has been sent  
either by the GPIB board or by another Controller. LOK is cleared when the System  
Controller unasserts the Remote Enable (REN) GPIB line.  
© National Instruments Corp.  
A-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Status Word Conditions  
Appendix A  
REM (brd)  
REM indicates whether or not the board is in the remote state. REM is set whenever the  
Remote Enable (REN) GPIB line is asserted and the GPIB board detects that its listen  
address has been sent either by the GPIB board or by another Controller. REM is cleared  
in the following situations:  
When REN becomes unasserted  
When the GPIB board as a Listener detects that the Go to Local (GTL) command has  
been sent either by the GPIB board or by another Controller  
When the ibloc function is called while the LOK bit is cleared in the status word  
CIC (brd)  
CIC indicates whether the GPIB board is the Controller-In-Charge. CIC is set when the  
SendIFCroutine or ibsic function is executed either while the GPIB board is System  
Controller or when another Controller passes control to the GPIB board. CIC is cleared  
either when the GPIB board detects Interface Clear (IFC) from the System Controller or  
when the GPIB board passes control to another device.  
ATN (brd)  
ATN indicates the state of the GPIB Attention (ATN) line. ATN is set whenever the  
GPIB ATN line is asserted, and it is cleared when the ATN line is unasserted.  
TACS (brd)  
TACS indicates whether the GPIB board is addressed as a Talker. TACS is set whenever  
the GPIB board detects that its talk address (and secondary address, if enabled) has been  
sent either by the GPIB board itself or by another Controller. TACS is cleared whenever  
the GPIB board detects the Untalk (UNT) command, its own listen address, a talk address  
other than its own talk address, or Interface Clear (IFC).  
LACS (brd)  
LACS indicates whether the GPIB board is addressed as a Listener. LACS is set  
whenever the GPIB board detects that its listen address (and secondary address, if  
enabled) has been sent either by the GPIB board itself or by another Controller. LACS is  
also set whenever the GPIB board shadow handshakes as a result of the ibgtsfunction.  
LACS is cleared whenever the GPIB board detects the Unlisten (UNL) command, its own  
talk address, Interface Clear (IFC), or that the ibgts function has been called without  
shadow handshake.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
A-4  
© National Instruments Corp.  
Appendix A  
Status Word Conditions  
DTAS (brd)  
DTAS indicates whether the GPIB board has detected a device trigger command. DTAS  
is set whenever the GPIB board, as a Listener, detects that the Group Execute Trigger  
(GET) command has been sent by another Controller. DTAS is cleared on any call  
immediately following an ibwait call, if the DTAS bit is set in the ibwaitmask  
parameter.  
DCAS (brd)  
DCAS indicates whether the GPIB board has detected a device clear command. DCAS is  
set whenever the GPIB board detects that the Device Clear (DCL) command has been  
sent by another Controller, or whenever the GPIB board as a Listener detects that the  
Selected Device Clear (SDC) command has been sent by another Controller. DCAS is  
cleared on any call immediately following an ibwait call, if the DCAS bit was set in  
the ibwait mask parameter. It also occurs on any call immediately following a read or  
write.  
© National Instruments Corp.  
A-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix B  
Error Codes and Solutions  
This appendix lists a description of each error, some conditions under which it might  
occur, and possible solutions.  
The following table lists the GPIB error codes.  
Table B-1. GPIB Error Codes  
Error  
Mnemonic  
iberr  
Value  
Meaning  
EDVR  
ECIC  
0
1
Windows error  
Function requires GPIB board to be CIC  
No Listeners on the GPIB  
GPIB board not addressed correctly  
Invalid argument to function call  
GPIB board not System Controller as required  
I/O operation aborted (timeout)  
Nonexistent GPIB board  
ENOL  
EADR  
EARG  
ESAC  
EABO  
ENEB  
EDMA  
EOIP  
2
3
4
5
6
7
8
DMA error  
10  
11  
12  
14  
15  
16  
20  
Asynchronous I/O in progress  
No capability for operation  
File system error  
ECAP  
EFSO  
EBUS  
ESTB  
ESRQ  
ETAB  
GPIB bus error  
Serial poll status byte queue overflow  
SRQ stuck in ON position  
Table problem  
EDVR (0)  
EDVR is returned in the following cases:  
The board or device name passed to ibfindis not configured in the software. In  
this case, the variable ibcntl contains the DOS error code 2, Device Not Found.  
© National Instruments Corp.  
B-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Error Codes and Solutions  
Appendix B  
An invalid unit descriptor is passed to any function call. In this case, the variable  
ibcntl contains the DOS error code 6, Invalid handle.  
The driver (gpib.dll) is not installed.  
The driver configuration file gpib.iniis not located in the windows directory. In  
this case, the variable ibcntl contains the value -1.  
The driver file gpib.iniis in the windows directory but not compatible with the  
driver file gpib.dllthat you are using. In this case, the variable ibcntlcontains  
a negative value other than -1.  
Solutions  
Use ibdev to open a device without specifying its symbolic name.  
Use only device or board names that are configured in the utility program wibconf  
as parameters to the ibfindfunction.  
Use the unit descriptor returned from ibfindas the first parameter in subsequent  
NI-488 functions. Examine the variable before the failing function to make sure the  
function has not been corrupted.  
Make sure the NI-488.2 driver is installed by checking that gpib.dlland  
gpib.iniare in the windows directory (usually c:\windows).  
ECIC (1)  
ECIC is returned when one of the following board functions or routines is called while  
the board is not CIC:  
Any device-level NI-488 functions that affect the GPIB  
Any board-level NI-488 functions that issue GPIB command bytes, such as ibcmd,  
ibcmda, ibln, ibrpp  
ibcac, ibgts  
Any of the NI-488.2 routines that issue GPIB command bytes, such as SendCmds,  
PPoll, Send, Receive  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
B-2  
© National Instruments Corp.  
Appendix B  
Error Codes and Solutions  
Solutions  
Use ibsicor SendIFC to make the GPIB board become CIC on the GPIB.  
Use ibrsc 1to make sure your GPIB board is configured as System Controller.  
In multiple CIC situations, always be certain that the CIC bit appears in the status  
word ibsta before attempting these calls. If it does not appear, you can perform an  
ibwait (for CIC) call to delay further processing until control is passed to the board.  
ENOL (2)  
ENOL usually occurs when a write operation is attempted with no Listeners addressed.  
For a device write, this error indicates that the GPIB address configured for that device in  
the software does not match the GPIB address of any device connected to the bus, that  
the GPIB cable is not connected to the device, or that the device is not powered on.  
ENOL can also occur in situations in which the GPIB board is not the CIC and the  
Controller asserts ATN before the write call in progress has ended.  
Solutions  
Make sure that the GPIB address of your device matches the GPIB address of the  
device to which you want to write data.  
Use the appropriate hex code in ibcmdto address your device.  
Check your cable connections and make sure at least two-thirds of your devices are  
powered on.  
Call ibpad(or ibsad, if necessary) to match the configured address to the device  
switch settings.  
Reduce the write byte count to that which is expected by the Controller.  
EADR (3)  
EADR occurs when the GPIB board is CIC and is not properly addressing itself before  
read and write functions. This error is usually associated with board-level functions.  
EADR is also returned by the function ibgtswhen the shadow-handshake feature is  
requested and the GPIB ATN line is already unasserted. In this case, the shadow  
handshake is not possible and the error is returned to notify you of that fact.  
© National Instruments Corp.  
B-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Error Codes and Solutions  
Appendix B  
Solutions  
Make sure that the GPIB board is addressed correctly before calling ibrd, ibwrt,  
RcvRespMsg, or SendDataBytes.  
Avoid calling ibgtsexcept immediately after an ibcmdcall. ibcmd causes ATN  
to be asserted.  
EARG (4)  
EARG results when an invalid argument is passed to a function call. The following are  
some examples:  
ibtmo called with a value not in the range 0 through 17  
ibpad or ibsad called with invalid addresses  
ibppc called with invalid parallel poll configurations  
A board-level NI-488 call made with a valid device descriptor, or a device-level  
NI-488 call made with a board descriptor.  
An NI-488.2 routine called with an invalid address.  
PPollConfigcalled with an invalid data line or sense bit.  
Solutions  
Make sure that the parameters passed to the NI-488 function or NI-488.2 routine are  
valid.  
Do not use a device descriptor in a board function or vice-versa.  
ESAC (5)  
ESAC results when ibsic, ibsre, SendIFC, or EnableRemoteis called when the  
GPIB board does not have System Controller capability.  
Solutions  
Give the GPIB board System Controller capability by calling ibrsc 1 or by using  
wibconf to configure that capability into the software.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
B-4  
© National Instruments Corp.  
Appendix B  
Error Codes and Solutions  
EABO (6)  
EABO indicates that an I/O operation has been canceled, usually due to a timeout  
condition. Other causes for this error are calling ibstop or receiving the Device Clear  
message from the CIC while performing an I/O operation.  
Frequently, the I/O is not progressing (the Listener is not continuing to handshake or the  
Talker has stopped talking), or the byte count in the call which timed out was more than  
the other device was expecting.  
Solutions  
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 no GPIB board exists at the I/O address specified in the configuration  
program. This happens when the board is not physically plugged into the system, the I/O  
address specified during configuration does not match the actual board setting, there is a  
system conflict with the base I/O address, or the Use This GPIB Interfacefield  
in wibconf is not set correctly.  
Solutions  
Make sure there is a GPIB board in your computer that is properly configured both in  
hardware and software using a valid base I/O address.  
Make sure that the Use This GPIB Interfacefield in wibconf is set to Yes.  
EDMA (8)  
EDMA is returned when an error occurs using DMA for data transfers. If your computer  
has more than 16 MB of RAM and you do not have the National Instruments virtual  
GPIB device (nivgpibd.386) installed, the NI-488.2 software returns EDMA if you  
are using DMA and the data buffer is located in memory above 16 MB.  
© National Instruments Corp.  
B-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Error Codes and Solutions  
Appendix B  
If you are using Windows 3.0 with DMA for data transfers, and you do not have the  
National Instruments virtual DMA device (nivdmad.386) installed, the NI-488.2  
software returns EDMA if you try to use DMA to transfer data.  
Solutions  
Install the appropriate virtual device in the system.inifile in the Windows  
directory in the [386Enh] section. The following line installs the virtual GPIB  
device:  
device = drive:\path\nivgpib.386  
where drive and path describe the location of nivgpib.386on your hard drive.  
By default, only one GPIB board at a time can perform DMA. If you need to perform  
DMA transfers on multiple GPIB boards at the same time, add a new section to your  
system.inifile, [vgpibd]. In this section add the option  
NumBoardsUsingDMAand set it equal to the number of boards that will be  
performing DMA. For example, if you want two boards to perform DMA  
concurrently, add the following lines to the bottom of your system.inifile:  
[vgpibd]  
NumBoardsUsingDMA=2  
• To install the virtual DMA device, first change the default virtual DMA device line to a  
remark line by adding a semicolon. Then add a line to install the National Instruments  
virtual DMA device as follows:  
;device = *vdmad  
device = drive:\path\nivdmad.386  
where drive and path describe the location of nivdmad.386on your hard drive.  
Note: You must restart Windows after you modify the system.inifile.  
• Alternatively, you can correct the EDMA problem by disabling DMA in the software.  
You can use ibdma to disable DMA.  
EOIP (10)  
EOIP occurs when an asynchronous I/O operation has not finished before some other call  
is made. During asynchronous I/O, you can only use ibstop, ibwait, and ibonlor  
perform other non-GPIB operations. Once the asynchronous I/O has begun, further GPIB  
calls other than ibstop, ibwait, or ibonl are strictly limited. If a call might  
interfere with the I/O operation in progress, the driver returns EOIP.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
B-6  
© National Instruments Corp.  
Appendix B  
Error Codes and Solutions  
Solutions  
Resynchronize the driver and the application before making any further GPIB calls.  
Resynchronization is accomplished by using one of the following three functions:  
ibwait  
If the returned ibsta contains CMPL then 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 board lacks the ability to carry out an operation or when a  
particular capability has been disabled in the software and a call is made that requires the  
capability.  
Solutions  
Check the validity of the call, or make sure your GPIB interface board and the driver both  
have the needed capability.  
EFSO (12)  
EFSO results when an ibrdf or ibwrtf call encounters a problem performing a file  
operation. Specifically, this error indicates that the function is unable to open, create,  
seek, write, or close the file being accessed. The specific DOS error code for this  
condition is contained in ibcntl.  
Solutions  
Make sure the filename, path, and drive that you specified are correct.  
Make sure that the access mode of the file is correct.  
Make sure there is enough room on the disk to hold the file.  
© National Instruments Corp.  
B-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Error Codes and Solutions  
Appendix B  
EBUS (14)  
EBUS results when certain GPIB bus errors occur during device functions. All device  
functions send command bytes to perform addressing and other bus management.  
Devices are expected to accept these command bytes within the time limit specified by  
the default configuration or the ibtmo function. EBUS results if a timeout occurred  
while sending these command bytes.  
Solutions  
Verify that the instrument is operating correctly.  
Check for loose or faulty cabling or several powered-off instruments on the GPIB.  
If the timeout period is too short for the driver to send command bytes, increase the  
timeout period.  
ESTB (15)  
ESTB is reported only by the ibrspfunction. ESTB indicates that one or more serial  
poll status bytes received from automatic serial polls have been discarded because of a  
lack of storage space. Several older status bytes are available; however, the oldest is  
being returned by the ibrsp call.  
Solutions  
Call ibrsp more frequently to empty the queue.  
Disable autopolling with the ibconfigfunction or the wibconfutility.  
ESRQ (16)  
ESRQ occurs only during the ibwaitfunction or the WaitSRQ routine. ESRQ  
indicates that a wait for RQS is not possible because the GPIB SRQ line is stuck on. This  
situation can be caused by the following events:  
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.  
A GPIB bus tester or similar equipment might be forcing the SRQ line to be asserted.  
A cable problem might exist involving the SRQ line.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
B-8  
© National Instruments Corp.  
Appendix B  
Error Codes and Solutions  
Although the occurrence of ESRQ warns you of a definite GPIB problem, it does not  
affect GPIB operations, except that you cannot depend on the RQS bit while the  
condition lasts.  
Solutions  
Check to see if other devices not used by your application are asserting SRQ. Disconnect  
them from the GPIB if necessary.  
ETAB (20)  
ETAB occurs only during the FindLstn, FindRQS, and ibevent functions. ETAB  
indicates that there was some problem with a table used by these functions.  
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.  
In the case of FindRQS, ETAB means that none of the devices in the given table  
were requesting service.  
In the case of ibevent, ETAB means the event queue overflowed and event  
information was lost.  
Solutions  
In the case of FindLstn, increase the size of result arrays. In the case of FindRQS,  
check to see if other devices not used by your application are asserting SRQ. Disconnect  
them from the GPIB if necessary. In the case of ETAB returned from ibevent, call  
ibeventmore often to empty the queue.  
© National Instruments Corp.  
B-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Appendix C  
Customer Communication  
For your convenience, this appendix contains forms to help you gather the information  
necessary to help us solve technical problems you might have as well as a form you can  
use to comment on the product documentation. Filling out a copy of the Technical  
Support Form before contacting National Instruments helps us help you better and faster.  
National Instruments provides comprehensive technical assistance around the world. In  
the U.S. and Canada, applications engineers are available Monday through Friday from  
8:00 a.m. to 6:00 p.m. (central time). In other countries, contact the nearest branch  
office. You may fax questions to us at any time.  
Corporate Headquarters  
(512) 795-8248  
Technical support fax:  
(800) 328-2203  
(512) 794-5678  
Branch Offices  
Australia  
Austria  
Belgium  
Canada (Ontario)  
Canada (Quebec)  
Denmark  
Finland  
Phone Number  
03 9 879 9422  
0662 45 79 90 0  
02 757 00 20  
519 622 9310  
514 694 8521  
45 76 26 00  
90 527 2321  
1 48 14 24 24  
089 741 31 30  
2645 3186  
02 48301892  
03 5472 2970  
02 596 7456  
95 800 010 0793  
0348 433466  
32 84 84 00  
Fax Number  
03 9 879 9179  
0662 45 79 90 19  
02 757 03 11  
519 622 9311  
514 694 4399  
45 76 71 11  
90 502 2930  
1 48 14 24 14  
089 714 60 35  
2686 8505  
02 48301915  
03 5472 2977  
02 596 7455  
5 520 3282  
0348 430673  
32 84 86 00  
France  
Germany  
Hong Kong  
Italy  
Japan  
Korea  
Mexico  
Netherlands  
Norway  
Singapore  
Spain  
Sweden  
Switzerland  
Taiwan  
U.K.  
2265886  
2265887  
91 640 0085  
08 730 49 70  
056 200 51 51  
02 377 1200  
01635 523545  
91 640 0533  
08 730 43 70  
056 200 51 55  
02 737 4644  
01635 523154  
© National Instruments Corp.  
Download from Www.Somanuals.cCom-1. All Manuals Search And Download.  
NI-488.2 User Manual for Windows  
Technical Support Form  
Photocopy this form and update it each time you make changes to your software or  
hardware, and use the completed copy of this form as a reference for your current  
configuration. Completing this form accurately before contacting National  
Instruments for technical support helps our applications engineers answer your  
questions more efficiently.  
If you are using any National Instruments hardware or software products related to this  
problem, include the configuration forms from their user manuals. Include additional  
pages if necessary.  
Name  
Company  
Address  
Fax (  
)
Phone (  
)
Computer brand  
Model  
Processor  
Operating system  
Speed  
MHz  
RAM  
MB  
Display adapter  
Mouse  
yes  
no  
Other adapters installed  
Hard disk capacity  
Instruments used  
MB  
Brand  
National Instruments hardware product model  
Revision  
Configuration  
(continues)  
Download from Www.Somanuals.com. All Manuals Search And Download.  
National Instruments software product  
Version  
Configuration  
The problem is  
List any error messages  
The following steps will reproduce the problem  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Documentation Comment Form  
National Instruments encourages you to comment on the documentation supplied with  
our products. This information helps us provide quality products to meet your needs.  
Title: NI-488.2User Manual for Windows  
Edition Date:  
Part Number:  
January 1996  
370902A-01  
Please comment on the completeness, clarity, and organization of the manual.  
(continues)  
Download from Www.Somanuals.com. All Manuals Search And Download.  
If you find errors in the manual, please record the page numbers and describe the errors.  
Thank you for your help.  
Name  
Title  
Company  
Address  
Phone  
(
)
Mail to:  
Technical Publications  
National Instruments Corporation  
6504 Bridge Point Parkway,  
Austin, TX 78730-5039  
Fax to:  
Technical Publications  
National Instruments Corporation  
(512) 794-5678  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
Prefix  
Meaning  
Value  
-9  
n-  
nano-  
micro-  
milli-  
kilo-  
10  
-6  
µ-  
m-  
k-  
10  
-3  
10  
3
10  
M-  
mega-  
6
10  
A
acceptor handshake  
Listeners use this GPIB interface function to receive data, and  
all devices use it to receive commands. See 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.  
ASCII  
American Standard Code for Information Interchange.  
asynchronous  
An action or event that occurs at an unpredictable time with  
respect to the execution of a program.  
automatic serial polling A feature of the NI-488.2 software in which serial polls  
(autopolling)  
are executed automatically by the driver whenever a device  
asserts the GPIB SRQ line.  
B
base I/O address  
BIOS  
See I/O address.  
Basic Input/Output System.  
board-level function  
A rudimentary function that performs a single operation.  
© National Instruments Corp.  
Glossary-1 NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
C
CFE  
Configuration Enable is the GPIB command which precedes  
CFGn and is used to place devices into their configuration  
mode.  
CFGn  
CIC  
These GPIB commands (CFG1 through CFG15) follow CFE  
and are used to configure all devices for the number of meters  
of cable in the system so that HS488 transfers occur without  
errors.  
See Controller-In-Charge.  
Controller-In-Charge  
(CIC)  
The device that manages the GPIB by sending interface  
messages to other devices.  
CPU  
Central processing unit.  
D
DAV (Data Valid)  
DCL  
One of the three GPIB handshake lines. See handshake.  
Device Clear is the GPIB command used to reset the device or  
internal functions of all devices. See SDC.  
Device Clear  
See DCL.  
device-level function  
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.  
DIO1 through DIO8  
The GPIB lines that are used to transmit command or data  
bytes from one device to another.  
DLL  
Dynamic link library.  
DMA  
High-speed data transfer between the GPIB  
(direct memory access) board and memory that is not handled directly by the CPU.  
Not available on some systems. See programmed I/O.  
driver  
Device driver software installed within the operating system.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Glossary-2  
© National Instruments Corp.  
Glossary  
E
END or END message  
A message that signals the end of a data string. END is sent  
by asserting the GPIB End or Identify (EOI) line with the last  
data byte.  
EOI  
A GPIB line that is used to signal either the last byte of a data  
message (END) or the parallel poll Identify (IDY) message.  
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  
ESB  
End of transmission.  
The Event Status bit is part of the IEEE 488.2-defined status  
byte which is received from a device responding to a serial  
poll.  
G
GET  
Group Execute Trigger is the GPIB command used to trigger a  
device or internal function of an addressed Listener.  
Go To Local  
GPIB  
See GTL.  
General Purpose Interface Bus is the common name for the  
communications interface system defined in ANSI/IEEE  
Standard 488.1-1987 and ANSI/IEEE Standard 488.2-1987.  
GPIB address  
The address of a device on the GPIB, composed of a primary  
address (MLA and MTA) and an optional secondary address  
(MSA). The GPIB board has both a GPIB address and an I/O  
address.  
GPIB board  
Refers to the National Instruments family of GPIB interface  
boards.  
Group Executed Trigger See GET.  
GTL  
Go To Local is the GPIB command used to place an addressed  
Listener in local (front panel) control mode.  
© National Instruments Corp.  
Glossary-3 NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
H
handshake  
The mechanism used to transfer bytes from the Source  
Handshake function of one device to the Acceptor Handshake  
function of another device. The three GPIB lines DAV,  
NRFD, and NDAC are used in an interlocked fashion to signal  
the phases of the transfer, so that bytes can be sent  
asynchronously (for example, without a clock) at the speed of  
the slowest device.  
For more information about handshaking, refer to the  
ANSI/IEEE Standard 488.1-1987.  
hex  
Hexadecimal; a number represented in base 16, for example  
decimal 16 = hex 10.  
high-level function  
Hz  
See device-level function.  
Hertz.  
I
ibcnt  
After each NI-488.2 I/O function, this global variable contains  
the actual number of bytes transmitted.  
iberr  
ibsta  
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.  
IEEE  
Institute of Electrical and Electronic Engineers.  
interface message  
A broadcast message sent from the Controller to all devices  
and used to manage the GPIB.  
I/O (Input/Output)  
I/O address  
ist  
In the context of this manual, the transmission of commands  
or messages between the computer via the GPIB board and  
other devices on the GPIB.  
The address of the GPIB board from the point of view of the  
CPU, as opposed to the GPIB address of the GPIB board.  
Also called port address or board address.  
An Individual Status bit of the status byte used in the Parallel  
Poll Configure function.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Glossary-4  
© National Instruments Corp.  
Glossary  
K
KB  
Kilobytes.  
L
LAD (Listen Address)  
language interface  
See MLA.  
Code that enables an application program that uses NI-488  
functions or NI-488.2 routines to access the driver.  
listen address  
Listener  
See MLA .  
A GPIB device that receives data messages from a Talker.  
low-level function  
See board-level function.  
M
m
Meters.  
MAV  
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.  
MB  
Megabytes of memory.  
Resident in RAM.  
memory-resident  
MLA  
(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.  
MSA  
My Secondary Address is the GPIB command used to address  
(My Secondary 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.  
MTA (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.  
multitasking  
The concurrent processing of more than one program or task.  
© National Instruments Corp.  
Glossary-5 NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
N
NDAC  
(Not Data Accepted)  
One of the three GPIB handshake lines. See  
handshake.  
NRFD  
(Not Ready For Data)  
One of the three GPIB handshake lines. See  
handshake.  
P
parallel poll  
The process of polling all configured devices at once and  
reading a composite poll response. See serial poll.  
PIO  
PPC  
See programmed I/O.  
Parallel Poll Configure is the GPIB command  
(Parallel Poll Configure) used to configure an addressed Listener to participate in polls.  
PPD  
Parallel Poll Disable is the GPIB command used  
to disable a configured device from participating in polls.  
There are 16 PPD commands.  
(Parallel Poll Disable)  
PPE  
Parallel Poll Enable is the GPIB command used  
to enable a configured device to participate in polls and to  
assign a DIO response line. There are 16 PPE commands.  
(Parallel Poll Enable)  
PPU  
(Parallel Poll  
Unconfigure)  
Parallel Poll Unconfigure is the GPIB command  
used to disable any device from participating in  
polls.  
programmed I/O  
Low-speed data transfer between the GPIB board and memory  
in which the CPU moves each data byte according to program  
instructions. See DMA.  
R
RAM  
Random-access memory.  
resynchronize  
The NI-488.2 software and the user application must  
resynchronize after asynchronous I/O operations have  
completed.  
RQS  
Request Service.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Glossary-6  
© National Instruments Corp.  
Glossary  
S
s
Seconds.  
SDC  
Selected Device Clear is the GPIB command used to reset  
internal or device functions of an addressed Listener. See  
DCL and IFC.  
serial poll  
The process of polling and reading the status byte of one  
device at a time. See parallel poll.  
Service Request  
source handshake  
See SRQ.  
The GPIB interface function that transmits data and  
commands. Talkers use this function to send data, and the  
Controller uses it to send commands. See acceptor handshake  
and handshake.  
SPD  
Serial Poll Disable is the GPIB command used to  
cancel an SPE command.  
(Serial Poll Disable)  
SPE  
Serial Poll Enable is the GPIB command used to  
enable a specific device to be polled. That device must also be  
addressed to talk. See SPD.  
(Serial Poll Enable)  
SRQ (Service Request) The GPIB line that a device asserts to notify the CIC that the  
device needs servicing.  
status byte  
The IEEE 488.2-defined data byte sent by a device when it is  
serially polled.  
status word  
See ibsta.  
synchronous  
Refers to the relationship between the NI-488.2 driver  
functions and a process when executing driver functions is  
predictable; the process is blocked until the driver completes  
the function.  
System Controller  
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.  
© National Instruments Corp.  
Glossary-7 NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Glossary  
T
TAD (Talk Address)  
See MTA.  
Talker  
TCT  
A GPIB device that sends data messages to Listeners.  
Take Control is the GPIB command used to pass control of the  
bus from the current Controller to an addressed Talker.  
timeout  
TLC  
A feature of the NI-488.2 driver that prevents I/O functions  
from hanging indefinitely when there is a problem on the  
GPIB.  
An integrated circuit that implements most of the GPIB  
Talker, Listener, and Controller functions in hardware.  
U
ud (unit descriptor)  
A variable name and first argument of each function call that  
contains the unit descriptor of the GPIB interface board or  
other GPIB device that is the object of the function.  
UNL  
UNT  
Unlisten is the GPIB command used to unaddress any active  
Listeners.  
Untalk is the GPIB command used to unaddress an active  
Talker.  
W
wibconf  
wibic  
The NI-488.2 driver configuration program for Windows.  
The Interface Bus Interactive Control program for Windows is  
used to communicate with GPIB devices, troubleshoot  
problems, and develop your application.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Glossary-8  
© National Instruments Corp.  
Index  
Symbols  
! (repeat previous function) function, wibic, 5-15  
$ (execute indirect file) function, wibic, 5-16  
+ (turn display on) function, wibic, 5-15  
- (turn display off) function, wibic, 5-15  
A
Active Controller. See Controller-in-Charge (CIC).  
addresses. See GPIB addresses.  
AllSpoll routine, 7-8, 7-9 to 7-10  
ANSI/IEEE Standard 488.1-1987. See GPIB.  
application development. See also debugging.  
accessing NI-488.2 DLL, 3-1  
application examples  
asynchronous I/O, 2-6 to 2-7  
basic communication, 2-2 to 2-3  
basic communication with IEEE 488.2-compliant devices, 2-14 to 2-15  
clearing and triggering devices, 2-4 to 2-5  
end-of-string mode, 2-8 to 2-9  
non-controller example, 2-20 to 2-21  
parallel polls, 2-18 to 2-19  
serial polls using NI-488.2 routines, 2-16 to 2-17  
service requests, 2-10 to 2-13  
source code files, 2-1  
choosing between NI-488 functions and NI-488.2 routines, 3-1 to 3-3  
compiling, linking, and running applications  
Borland C++, 3-17  
direct entry with C, 3-22  
direct entry with Visual Basic, 3-23  
Microsoft C, 3-17  
Visual Basic applications, 3-18  
global variables for checking status, 3-3 to 3-5  
count variables - ibcnt and ibcntl, 3-5  
error variable - iberr, 3-5  
status word - ibsta, 3-3 to 3-4  
NI-488 applications  
clearing devices, 3-8  
configuring devices, 3-9  
flowchart of programming with device-level functions, 3-7  
general steps and examples, 3-8 to 3-10  
items to include, 3-6  
© National Instruments Corp.  
Index-1  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
opening devices, 3-8  
placing device offline, 3-10  
processing of data, 3-10  
program shell (illustration), 3-7  
reading measurement, 3-10  
triggering devices, 3-9  
waiting for measurement, 3-9 to 3-10  
NI-488 functions, 3-2 to 3-3  
advantages, 3-2  
board functions, 3-2 to 3-3  
device functions, 3-2  
one device per board, 3-2 to 3-3  
NI-488.2 applications  
configuring instruments, 3-15  
finding all Listeners, 3-13  
flowchart of programming with routines, 3-12  
general steps and examples, 3-13 to 3-16  
identifying instruments, 3-13 to 3-14  
initialization, 3-13  
initializing instruments, 3-14  
items to include, 3-11  
placing board offline, 3-16  
processing of data, 3-16  
program shell (illustration), 3-12  
reading measurement, 3-16  
triggering instruments, 3-15  
waiting for measurement, 3-15 to 3-16  
NI-488.2 routines, 3-3  
wibic for communicating with devices, 3-5  
asynchronous I/O application example, 2-6 to 2-7  
ATN (attention) line, 1-3  
ATN status word condition  
bit position, hex value, and type (table), 3-4  
description, A-4  
automatic serial polling. See serial polling.  
auxiliary functions, wibic  
! (repeat previous function), 5-15  
$ (execute indirect file), 5-16  
+ (turn display on), 5-15  
- (turn display off), 5-15  
buffer (set buffer display mode), 5-17  
help (display help information), 5-15  
n* (repeat function n times), 5-16  
print (display the ASCII string), 5-17  
set (select device or board), 5-15  
table of functions, 5-14  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-2  
© National Instruments Corp.  
Index  
B
base I/O address, setting, 8-10  
batch mode for wibconf utility, 8-13 to 8-15  
command pairs (table), 8-15  
configuration file, 8-13 to 8-14  
board configuration. See wibconf utility.  
board functions. See NI-488 functions.  
boards  
disabling access to GPIB board, 8-10  
testing with wibtest, 4-1 to 4-2  
Borland C++. See C language.  
buffer command (set buffer display mode), 5-17  
buffer history, viewing, 6-3  
bus timing, setting, 8-10  
C
C language  
compiling, linking, and running applications, 3-17  
direct entry, 3-18 to 3-22  
files available with NI-488.2 software, 1-7  
cables  
checking with wibtest, 4-2  
setting cable length for high-speed data transfers, 8-10  
Call Details window, GPIB Spy utility, 6-2  
calls  
highlighting, 6-3  
trapping, 6-3  
CIC. See Controller-in-Charge (CIC).  
CIC protocol  
enabling, 8-9  
making GPIB board Controller-in-Charge, 7-3 to 7-4  
CIC status word condition  
bit position, hex value, and type (table), 3-4  
description, A-4  
clearing and triggering devices, example, 2-4 to 2-5  
CMPL status word condition  
bit position, hex value, and type (table), 3-4  
description, A-3  
communication application examples  
basic communication, 2-2 to 2-3  
with IEEE 488.2-compliant devices, 2-14 to 2-15  
communication errors, 4-6  
repeat addressing, 4-6  
termination method, 4-6  
© National Instruments Corp.  
Index-3  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
compiling, linking, and running applications  
Borland C++, 3-17  
direct entry with C, 3-18 to 3-22  
direct entry with Visual Basic, 3-23  
Microsoft C, 3-17  
Visual Basic, 3-18  
configuration, 1-4 to 1-6. See also GPIB Spy utility; wibconf utility.  
controlling more than one board, 1-5  
linear and star system configuration (illustration), 1-4  
requirements, 1-5 to 1-6  
configuration errors, 4-5 to 4-6  
configuration file for wibconf batch mode, 8-13 to 8-14  
Configure (CFGn) message, 7-2  
Configure Enable (CFE) message, 7-2  
Controller-in-Charge (CIC)  
Active Controller as CIC, 1-1  
CIC protocol, 7-3, 8-9  
configuring GPIB board as CIC, 7-3 to 7-4, 8-9  
System Controller as, 1-1  
Controllers  
definition, 1-1  
emulation of non-controller GPIB, example, 2-20 to 2-21  
idle Controller, 1-1  
System Controller, 1-1, 8-9  
count, in wibic, 5-10  
count variables - ibcnt and ibcntl, 3-5  
customer communication, xvi, C-1  
D
data lines, 1-2  
data transfers  
high-speed (HS488), 7-2 to 7-3  
enabling, 7-2 to 7-3  
system configuration effects, 7-3  
terminating, 7-1 to 7-2  
DAV (data valid) line, 1-3  
DCAS status word condition  
bit position, hex value, and type (table), 3-4  
description, A-5  
monitoring for messages from Controller, 7-4  
debugging. See also GPIB Spy utility.  
common questions, 4-7 to 4-8 to 4-9  
communication errors, 4-6  
repeat addressing, 4-6  
termination method, 4-6  
configuration errors, 4-5 to 4-6  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-4  
© National Instruments Corp.  
Index  
global status variables, 4-3  
GPIB error codes (table), 4-4 to 4-5  
GPIB Spy utility, 4-4  
GPIBInfo utility, 4-2 to 4-3  
timing errors, 4-6  
wibic utility, 4-4  
wibtest diagnostics, 4-1 to 4-2  
cable connections, 4-2  
presence of board, 4-1 to 4-2  
presence of driver, 4-1  
default configurations in wibconf, 8-12  
DevClear routine, 3-14  
device configuration. See wibconf utility.  
device functions. See NI-488 functions.  
device-level calls and bus management, 7-3 to 7-4  
direct access to NI-488.2 dynamic link library  
compiling, linking, and running applications  
using C language, 3-18 to 3-22  
using Visual Basic, 3-23  
requirements, 3-1  
DMA channel, setting, 8-11  
documentation  
conventions used in manual, xv  
organization of manual, xi  
related documentation, xvi  
using the manual set, xiii  
drivers  
driver and driver utilities for NI-488.2 software, 1-6 to 1-7  
reconfiguring, 4-5  
testing with wibtest, 4-1  
DTAS status word condition  
bit position, hex value, and type (table), 3-4  
description, A-5  
monitoring for message from Controller, 7-4  
dynamic link library, GPIB. See NI-488.2 DLL.  
E
EABO error code  
definition (table), 4-5  
description, B-5  
EADR error code  
definition (table), 4-5  
description, B-3 to B-4  
EARG error code  
definition (table), 4-5  
description, B-4  
wibic example, 5-12  
© National Instruments Corp.  
Index-5  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
EBUS error code  
definition (table), 4-5  
description, B-8  
ECAP error code  
definition (table), 4-5  
description, B-7  
ECIC error code  
definition (table), 4-5  
description, B-2 to B-3  
EDMA error code  
definition (table), 4-5  
description, B-5 to B-6  
EDVR error code  
definition (table), 4-5  
description, B-1 to B-2  
wibic example, 5-11  
EFSO error code  
definition (table), 4-5  
description, B-7  
end-of-string character. See EOS.  
END status word condition  
bit position, hex value, and type (table), 3-4  
description, A-1 to A-2  
ENEB error code  
definition (table), 4-5  
description, B-5  
wibic example, 5-11  
ENOL error code  
definition (table), 4-5  
description, B-3  
EOI (end or identify) line  
purpose (table), 1-3  
send EOI at end of write, 8-9  
set EOI with EOS on writes, 8-8  
termination of data transfers, 7-1 to 7-2  
EOIP error code  
definition (table), 4-5  
description, B-6 to B-7  
EOS  
configuring EOS mode, 7-1  
end-of-string mode application example, 2-8 to 2-9  
set EOI with EOS on writes, 8-8  
setting character for EOS byte, 8-8  
terminate read on EOS, 8-8  
type of compare on EOS, 8-8  
ERR status word condition  
bit position, hex value, and type (table), 3-4  
description, A-1  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-6  
© National Instruments Corp.  
Index  
error codes and solutions  
EABO, B-5  
EADR, B-3 to B-4  
EARG, B-4  
EBUS, B-8  
ECAP, B-7  
ECIC, B-2 to B-3  
EDMA, B-5 to B-6  
EDVR, B-1 to B-2  
EFSO, B-7  
ENEB, B-5  
ENOL, B-3  
EOIP, B-6 to B-7  
ESAC, B-4 to B-5  
ESRQ, B-8 to B-9  
ESTB, B-8  
ETAB, B-9  
table of codes, 4-5  
error conditions  
checking for errors before exiting wibconf, 8-13  
communication errors, 4-6  
repeat addressing, 4-6  
termination method, 4-6  
configuration errors, 4-5 to 4-6  
timing errors, 4-6  
wibic error information, 5-9 to 5-10  
error variable - iberr, 3-5  
ESAC error code  
definition (table), 4-5  
description, B-4  
ESRQ error code  
definition (table), 4-5  
description, B-8 to B-9  
ESTB error code  
definition (table), 4-5  
description, B-8  
ETAB error code  
definition (table), 4-5  
description, B-8  
EVENT bit, enabling, 7-5  
event queue, 7-5  
Event Status bit (ESB), 7-6  
EVENT status word condition  
bit position, hex value, and type (table), 3-4  
description, A-3  
execute indirect file ($) function, wibic, 5-16  
© National Instruments Corp.  
Index-7  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
F
fax technical support, C-1  
FindLstn routine, 3-13  
FindRQS routine, 7-8, 7-9  
functions. See auxiliary functions, wibic; NI-488 functions.  
G
General Purpose Interface Bus. See GPIB.  
global variables, 3-3 to 3-5  
count variables - ibcnt and ibcntl, 3-5  
debugging applications, 4-3  
error variable - iberr, 3-5  
status word - ibsta, 3-3 to 3-4, A-1 to A-5  
GPIB  
configuration, 1-4 to 1-6. See also wibconf utility.  
controlling more than one board, 1-5  
linear and star system configuration (illustration), 1-4  
requirements, 1-5 to 1-6  
definition, 1-1  
overview, 1-1  
sending messages across, 1-2 to 1-3  
data lines, 1-2  
handshake lines, 1-3  
interface management lines, 1-3  
Talkers, Listeners, and Controllers, 1-1  
GPIB addresses  
address bit configuration (illustration), 1-2  
enabling repeat addressing, 8-11  
listen address, 1-2  
primary, 1-2, 8-7  
purpose, 1-2  
repeat addressing, 4-6  
secondary, 1-2, 8-7  
syntax in wibic, 5-4 to 5-5  
talk address, 1-2  
GPIB/PCII/IIA mode switch, 8-11  
GPIB programming techniques  
device-level calls and bus management, 7-3 to 7-4  
high-speed data transfers, 7-2 to 7-3  
enabling HS488, 7-2  
system configuration effects, 7-3  
parallel polling, 7-10 to 7-12  
implementing, 7-10 to 7-12  
using NI-488 functions, 7-10 to 7-11  
using NI-488.2 routines, 7-12  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-8  
© National Instruments Corp.  
Index  
serial polling, 7-5 to 7-10  
automatic serial polling, 7-6 to 7-7  
autopolling and interrupts, 7-7  
stuck SRQ state, 7-6 to 7-7  
service requests  
from IEEE 488 devices, 7-5  
from IEEE 488.2 devices, 7-6  
SRQ and serial polling  
with NI-488 device functions, 7-7 to 7-8  
with NI-488.2 routines, 7-8 to 7-10  
Talker/Listener applications, 7-4 to 7-5  
event queue, 7-5  
requesting service, 7-5  
waiting for messages from Controller, 7-4  
termination of data transfers, 7-1 to 7-2  
waiting for GPIB conditions, 7-3  
GPIB Spy utility. See also debugging.  
configuration options  
Buffer History, 6-3  
Calls to Highlight, 6-3  
Calls to Trap On, 6-3  
Set Highlight Color, 6-3  
Store Configuration, 6-4  
debugging applications, 4-4  
exiting, 6-2  
Help menu, 6-5  
main window (illustration), 6-1  
output options  
Clear Screen, 6-4  
To File, 6-4  
To Screen, 6-4  
overview, 6-1  
performance considerations, 6-5  
purpose, 1-7  
starting, 6-1  
viewing call details, 6-2  
gpib.dll file, 1-6. See also NI-488.2 DLL.  
GPIBInfo utility  
purpose, 1-7  
running, 4-2 to 4-3  
gpib.ini file, 1-6, B-2  
H
handshake lines, 1-3  
Help (display help information) function, 5-15  
© National Instruments Corp.  
Index-9  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
high-speed data transfers (HS488), 7-2 to 7-3  
enabling HS488, 7-2 to 7-3  
setting cable length, 8-10  
system configuration effects, 7-3  
highlight color, setting, 6-3  
I
ibask function, 7-3  
ibclr function  
clearing devices, 3-8  
using in wibic, example, 5-2  
ibcmd function, 7-2  
ibcnt and ibcntl variables. See count variables - ibcnt and ibcntl.  
ibconfig function  
configuring GPIB board as CIC, 7-3 to 7-4  
determining assertion of EOI line, 7-1  
enabling autopolling, 7-6  
enabling EVENT bit, 7-5  
enabling high-speed data transfers, 7-2 to 7-3  
reconfiguring GPIB driver, 4-5 to 4-6  
ibdev function  
conducting parallel polls, 7-11  
opening devices, 3-8  
using in wibic, 5-10 to 5-11  
example, 5-2  
ibdiag utility  
purpose, 1-7  
testing hardware configuration, 4-6  
ibeos function, 7-1  
ibeot function, 7-1  
iberr. See error variable - iberr.  
ibevent function, 7-5  
ibfind function, 5-10  
ibonl function  
placing board offline, 3-16  
placing device offline, 3-10  
using in wibic, example, 5-4  
ibppc function  
conducting parallel polls, 7-10  
unconfiguring device for parallel polling, 7-12  
ibrd function  
using in wibic, 5-12  
example, 5-4  
ibrpp function, 7-11  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-10  
© National Instruments Corp.  
Index  
ibrsp function  
conducting serial polls, 7-6, 7-7 to 7-8  
using in wibic, example, 5-3  
ibsta. See status word - ibsta.  
ibtrg function  
triggering devices, 3-9  
using in wibic, example, 5-3  
ibwait function  
conducting serial polls, 7-7 to 7-8  
Talker/Listener applications, 7-4  
terminating stuck SRQ state, 7-6 to 7-7  
using in wibic, example, 5-3  
waiting for GPIB conditions, 7-3  
waiting for measurement, 3-9 to 3-10  
ibwrt function  
configuring devices, 3-9  
using in wibic, 5-12  
example, 5-3  
*IDN? query, 3-13 to 3-14  
IEEE Standard 488.1-1987. See GPIB.  
IFC (interface clear) line, 1-3  
Interface Bus Interactive Control utility. See wibic utility.  
interface management lines, 1-3  
interrupt jumper, setting, 8-11  
interrupts and autopolling, 7-6 to 7-7  
L
LACS status word condition  
bit position, hex value, and type (table), 3-4  
description, A-4  
monitoring for message from Controller, 7-4  
linking applications. See compiling, linking, and running applications.  
listen address, setting, 1-2  
Listeners, 1-1. See also Talker/Listener applications.  
LOK status word condition  
bit position, hex value, and type (table), 3-4  
description, A-3  
M
manual. See documentation.  
Message Available (MAV) bit, 7-6  
© National Instruments Corp.  
Index-11  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
messages, sending across GPIB, 1-2 to 1-3  
data lines, 1-2  
handshake lines, 1-3  
interface management lines, 1-3  
Microsoft C. See C language.  
N
n* (repeat function n times) function, wibic, 5-16  
NDAC (not data accepted) line, 1-3  
NI-488 applications, programming  
clearing devices, 3-8  
configuring devices, 3-9  
flowchart of programming with device-level functions, 3-7  
general steps and examples, 3-8 to 3-10  
items to include, 3-6  
opening devices, 3-8  
placing device offline, 3-10  
processing of data, 3-10  
program shell (illustration), 3-7  
reading measurement, 3-10  
triggering devices, 3-9  
waiting for measurement, 3-9 to 3-10  
NI-488 functions. See also auxiliary functions, wibic.  
one device per board, 3-2 to 3-3  
parallel polling, 7-10 to 7-12  
programming considerations  
advantages of using, 3-2  
board functions, 3-2 to 3-3  
device functions, 3-2  
serial polling, 7-7 to 7-8  
using in wibic  
examples, 5-1 to 5-4  
ibdev, 5-10 to 5-11  
ibfind, 5-10  
ibrd, 5-12  
ibwrt, 5-12  
syntax, 5-5 to 5-7  
NI-488.2 applications, programming  
configuring instruments, 3-15  
finding all Listeners, 3-13  
flowchart of programming with routines, 3-12  
general steps and examples, 3-13 to 3-16  
identifying instruments, 3-13 to 3-14  
initialization, 3-13  
initializing instruments, 3-14  
items to include, 3-11  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-12  
© National Instruments Corp.  
Index  
placing board offline, 3-16  
processing of data, 3-16  
program shell (illustration), 3-12  
reading measurement, 3-16  
triggering instruments, 3-15  
waiting for measurement, 3-15 to 3-16  
NI-488.2 DLL  
choosing how to access, 3-1  
requirements for direct access, 3-1  
unloading or reloading NI-488.2 driver, 1-9  
NI-488.2 routines. See also NI-488.2 applications, programming.  
parallel polling, 7-12  
programming considerations, 3-3  
serial polling, 7-8 to 7-10  
serial polling examples  
using AllSpoll, 7-9 to 7-10  
using FindRQS, 7-9  
using in wibic  
issuing set command before using, 5-13  
Receive, 5-13 to 5-14  
Send, 5-13  
SendList, 5-13  
wibic syntax, 5-8 to 5-9  
NI-488.2 software, 1-6 to 1-9. See also application development; NI-488 functions;  
NI-488.2 routines.  
C language files, 1-7  
driver and driver utilities, 1-6 to 1-7  
interaction with Windows, 1-8  
reloading, 1-9  
unloading, 1-9  
Visual Basic files, 1-7  
win 32S files, 1-8  
nivdmad.386 device, 1-6  
nivgpibd.386 device, 1-6  
NRFD (not ready for data) line, 1-3  
number syntax in wibic, 5-4  
O
output options, GPIB Spy utility, 6-4  
© National Instruments Corp.  
Index-13  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
P
parallel polling, 7-10 to 7-12  
application example, 2-18 to 2-19  
implementing, 7-10 to 7-12  
setting duration of, 8-10  
using NI-488 functions, 7-10 to 7-11  
using NI-488.2 routines, 7-12  
PPoll routine, 7-12  
PPollConfig routine, 7-12  
PPollUnconfig routine, 7-12  
primary GPIB address  
definition, 1-2  
purpose, 8-7  
setting, 8-7  
print (display the ASCII string) function, wibic, 5-17  
problem solving. See debugging.  
programming. See application development; debugging; GPIB programming techniques.  
R
readme.txt file, 1-6  
ReadStatusByte routine, 7-8  
Receive routine  
reading measurements, 3-16  
using in wibic, 5-13 to 5-14  
REM status word condition  
bit position, hex value, and type (table), 3-4  
description, A-4  
REN (remote enable) line  
purpose (table), 1-3  
setting for automatic assertion, 8-9  
repeat addressing  
communication errors, 4-6  
enabling, 8-11  
repeat function n times (n*) function, wibic, 5-16  
repeat previous function (!) function, wibic, 5-15  
requesting service. See service requests.  
routines. See NI-488.2 routines.  
RQS status word condition  
bit position, hex value, and type (table), 3-4  
description, A-2 to A-3  
running applications. See compiling, linking, and running applications.  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-14  
© National Instruments Corp.  
Index  
S
secondary GPIB address  
definition, 1-2  
setting, 8-7  
Send routine  
configuring instruments, 3-15  
using in wibic, 5-13  
SendCmds function, 7-2  
SendIFC routine, 3-13  
SendList routine, 5-12  
serial polling, 7-5 to 7-10  
application example using NI-488.2 routines, 2-16 to 2-17  
automatic serial polling, 7-6 to 7-7  
autopolling and interrupts, 7-7  
enabling, 8-9  
stuck SRQ state, 7-6 to 7-7  
service requests  
from IEEE 488 devices, 7-5  
from IEEE 488.2 devices, 7-6  
setting timeout value, 8-8  
SRQ and serial polling  
with NI-488 device functions, 7-7 to 7-8  
with NI-488.2 routines, 7-8 to 7-10  
service requests. See also SRQ (service request) line.  
application examples, 2-10 to 2-13  
serial polling  
IEEE 488 devices, 7-5  
IEEE 488.2 devices, 7-6  
stuck SRQ state, 7-6 to 7-7  
Talker/Listener applications, 7-4  
set command, 5-13  
Set (select device or board) function, 5-15  
setting up your system. See configuration.  
setup utility, 1-6  
software. See NI-488.2 software.  
SPOLL status word condition  
bit position, hex value, and type (table), 3-4  
description, A-3  
SRQ (service request) line. See also service requests.  
purpose (table), 1-3  
serial polling  
using NI-488 device functions, 7-7 to 7-8  
using NI-488.2 routines, 7-8 to 7-10  
stuck SRQ state, 7-6 to 7-7  
SRQI status word condition  
bit position, hex value, and type (table), 3-4  
description, A-2  
© National Instruments Corp.  
Index-15  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
status word - ibsta, 3-3 to 3-4  
ATN, A-4  
CIC, A-4  
CMPL, A-3  
DCAS, 7-4, A-5  
DTAS, 7-4, A-5  
END, A-2  
ERR, A-2  
EVENT, A-3  
LACS, 7-4, A-4  
layout (table), 3-4  
LOK, A-3  
programming considerations, 3-3 to 3-4  
purpose and use, 3-3 to 3-4  
REM, A-4  
RQS, A-2 to A-3  
SPOLL, A-3  
SRQI, A-2  
TACS, 7-4, A-4  
TIMO, A-2  
wibic example, 5-9  
string syntax in wibic, 5-5  
stuck SRQ state, 7-6 to 7-7  
System Controller  
as Controller-in-Charge, 1-1  
configuring, 8-9  
T
TACS status word condition  
bit position, hex value, and type (table), 3-4  
description, A-4  
monitoring for message from Controller, 7-4  
talk address, setting, 1-2  
Talker/Listener applications, 7-4 to 7-5  
event queue, 7-5  
requesting service, 7-5  
waiting for messages from Controller, 7-4  
Talkers, 1-1  
technical support, C-1  
terminate read on EOS, 8-8  
termination methods, errors caused by, 4-6  
termination of data transfers, 7-1 to 7-2  
TestSRQ routine, 7-8  
timeout value, setting, 8-7  
serial poll timeouts, 8-8  
timing errors, 4-6  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-16  
© National Instruments Corp.  
Index  
TIMO status word condition  
bit position, hex value, and type (table), 3-4  
description, A-2  
TNT4882C hardware, 7-2  
*TRG command, 3-15  
triggering devices, example, 2-4 to 2-5  
troubleshooting. See debugging; wibic utility.  
turn display off (-) function, wibic, 5-15  
turn display on (+) function, wibic, 5-15  
V
Visual Basic  
compiling, linking, and running applications, 3-18  
direct entry, 3-23  
files available with NI-488.2 software, 1-7  
W
wait function. See ibwait function.  
WaitSRQ routine  
conducting serial polls, 7-8  
waiting for measurement, 3-15 to 3-16  
wibconf utility  
batch mode, 8-13 to 8-15  
command pairs (table), 8-15  
configuration file, 8-13 to 8-14  
configuration options, 8-7 to 8-11  
assert REN when SC, 8-9  
base I/O address, 8-10  
bus timing, 8-10  
cable length for high speed, 8-10  
DMA channel, 8-11  
enable auto serial polling, 8-9  
enable CIC protocol, 8-9  
enable repeat addressing, 8-11  
EOS byte, 8-8  
GPIB-PCII/IIA mode switch, 8-11  
interrupt jumper setting, 8-11  
parallel poll duration, 8-10  
primary GPIB address, 8-7  
secondary GPIB address, 8-7  
send EOI at end of write, 8-9  
serial poll timeout, 8-8  
set EOI with EOS on writes, 8-8  
System Controller, 8-9  
© National Instruments Corp.  
Index-17  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
terminate read on EOS, 8-8  
timeout setting, 8-7  
type of compare on EOS, 8-8  
use this GPIB interface, 8-10  
default configurations, 8-12  
exiting (<F9> or <Escape>), 8-12 to 8-13  
checking for errors, 8-13  
lower level device/board characteristics, 8-5 to 8-6  
changing board or device (<Control-PageUp> and <Control-PageDown>), 8-6  
changing characteristics (<PageUp>, <PageDown>, <Home>, or <End>), 8-6  
Help option (<F1>), 8-6  
Reset Value (<F6>), 8-6  
Return to Map (<F9> of <Escape>), 8-6  
screen illustration, 8-5  
options for starting (table), 8-2  
overview, 8-1  
purpose, 1-7  
reconfiguring GPIB driver, 4-5 to 4-6  
starting, 8-1 to 8-2  
upper level device map, 8-3 to 8-5  
upper level device map options  
device maps of boards, 8-4  
(Dis)connect (<F5>), 8-4  
Edit (<F8>), 8-5  
Exit (<F9> or <Escape>), 8-5  
Help (<F1>), 8-4  
Rename (<F4>), 8-4  
screen illustration, 8-3  
wibic utility  
auxiliary functions  
! (repeat previous function), 5-15  
$ (execute indirect file), 5-16  
+ (turn display on), 5-15  
- (turn display off), 5-15  
buffer (set buffer display mode), 5-17  
help (display help information), 5-15  
n* (repeat function n times), 5-16  
print (display the ASCII string), 5-17  
set (select device or board), 5-15  
table of functions, 5-14  
checking for display errors, 4-4  
communicating with devices, 3-5  
count, 5-10  
debugging applications, 4-4  
error information, 5-9 to 5-10  
NI-488.2 User DMoawnnuloaadl ffroormWWiwnwd.oSwomsanuals.com. All Manuals Search And Download.  
Index-18  
© National Instruments Corp.  
Index  
NI-488 functions  
examples, 5-1 to 5-4  
ibdev, 5-10 to 5-12  
ibfind, 5-10  
ibrd, 5-12  
ibwrt, 5-12  
NI-488.2 routines  
issuing set command before using, 5-13  
Receive, 5-13 to 5-14  
Send, 5-13  
SendList, 5-13  
overview, 5-1  
programming considerations, 3-5  
purpose, 1-7  
status word, 5-9  
syntax, 5-4 to 5-9  
addresses, 5-5  
board-level functions (table), 5-7  
device-level functions (table), 5-6  
NI-488 functions, 5-5 to 5-7  
NI-488.2 routines, 5-8 to 5-9  
numbers, 5-4  
strings, 5-5  
wibtest utility  
diagnostic messages, 4-1 to 4-2  
cable connections, 4-2  
presence of board, 4-1 to 4-2  
presence of driver, 4-1  
purpose, 1-7  
win 32S files, 1-8  
Windows interaction with NI-488.2 software, 1-8  
Windows Interface Bus Interactive Control utility. See wibic utility.  
© National Instruments Corp.  
Index-19  
NI-488.2 User Manual for Windows  
Download from Www.Somanuals.com. All Manuals Search And Download.  

Miele Washer W 3923 WPS User Manual
Miller Electric Welder UPC 838 User Manual
Mr Coffee Coffeemaker NC Series User Manual
Netopia Stereo System 63 User Manual
Nikon Digital Camera 26427 User Manual
Nikon Projector HT1000 User Manual
Numark Industries CD Player CDN 22MK III User Manual
Oki All in One Printer C710n User Manual
Panasonic Cordless Telephone KX TG1311BX User Manual
ParaBody Home Gym 893102 User Manual