• ShopSHOP
  • ShopLEARN
  • ShopSUPPORT
Live Chat Software
Measurement Computing

  Advanced Product Search
EmailEmail Call MeCall Me
1.800.234.4232
We're here to help
International Languages Easy to Use  |  Easy to Integrate  |  Easy to Support International Distributors
DAQami Advanced Data Logging Application   DASYLab DAQ Software

Data Acquisition Product Selection Catalog   MCC Data Acquisition eNews

Learn about Data Acquisition



Universal Library

I/O Library for Measurement Computing Data Acquisition Products

4.0 ratings  4   (2 customer reviews) | Write a Review
Product Q&A     16 Questions | 22 Answers     Read all Q&A
 
Universal Library


[+] View Larger Image

Key Highlights

Programming API for C®, C++®, C#®, Visual Basic®, and Visual Basic® .NET™ using Visual Studio® and other IDEs

Common set of function calls designed to work with most MCC hardware

Identical functions for each language

Includes 64-bit driver support for Windows® 8/7/Vista®/XP
(supports Ethernet, USB, WLS, WEB, and most PCI and PCIe boards)

Included on MCC DAQ CD

Supported Operating Systems: Windows® 8/7/Vista®/XP, 32-bit or 64-bit

Download MCC DAQ CD

Universal Library Help




View in: Spanish

Click here if you have trouble viewing YouTube videos.

  • Pricing
  • Reviews
  • Q & A
  • Overview
Part Number Description
Prices shown are in U.S. dollars for orders placed within the U.S. For international orders, please contact one of our distributors in your area.
Universal Library Programming Windows® API for C®, C++®, C#®, Visual Basic®, and Visual Basic® .NET™ using Visual Studio® and other IDEs
Included

Product Reviews

4 / 5

Ease of UseValueTechnical Support
4 / 5 5 / 5 4.5 / 5

100% of reviewers recommend this product.

Page 1 of 1
4/5 February 20, 2014
Easy to integrate in DOS and LabView

I am responsible for development and support of a legacy control system. It is a hardware and software system for automotive engine research. Some of our equipment is no longer available, so we bought replacement hardware from MCC. I am glad we did. Their universal library works well. The documentation is complete and error-free. Their tech support emails are answered quickly. Great alternative to some of the more expensive hardware and software solutions out there.

Job Title: Postdoctoral Associate
Industry: Mechanical Engineering Research

Yes, I recommend this product

Was this review helpful? Yes (1) / No (0)

From: Cambridge,MA
Company Size: 101-500
Software Used: C/C++
Ease of use

Value

Technical Support
4/5 August 09, 2013
Easy to Automate

We developed an automated calibration and test application using the Universal Library in C# with Visual Studio .NET 2010. The Universal Library can quickly integrate into an existing application by referencing a single DLL and adding a few lines of code. The API to the Universal Library provides flexible control over sampling rates, voltage ranges, etc. It is easy to grab a single sample or buffer a large number of points for additional statistical processing. The documentation for the C# API is very good and several example programs are included. Also, error codes are returned for API calls so it is easy to detect problems from disconnected equipment, invalid arguments, etc. So far, the application has been used with the USB-2404-UI and USB-2408-2AO DAQ's. The development with the USB-2404-UI was done first and went very smoothly. However, for the USB-2408-2AO, the sampling rates listed in the documentation were not consistently accepted by the Library or the unit. Some trial and error was needed to discover new values which did consistently work. Overall, a good experience developing with the Universal Library.

Job Title: Design Engineer
Industry: Electronics
Application: Calibration and Testing
Yes, I recommend this product

Was this review helpful? Yes (2) / No (0)

From: Calgary, AB, Canada
Company Size: 1-100
Software Used: Other
Ease of use

Value

Technical Support

Product Q & A




Will Universal Library work with the MinGW compilers?

Windows compiler support is not thrilling mostly. The Linux compilers have been excellent in my experience, so it would be great to access the Universal Library on Windows OS's using the MinGW software. Yes, the MS C code is good, but I need to use Fortran in a large way, and the Linux world makes that very easy. I suspect this would be true for MinGW. I could contact Warren Jasper, the Linux driver writer on this as well.

Job Title: Software engineer
Industry: Software
Application: Data acquistion and processing


1 months ago

KactusKen Birmingham, AL


Answers
MCC does not offer support for MinGW compilers or for Fortran. The 3rd party Linux drivers you reference will not be leverageable onto Windows, given the IO needs of the USB bus and DAQ devices.

1 months ago

Measurement Computing

Was this Answer helpful? Yes (0) / No (0)

Digital IO inputs raise events?

I was looking at some of the sample code in the Universal Library and noticed that all of them have a timer in a loop pulling the hardware for the data. Is there a way to connect to the hardware and listen to events (like when a port goes high?) then I can react to it? Instead of the loop an pull method? Maybe there is,and I missed it, but I'm looking for that in the 1024LS before I buy. Thanks!

Job Title: Software Engineer
Industry: Automotive
Application: Data collection


3 months ago

1024Events Colorado


Answers
MCC’s current offering of Digital I/O devices are software polled only. They cannot notify the PC of a certain data change or pattern match.

3 months ago



Was this Answer helpful? Yes (1) / No (0)

DInScan not working with FirstPortA

Hi, I'm using the function ULStat0 = DaqBoard.DInScan(DigitalPortType.FirstPortA, InBufferSize, ref rateIn, DataInBuf, scanOptIn); The Port A0 on the PCI 2517 Board works and i configured the Port with DConfigPort. But still, I can't read e.g. 5V with the DInScan Function.

Job Title: Assisting Scientist
Industry:
Application:


3 months ago

RiceBall Germany


Answers
First, try our non-scanning example (ULDI01) to make sure there is no electric issue (i.e. make sure you can predictably read the expected 0 and 1 values when you connect proper logic low and logic high voltages). Then move on to the higher speed scanning example (ULDI03). Note that the digital I/O on the PCI-2500 series are 3.3V logic. They can tolerate 5V logic but avoid using pull resistors up to 5V.

3 months ago

Measurement Computing

Was this Answer helpful? Yes (0) / No (0)

DLL library loads slow

I use the universal library in C++, Visual Studio 2010. The cbw32.dll library loads about 7.5 sec and it causes a delay to start my application. Is there any way to load the library faster or to load only the functions which are used? I need only few func



5 months ago

Pavel Toronto, ON, Canada


Answers
That's good news. Please let me know as soon as new UL version will be released. Thank you.

5 months ago

Pavel

Was this Answer helpful? Yes (1) / No (0)

Hello Pavel - We have performed additional testing, and the combined load and initialization time can be as long was what you reported. As a result, we expect to be able to reduce this (to well under 1 second) in an upcoming UL version.

5 months ago

MeasurementComputing

Was this Answer helpful? Yes (1) / No (0)

The delay applies before reaching InitInstance() in my application and it is the same even when I temporary uninstall the board's driver. When I remove all universal library functions and cbw32.lib from my project, there is no delay. I think the source of this delay is in slow loading cbw32.dll file. Regards Pavel

5 months ago

Pavel

Was this Answer helpful? Yes (0) / No (0)

Hello Pavel - 7.5 seconds sounds much too long for simply loading CBW32.DLL. 1-2 seconds is more typical. Perhaps your program is trying to call a function in the DLL as the program is loading. The first time a function (that accesses DAQ hardware) in the DLL is called, there is hardware initialization that is performed, which takes about 4-5 seconds. In summary, there are probably 2 delays at work here. We can’t reduce either, but perhaps you can postpone the second one, by not calling a DLL function until your program is fully loaded.

5 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (1)

Borland6 C++ supporting DAQ products

I will start a funded engine test project shortly. I am currently using Advantech PCI 1716 for DAQ. I designed and built my own IO interface. I want to purchase various products from MSC. I have my private software with visual interface on Borland6 C++ (X

Job Title: Head of Department
Industry: Automotive
Application: Internal Combustion Engine Research


6 months ago

Demir Kızılcaşar Mh., Atılım Caddesi, 06830 Ankara/Ankara, Turkey


Answers
Hello Demir - Unfortunately, our Universal Library no longer supports Borland compilers. A possible workaround would be to use the Implib.exe program within Borland to create an Import library file that would call into our C++ DLL that is provided with our Universal Library drivers.

5 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

PCI DIO24/S sample rate

I want to know what is the fastest sample rate of PCI DIO24/S and how to achieve it with Universal library, because the timer of PC has low resolution and accuracy ( 1ms i think ). When i see though TracerDAQ Strip Chart, the timebase is up to 1us. How ca

Job Title: Vision
Industry: Vision
Application: Vision


7 months ago

TrinhDinhNam Việt Nam


Answers
Hello -The PCI-DIO series does not support clocked pacing/reads. So software paced reads must be used. Calling the Universal Library’s DIn function in a tight loop, one 8-bit port can be polled every 20-25 uS (40 KHz – 50 KHz).

7 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

DBitOut Function only work with FirstPortA

The Function DBitOut not working for FirstPortB or C. But the Function Dout working for all 3 port. I'm using SSR-RACK24 board and PCI-DIO24/S card, programming by visual studio ( C#).

Industry: Vision and automation


9 months ago

NamTrinhDinh Vietnam


Answers
The function cbDBitOut() can be a bit confusing but it does works for all three ports. Please refer to our knowledgebase article below for help in clarifying how the cbDBit() functions works. http://kb.mccdaq.com/KnowledgebaseArticle50121.aspx?Keywords=dbitout. You first need to configure the direction for all three ports, i.e. input or output. After the ports have been configured you can then run the cbDBitOut() function. To access FirstportB and C all you have to do is to offset the Bitnum + n. FirstportA = 0-7. FirstportB = 8-15 and FirstportC would = 16-23. Please contact technical support if you have any additional questions.

9 months ago

MeasurementComputing

Was this Answer helpful? Yes (1) / No (1)

Is the Universal Library ThreadSafe?

I want use a 1208 USB modulus with different channel to mesure a lot of physical parameters as motor speed, temperature, flowmeter, each of measurement is made in a specific Thread. Second question, if I use two different modulus (exemple: one 1208HS et



9 months ago

GGEE Charlotte, NC, USA


Answers
Hello GGEE - Yes, the Universal Library is thread safe. Multiple different DAQ devices can be accessed from one program, and separate threads in the program can be used. Also separate threads can access the same DAQ device. Note that one specific scenario is not supported: Multiple programs running on the PC, that each access the Universal Library … not even if each program accesses a different DAQ device.

9 months ago

MeasurementComputing

Was this Answer helpful? Yes (2) / No (0)

Example code will not run

Using Visual Studio Express 2012. I have tried compiling and running C#.net and vb.net versions of ULDO0x examples but after compiling and attempting to execute, I get an unhandled exception error the description of which is almost unintelligible. I just

Job Title: Test Engineer
Industry: VCSEL
Application: DataCOM and TeleCOM


9 months ago

Fintest Allen, TX


Answers
Hello Fintest - All of the UL examples installed as part of MCCDAQ CD should work OK with C# Express 2012. Be sure to re-boot after installing the UL. Also, if the error string contains the word “null”, it's a sign of duplicate DLLs (CBW32.DLL) per a FAQ on our knowledgebase. If you’re still having difficulty, please contact MCC Technical Support.

9 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

Get the installed modules out of the library

What is the correct way to determine the already plugged modules? -reading the CB.CFG (must not be actual) -getting from hardware-manager and compare to cb.cfg? Running Instacal and then start my program is not very user-friendly...



15 months ago

Chris switzerland


Answers
Hi Chris – Thank you for your feedback. We realize the need/benefit for this and plan to address it in a future version.

14 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

It seems that your "universal" library is the software for the universe 20 years ago under MS-DOS. Plug and Play meens, I get a e.g. USB-1208FS out of a tray connect it and run my software. Another user has a different module. Also I cannot manipulate the CF.CFG because it is written in a non structured format like XML. Another point is the missing object oriented way of the UL. _mccAD = New MccDaq.MccBoard(0) Dim dummy(5) As MccDaq.MccBoard For i As Integer = 0 To dummy.Length - 1 dummy(i) = New MccDaq.MccBoard(i) If dummy(i).BoardName.ToUpper.Contains("USB-QUAD08") Then _mccENC = New MccDaq.MccBoard(i) End If If dummy(i).BoardName.ToUpper.Contains("USB-1208FS") Then _mccAD = New MccDaq.MccBoard(i) End If Next If you want to use _mccAD further in this code the Visual Studio 2010 IDE vanishes without a trace... Please provide the UL with a function, which lists the available modules without running INSTACAL first. Regards Chris

14 months ago

Chris

Was this Answer helpful? Yes (0) / No (0)

Hello Chris - To achieve your goal, the following is recommended: It Is assumed that InstaCal was run prior by the user, such that all boards had been recognized and that InstaCal has already added them to its board list (stored in CB.CFG). First use BoardName, with each possible board #. If no board entry is in CB.CFG for that board #, you will receive an empty string. Keep track of which board #s return a populated string. Note that being listed in CB.CFG does not mean that the board is physically present in the system (for example, a USB board may have been unplugged by the user). In order to verify the board is truly present, you must perform a function that the model supports, such as AIn or DIn, and if the function returns an error code of 0, then the board is physically present.

15 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (1)

please tell me how to create dll file from dasylab software with mathematical operation

Job Title: embedded developer
Industry: defence and aerospace
Application: center of gravity measurement


15 months ago

sivaram hyderabad


Answers
Thank you for your inquiry. DASYLab is not capable of creating a DLL file or an executable. In order to deploy your DASYLab program you will need to use a DASYLab Run Time license which installs the necessary files and allows for the execution of your DASYLab applications on target systems.

15 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

Universal library and Visual Studio 2012 / C++

Does this product work with VS2012 (v110) and/or VS2013? Are there libraries for x86 and x64 arch?

Job Title: Programmer
Industry: MLM
Application: Robotics and Automation


16 months ago

iceisfun Orem, UT


Answers
Yes, our Universal Library C examples can be used in any version of Visual Studio (certainly versions 6.0 thru 2013). We provide both 32-bit and 64-bit DLLs, as well as supporting files.

16 months ago

MeasurementComputing

Was this Answer helpful? Yes (2) / No (0)

What is the future for the PC104 products

We are in process of a major design review and use PC104 for our embedded products. As part of the review, we are considering moving to Win7 from Win XP Your site indicates that the PC104 products are not supported under Win7. Are there plans for support?

Job Title: Chief Scientific Officer
Industry: Instrument manufacturer
Application: Industrial and academic biochemistry labs


19 months ago

Spinner Berwick, ME, USA


Answers
Hello Spinner - We will not support Windows 7 or Windows 8 for PC-104. We do, however, offer 2 USB products with the same form factor as PC-104 that are supported in Windows 7 and Windows 8. Please take a look at the USB-7202 (http://www.mccdaq.com/usb-data-acquisition/USB-7202.aspx) and the USB-7204 (http://www.mccdaq.com/usb-data-acquisition/USB-7204.aspx)

18 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

WinXP and PCIe devices

We have a number of legacy instruments that require WinXP. We are updating the computers on these, and wonder if your PCIe boards have WinXP drivers available.

Job Title: Chief Scientific Officer
Industry: Instrument manufacturer
Application: Industrial and academic biochemistry labs


19 months ago

Spinner Berwick, ME, USA


Answers
Hi Spinner - Thank you for your inquiry. The current software that ships with our PCIe products supports both Windows XP and Windows 7/8.

19 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

Universal library and Embarcadero C++ builder XE3 compatibility

Can we use latest universal library with Embarcadero C++ builder XE3 under Windows 32 and 64 bit?



19 months ago

Nivram


Answers
To make lib for Embarcadero C++ do: For 32 Bit 1.) copy DLL file from c:\Program Files (x86)\Measurement Computing\DAQ\cbw32.dll to some directory 2.) use embarcadero tool implib: implib cbw32bc.lib cbw32.dll (for 32 bit version) Move or copy cwb32bc to c:\Users\Public\Documents\Measurement Computing\DAQ\C3.) use MakeBC32.bat to compile samples on c:\Users\Public\Documents\Measurement Computing\DAQ\C\Sample32 Note MakeBC32.bat is installed during regular instalation of Universal library. However there is missing cbw32bc.lib and support for 64 bit: cbw64bc.lib, makeBC64.bat ! 4. What is solutions for 64 bit ? for 64 bit MKEXP.EXE is the 64-bit Windows counterpart of IMPLIB.EXE Have someone suitable .bat file to compile and link? Measurement computing please add support also for Embarcadero compilers!

19 months ago

Nivram

Was this Answer helpful? Yes (0) / No (0)

Hello Nivram - MCC does not provide or test LIB files for Embarcadero C++. You should be able to create your own LIB file, using a tool/utility provided by Embarcadero that creates a LIB file based on a particular DLL. The DLL to reference is either CBW32.DLL or CBW64.DLL, depending on whether you want to make a 32-bit or 64-bit application (both should run on 64-bit Windows). Both DLLs are installed as part of InstaCal/UL. The header file (cbw.h) is also installed by the UL.

19 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

Delphi Suport

This version of the library does not have universal support Delphi?



25 months ago

Davi


Answers
Our apologies, but the last version of the UL that supported Delphi was Version 6.1. You may still download this archived version from our ftp site at the following link: ftp://ftp.mccdaq.com/Archive/MCCDAQ_CD/Archive_6.10/

25 months ago

MeasurementComputing

Was this Answer helpful? Yes (0) / No (0)

Summary
Programming libraries for Windows® Visual Studio® programming languages, and others. A complete function library to simplify the configuration and operation of your measurement device. A single, universal set of functions operates most of our products so you only have to learn to use our library once. Includes 64-bit driver support for Windows® 8/7/Vista®/XP (supports Ethernet, USB, WLS, WEB, and most PCI and PCIe boards).