General Information
Chapter 1
Visual Basic
1-2
© National Instruments Corp.
The following is a sample project that uses NI-488.2 routines.
VB488_2.MAK
sample's project file
VB488_2.FRM
sample's form file
VB488_2.EXE
sample made into an executable file
Copy the Visual Basic distribution files to your work area and store the
original diskettes in a safe place.
Programming Preparations
Both the NIGLOBAL.BAS and VBIB.BAS files must be included as part
of your application project.  The NIGLOBAL.BAS file contains all the
GPIB-related variable declarations and constant definitions.  Any global
constants or type declarations that are part of your application should be
included in this file.  The VBIB.BAS file provides the interface to the
NI-488 and NI-488.2 function calls in the GPIB.DLL.
An application project template, GPIBPROJ.MAK, is provided to make it
easy to create a new Visual Basic GPIB application project.  Open the
project GPIBPROJ.MAK, add the code and forms necessary for your GPIB
application, and save it as YOURPROJ.MAK.  The GPIBPROJ.MAK file
already includes NIGLOBAL.BAS and VBIB.BAS.
If you are using Microsoft Visual Basic 1.0, you must edit
NIGLOBAL.BAS to define the constants TRUE and FALSE as follows:
Global Const True  = -1
Global Const False = 0
In Microsoft Visual Basic 2.0 and higher, TRUE and FALSE are reserved
words, therefore these constants are no longer defined in NIGLOBAL.BAS.
Pdf create fillable form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
change pdf to fillable form; pdf form save
Pdf create fillable form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
add photo to pdf form; convert word doc to pdf with editable fields
Chapter 1
General Information
© National Instruments Corp.
1-3
Visual Basic
Figure 1-1. GPIBPROJ.MAK
For more details on creating new Visual Basic projects, forms, and controls,
see the Microsoft Visual Basic Programmer's Guide.
Visual Basic NI-488 I/O Calls and Functions
The most commonly used I/O calls are ibrd and ibwrt.  In Visual Basic,
these functions read and write from a character string that can be
approximately 65,535 bytes in length.
In addition, integer I/O calls (ibrdi and ibwrti) are provided for users
who need to perform arithmetic operations on the data and want to avoid the
overhead of converting to the character strings required by ibrd and
ibwrt and back into the integer format for the arithmetic operations.
ibrdi and ibwrti are passed data in the form of an integer array, instead
of a character string.   Using these functions, you can access the data
directly as integers instead of defining them as characters and then
converting each pair of characters to an integer.  Internally, the ibwrti
function sends each integer to the GPIB in low-byte, high-byte order.  The
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
android edit pdf forms; change tab order in pdf form
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create PDF files from both DOC and DOCX formats. Convert multiple pages Word to fillable and editable
pdf create fillable form; changing font size in pdf form
General Information
Chapter 1
Visual Basic
1-4
© National Instruments Corp.
ibrdi function reads a series of data bytes from the GPIB and stores them
into the integer array in low-byte, high-byte order.
In addition to ibrdi and ibwrti, the asynchronous functions ibrdia
and ibwrtia are provided to perform asynchronous integer reads and
writes.
Table 1-1 contains a summary of the Visual Basic NI-488 calls.  These calls
have the same syntax as the QuickBASIC/BASIC NI-488 functions.  For a
more detailed description, see the NI-488.2 Software Reference Manual for
MS-DOS.
The first argument of all function calls except ibfind and ibdev is the
integer variable ud, which serves as a unit descriptor.  Refer to the IBFIND
and IBDEV  function descriptions in Chapter 5, NI-488 Software
Characteristics and Functions, of the NI-488.2 Software Reference Manual
for MS-DOS, to determine the type of unit descriptor to use.
Table 1-1.  Visual Basic NI-488 Calls
Call Syntax
Description
ibask (ud%,option%,value%)
Return information about
software configuration
parameters
ibbna (ud%,bname$)
Change board of device
ibcac (ud%,v%)
Become Active Controller
ibclr (ud%)
Clear specified device
ibcmd (ud%,cmd$)
Send commands from string
ibcmda (ud%,cmd$)
Send commands asynchronously
from string
ibconfig (ud%,option%,value%)
Configure the driver
ibdev (board.index%,pad%,sad%,
tmo%,eot%,eos%,ud%)
Open and initialize an unused
device when the device name is
unknown
(continues)
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create fillable and editable PDF documents from Excel in Visual
create a fillable pdf form online; pdf fillable form creator
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create fillable and editable PDF documents from Excel in both .NET WinForms and ASP.NET. Create searchable and scanned PDF files from Excel.
create a form in pdf; adding text field to pdf
Chapter 1
General Information
© National Instruments Corp.
1-5
Visual Basic
Table 1-1.  Visual Basic NI-488 Calls (continued)
Call Syntax
Description
ibdma (ud%,v%)
Enable/disable DMA
ibeos (ud%,v%)
Change/disable EOS mode
ibeot (ud%,v%)
Enable/disable END message
ibevent (ud%,event%)
Return the next event
ibfind (brdname$,ud%)
Open device and return unit
descriptor
ibgts (ud%,v%)
Go from Active Controller to
standby
ibist (ud%,v%)
Set/clear ist
iblines (board.index%,lines%)
Get status of GPIB lines
ibln (ud%,pad%,sad%,listen%)
Check for presence of device on
bus.
ibloc (ud%)
Go to local
ibonl (ud%,v%)
Place device online/offline
ibpad (ud%,v%)
Change primary address
ibpct (ud%)
Pass control
ibppc (ud%,v%)
Parallel poll configure
ibrd (ud%,rd$)
Read data to string
ibrda (ud%,rd$)
Read data asynchronously to
string
ibrdf (ud%,flname$)
Read data to file
ibrdkey
†  
(ud%,rd$)
Read data from a hardware key
ibrpp (ud%,ppr%)
Conduct a parallel poll
ibrsc (ud%,v%)
Request/release system control
ibrsp (ud%,spr%)
Return serial poll byte
ibrsv (ud%,v%)
Request service
(continues)
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
add print button to pdf form; pdf form change font size
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Convert multiple pages Word to fillable and editable PDF documents in both .NET WinForms and ASP.NET. Easy to create searchable and scanned PDF files from
add forms to pdf; add email button to pdf form
General Information
Chapter 1
Visual Basic
1-6
© National Instruments Corp.
Table 1-1.  Visual Basic NI-488 Calls (continued)
Call Syntax
Description
ibsad (ud%,v%)
Change secondary address
ibsic (ud%)
Send interface clear
ibsre (ud%,v%)
Set/clear remote enable line
ibstop (ud%)
Abort asynchronous
operation
ibtmo (ud%,v%)
Change/disable time limit
ibtrg (ud%)
Trigger selected device
ibwait (ud%,mask%)
Wait for selected event
ibwrt (ud%,wrt$)
Write data from string
ibwrta (ud%,wrt$)
Write data asynchronously
from string
ibwrtf (ud%,flname$)
Write data from file
ibwrtkey
(ud%,wrt$)
Write data to a hardware
key
ibrdkey and ibwrtkey are OEM functions.  Refer to NI-488 Hardware
Key Functions Reference Guide, for a detailed description of these functions.
NI-488 IL Functions
Visual Basic, like QuickBASIC (versions 4.0 and later) and BASIC
(version 7.0), supports both function and subroutine calls.  The NI-488
routines are all Visual Basic subroutines.  This interface has been expanded
so that the NI-488 routines can be accessed as Visual Basic functions.
Refer to NI-488 IL Functions in Chapter 5, NI-488 Software Characteristics
and Functions, of the NI-488.2 Software Reference Manual for MS-DOS.
All NI-488 subroutines (ibrd, ibwrt, …) are available via the  Call
statement.
The names of the new functions are identical to the existing subroutine
names, except that the second letter of each name has been changed
from b to l.  For example, the subroutine ibsic is also available as
the function ilsic.
C# Create PDF Library SDK to convert PDF from other file formats
Create fillable PDF document with fields. Load PDF from existing documents and image in SQL server. Load PDF from stream programmatically.
best program to create pdf forms; pdf form maker
VB.NET Create PDF Library SDK to convert PDF from other file
Create fillable PDF document with fields in Visual Basic .NET application. Load PDF from existing documents and image in SQL server.
add an image to a pdf form; adding images to pdf forms
Chapter 1
General Information
© National Instruments Corp.
1-7
Visual Basic
GPIB subroutine and function calls may be freely mixed throughout a
Visual Basic project.
The GPIB Visual Basic language interface file, VBIB.BAS, contains a
complete list of all the subroutine and function declarations.  The
NIGLOBAL.BAS file contains the declaration of the global variables
ibsta, iberr, ibcnt, and ibcntl. These two files must both be
part of any GPIB Visual Basic application project.
In general, the functions behave identically to the subroutines with the
few exceptions noted in the following paragraph.  The description of
each subroutine found in this manual can be applied to the functions,
except for the syntax-specific information.
Here are the differences between the existing subroutines and the il-
functions.
ilfind returns a descriptor associated with the specified board or
device.  Use this value in all subsequent functions that access that
device.  Normal usage would resemble the following.
ud% = ilfind ("GPIB0")
ildev opens and initializes an unused device when the device name is
unknown.  Normal usage would resemble the following.
ud% = ildev (0, 6, &H67, 13, 7, 0)
ilcmd, ilcmda, ilrd, ilrda, ilwrt, and ilwrta require a third
parameter which specifies the number of bytes to transfer.  The
function syntax is as follows.
sta% = ilcmd (ud%, cmd$, cnt%)
sta% = ilcmda (ud%, cmd$, cnt%)
sta% = ilrd (ud%, rd$, cnt%)
sta% = ilrda (ud%, rd$, cnt%)
sta% = ilwrt (ud%, wrt$, cnt%)
sta% = ilwrta (ud%, wrt$, cnt%)
All functions, except ilfind and ildev, return the value of
ibsta, permitting the following construct.
If (ilrd (ud%, rd%, cnt%) < 0) Then call GPIBERROR
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
Create PDF document from OpenOffice Text Document with embedded Export PDF document from OpenOffice Presentation. ODT, ODS, ODP forms into fillable PDF formats.
add image field to pdf form; chrome pdf save form data
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Create PDF document from OpenOffice Presentation in both .NET WinForms and ASP.NET NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual
change text size pdf form; acrobat create pdf form
General Information
Chapter 1
Visual Basic
1-8
© National Instruments Corp.
Dynamic Reconfiguration of Board and Device Characteristics
Some functions can be called during the execution of an application
program to dynamically change some of the configured values.  These
functions are shown in Table 1-2.
Table 1-2.  Functions That Alter Default Characteristics
Characteristic
Dynamically Changed by
Primary GPIB address
ibpad
Secondary GPIB address
ibsad
End-of-string (EOS) byte
ibeos
7- or 8-bit compare on EOS
ibeos
Set EOI with EOS on Write
ibeos
Terminate a Read on EOS
ibeos
Set EOI w/last byte of Write
ibeot
Change board assignment
ibbna
Enable or disable DMA
ibdma
Change or disable time limit
ibtmo
Request/release system control
ibrsc
Set/clear individual status bit
ibist
Set/change serial poll status byte
ibrsv
Set/clear Remote Enable line
ibsre
Most of the above and more
ibconfig
Chapter 1
General Information
© National Instruments Corp.
1-9
Visual Basic
Using the NI-488.2 Routine Examples
Table 1-3 lists the call syntax for each NI-488.2 routine and a brief
description of what each does in your Visual Basic application project.
These calls have the same syntax as the QuickBASIC/BASIC NI-488
functions.  For a more detailed description, see Chapter 4, NI-488.2
Software Characteristics and Routines, in the NI-488.2 Software Reference
Manual for MS-DOS.
Table 1-3.  Visual Basic NI-488.2 Routines
Call Syntax
Description
AllSpoll (board%,addresslist%(),
resultlist%())
Serial poll all devices
DevClear (board%,address%)
Clear a single device
DevClearList (board%,
addresslist%())
Clear multiple devices
EnableLocal
(board%,addresslist%())
Enable operations from the
front of a device
EnableRemote (board%,
addresslist%())
Enable remote GPIB
programming of devices
FindLstn (board%,addresslist%(),
resultlist%(),limit%)
Find all Listeners
FindRQS (board%,addresslist%(),
result%)
Determine which device is
requesting service
PassControl (board%,address%)
Pass control to another
device with Controller
capability
PPoll (board%,result%)
Perform a parallel poll
PPollConfig (board%,address%,
dataline%,sense%)
Configure a device for
parallel polls
PPollUnconfig (board%,
addresslist%())
Unconfigure devices for
parallel polls
RcvRespMsg (board%,data$,
termination%)
Read data bytes from
already addressed device
ReadStatusByte (board%,address%,
result%)
Serial poll a single device
to get its status byte
(continues)
General Information
Chapter 1
Visual Basic
1-10
© National Instruments Corp.
Table 1-3.  Visual Basic NI-488.2 Routines (continued)
Call Syntax
Description
Receive (board%,address%,data$,
termination%)
Read data bytes from a
GPIB device
ReceiveSetup (board%,address%)
Prepare a particular device
to  send data bytes and
prepare the board to read
them
ResetSys (board%,addresslist%())
Initialize a GPIB system
on three levels
Send (board%,address%,data$,
eotmode%)
Send data bytes to a single
GPIB device
SendCmds (board%,commands$)
Send GPIB command
bytes
SendDataBytes (board%,data$,
eotmode%)
Send data bytes to already
addressed devices
SendIFC (board%)
Clear the GPIB interface
functions with IFC
SendList (board%,addresslist%(),
data$,eotmode%)
Send data bytes to multiple
GPIB devices
SendLLO (board%)
Send the local lockout
message to all devices
SendSetUp (board%,addresslist%())
Prepare particular devices
to receive data bytes
SetRWLS (board%,addresslist%)
Place particular devices in
the Remote with Lockout
state
TestSRQ (board%,result%)
Determine the current state
of the SRQ line
TestSys (board%,addresslist%,
resultlist%())
Cause devices to conduct
self-tests
Trigger (board%,address%)
Trigger a single device
TriggerList
(board%,addresslist%())
Trigger multiple devices
WaitSRQ (board%,result%)
Wait until a device asserts
Service Request
© National Instruments Corp.
2-1
Visual Basic
Chapter 2
Programming Examples
This chapter contains programming examples for the NI-488.2 routines and
NI-488 functions.  A detailed description of both the routines and functions
can be found in the NI-488.2 Software Reference Manual for MS-DOS.
Visual Basic NI-488.2 Programming Example
You can take full advantage of the IEEE 488.2-1987 standard by using the
NI-488.2 routines.  These routines are completely compatible with the
controller commands and protocols defined in IEEE 488.2.
The NI-488.2 routines are easy to learn and use.  Only a few routines are
needed for most application programs.
This example illustrates the programming steps that you can use to program
a representative IEEE 488.2 instrument from your personal computer using
the NI-488.2 routines.  The NI-488.2 routines and subroutines are in bold
text to highlight their location and usage within the program.  The
applications are written in Visual Basic.  The target instrument is a Fluke
45.  The purpose here is to explain how to use the driver to execute
NI-488.2 programming and control sequences and not how to determine
those sequences.
Note: For a more detailed description of each step, refer to Chapter 3,
Writing an Advanced Program Using NI-488.2 Routines, in the
getting started manual that you received with your interface
board.
1. Load in the definitions of the NI-488.2 routines from a file that is on
your distribution diskette.
2. Initialize the IEEE 488 bus and the interface board Controller circuitry
so that the IEEE 488 interface for each device is quiescent, and so that
the interface board is Controller-In-Charge and is in the Active
Controller State (CACS).
Documents you may be interested
Documents you may be interested