National Instruments LabView's Virtual Instruments (VI) can gain control
of PIXCI® frame grabbers and access image data
via the XCLIB SDK/Library, provided as a Windows DLL.
National Instruments supports invoking named functions in a named DLL;
a header (.h) file provided with XCLIB
declares the available functions in a LabView compatible format.
Installation
In LabView 32-bit, use
Tools
Import
Shared Library (.dll)...
Select Create VIs for a Shared Library
Next
In field:
Shared Library (.dll) File
specify the XCLIB 32-bit DLL:
...\XCLIB\Lib\XCLIBWNT.DLL
replacing
''...''
with XCLIB's installation directory, typically:
C:\Program Files\EPIX
In field:
Header (.h) File
specify the XCLIB header file:
...\XCLIB\Inc\XCLIBWNT_LABVIEW.H
If using the optional PXIPL library, repeat importing
of a shared library and specify the PXIPL 32-bit DLL and Header:
...\XCLIB\Lib\PXIPLWNT.DLL
...\XCLIB\Inc\PXIPLWNT_LABVIEW.H
Finally, click through the remainder of LabView's
''Import Shared Library Wizard''
using the default settings.
After Importing, there should be a collection of VI's each correlating directly to one XCLIB or PXIPL function; their names are a combination of the library's name and the function's name.
The above references to ''XCLIBWNT.DLL'', ''XCLIBWNT_LABVIEW.H'', ''PXIPLWNT.DLL'', and/or ''PXIPLWNT_LABVIEW.H'' are for XCLIB 32-bit and/or PXIPLWNT 32-bit. Alternates are:
XCLIBWNT.DLL for XCLIB 32-bit
XCLIBW64.DLL for XCLIB 64-bit
XCLYBWNT.DLL for XCLIB-Lite 32-bit
XCLYBW64.DLL for XCLIB-Lite 64-bit
PXIPLWNT.DLL for PXIPL 32-bit
PXIPLW64.DLL for PXIPL 64-bit
XCLIBWNT_LABVIEW.H for XCLIB 32-bit
XCLIBW64_LABVIEW64.H for XCLIB 64-bit
XCLYBWNT_LABVIEW.H for XCLIB-Lite 32-bit
XCLYBW64_LABVIEW64.H for XCLIB-Lite 64-bit
PXIPLWNT_LABVIEW.H for PXIPL 32-bit
PXIPLW64_LABVIEW64.H for PXIPL 64-bit
XCLIB's bit depth
must match LabView's bit depth, not
Window's bit depth.
The location of XCLIB within the file system may vary, depending on system settings and options chosen during installation of XCLIB. Typically, XCLIB 32-bit on Windows 32-bit, or XCLIB 64-bit on Windows 64-bit is in:
C:\Program Files\EPIX\XCLIB\Lib\XCLIBWNT.DLL
C:\Program Files\EPIX\XCLIB\Inc\XCLIBWNT_LABVIEW.H
C:\Program Files\EPIX\XCLIB\Lib\XCLIBW64.DLL
C:\Program Files\EPIX\XCLIB\Inc\XCLIBW64_LABVIEW64.H
Typically, XCLIB 32-bit on Windows 64-bit is in:
C:\Program Files (x86)\EPIX\XCLIB\Lib\XCLIBWNT.DLL
C:\Program Files (x86)\EPIX\XCLIB\Inc\XCLIBWNT_LABVIEW.H
Older XCLIB installations may be located in:
C:\XCLIB\XCLIBWNT.DLL
C:\XCLIB\XCLIBWNT_LABVIEW.H
Two examples of using PIXCI® frame grabbers from LabView are provided with XCLIB. These are intended to be ''skeletons''; functional examples intended to be modified to fit your application requirements.
The ''example_01'' was written for use with ''XCLIBWNT.DLL'' and expects subVIs whose name (as assigned by LabView while importing the DLL) starts with ''XCLIBWNT''. The ''example_02'' was written for use with ''XCLYBWNT.DLL'' and expects subVIs whose name starts with ''XCLYBWNT''. For use with a different DLL, modify the example VI. Or make copies of the DLL and Header files to be used, rename as expected by the example (hopefully, on multi-user systems, with suitable documentation and explanation of this potentially confusing practice), and import same.[1]
LabView supports several levels of error reporting. The ''example_01'' uses VIs created without error wires. The ''example_02'' uses VIs created with level 1 error reporting. Typically, VIs for different levels of error reporting are not interchangeable; different sets of VIs would be needed to match different selections of error reporting. (As to whether there are exceptions or methods for conversion - consult National Instruments). Errors will be reported if an example VI is imported with the incorrect setting for error reporting.
The ''example_02'' requires the free ''NI‑IMAQ'' software package from National Instruments.
The ''example_02'' display routine expects pixels with 8 bit values (i.e. 8 bit monochrome, or 24 bit RGB); it can be modified for use with other pixel depths by using the BMP format instead of TIFF (BMP files are always saved as 8 bit values, required by the NI display routine used, while TIFF files are (by default) saved at the video format's bit depth). Or, modify the parameters used to save the TIFF file, specifically savemode=8, so as to force saving 8 bit values.
Both examples use pxd_PIXCIopen to open XCLIB and configure for a ''default'' video format, which may or may not be appropriate for the camera in-hand. See the discussion of the pxd_PIXCIopen function and/or the Using a Video Format Configuration Exported by XCAP application note in the XCLIB Reference Manual. In brief, if the ''default'' video configuration is not appropriate: (a) Run the XCAP GUI application, configure camera and PIXCI® frame grabber as desired, and export the video configuration using PIXCI®, PIXCI® Export Video Setup. (b) In the VIs' call to pxd_PIXCIopen use
pxd_PIXCIopen(..., "", pathnameToVideoSetup.fmt);
If using XCLIB 32-bit, on a 64-bit system, the PIXCI® driver's ''Restrict Non-Forceful (Frame Buffer) Memory to be below 4GB'' option must be set (see XCAP, PIXCI® Open/Close, Advanced, Memory 2). Setting this option is not specifically due to use of LabView, but perhaps is needed more often than elsewhere, as: a) 32-bit LabView Community packages may be more economical than 64-bit Labview, and b) It allows using ''example_01'' and ''example_02'' without modification of the VI or copying and renaming of DLLs.
Reading XCLIB's C/C++
examples can be helpful to learn which XCLIB functions
are used, and how they are used, for various tasks.
In particular, the C examples are linear code and easier to read
than the GUI structure built by the C++ examples for Windows.
The
XCLIB Reference Manual
provides a detailed description of each function.
Alternatives
Windows applications can acquire images and video via Windows' Media Foundation[2] Frame Server or DirectShow API's. A suitable driver for PIXCI® frame grabbers is available; see PIXCI® Imaging Drivers: Media Foundation Frame Server (Windows 'Camera' Device & DirectShow Source). Neither a XCLIB library nor XCLIB header file is required for use of the PIXCI® MFFS driver.
As of Oct. 2025, LabView appears to only support the original DirectShow API, and not the newer Media Foundation Frame Server API. The Windows' DirectShow API lacks a ''Video Subtype'' for monochrome pixels, nor for RGB pixels with 12, 14, or 16 bits per component value, and therefore can't handle those video formats. The ''RawBytesMode'' described in PIXCI® Imaging Drivers: Media Foundation Frame Server (Windows 'Camera' Device & DirectShow Source) allows presenting the bytes of any frame grabber pixel format as if they were RGB+Pad (i.e RGB32); a LabView VI can reverse the process - it is a lossless process as no data conversions are performed.
An optional National Instruments package may be required
for support for the DirectShow API.
Compatibility
All PIXCI® frame grabbers supported by XCLIB,
under all versions of Windows supported by XCLIB,
can be utilized from LabView.
Tech Support
For general questions regarding National Instruments LabView, consult National Instruments or search for relevant topics via Google or other search engines.
For questions specifically related to PIXCI® frame grabbers and the XCLIB SDK/Library, email support@epixinc.com .
Copyright (C) EPIX, Inc. All Rights Reserved
Updated: 16-Oct-2025