LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Alternatives for Instruments Drivers

Hi,

I want to communicate with instruments like Oscilloscope, DC Load and Power supply. There are instruments drivers available for specific instruments, but I want to share the My GUI with other teams and they might not have the same instruments. What could be the possible solutions or alternatives so that I dont have to use specific driver  to configure the respective instrument so that  My GUI should be usable with any OSC, DC Load and PS.

Note: The goal here is to develop a Automated Test Bench using LabVIEW.

Thanks & Regards,
Faizan

0 Kudos
Message 1 of 4
(225 Views)

@Faizan_habib wrote:

My GUI should be usable with any OSC, DC Load and PS.


Hmmm... Dream the impossible dream comes to mind here.

 

There have been several attempts to standardize instrument programming.

 

IEEE488.2, SCPI and the IVI framework comes to mind.

 

But the main problem is what if brand-X instrument has and option brand-Y instrument does not?

Not to mention that no manufacturer is required to support any of these standards.

 

My solution for a "universal test program" is to put all the "drivers" in the program and use a configuration file that tell the LabView program what instruments are present so it can use the proper driver.

 

FrameworkCapture.PNG

========================
=== Engineer Ambiguously ===
========================
Message 2 of 4
(187 Views)

@Faizan_habib wrote:

Hi,

I want to communicate with instruments like Oscilloscope, DC Load and Power supply. There are instruments drivers available for specific instruments, but I want to share the My GUI with other teams and they might not have the same instruments. What could be the possible solutions or alternatives so that I dont have to use specific driver  to configure the respective instrument so that  My GUI should be usable with any OSC, DC Load and PS.

Note: The goal here is to develop a Automated Test Bench using LabVIEW.

Thanks & Regards,
Faizan


You need to create a plugin architecture that allows you to add support for new instrument models and types, adding abstraction layer helps you to write test automation agnostic of instrument model. Be aware this is an extensive and expensive work to create a sophisticated abstraction layer with support for wide variety of models.

 

Read this whitepaper - https://www.ni.com/en/forms/hardware-measurement-abstraction-layers.html I like it as it also covers the effort and cost associated with developing an abstraction.

Santhosh
Soliton Technologies

New to the forum? Please read community guidelines and how to ask smart questions

Only two ways to appreciate someone who spent their free time to reply/answer your question - give them Kudos or mark their reply as the answer/solution.

Finding it hard to source NI hardware? Try NI Trading Post
0 Kudos
Message 3 of 4
(157 Views)

It's generally called HAL (Hardware Abstraction Layer) and there have been umpteen projects trying to do that in many different languages, including LabVIEW. The idea is great, and the execution seems to feel sound in the beginning until you start to do real work. Then you run into the problems. Scope 1 has 2 channels, Scope 2 however 4. Scope 3 has also 4 channels but the first two channels support 10 modes while the last two only can be used in 2 modes. Scope 4 has a special super hyper duper channel in addition to 2 standard channels, and Scope 5 only supports frequency domain measurements. And so on. Then you go to power supplies where you have simple power supplies, source measurement supplies, 2 and 4 quadrant capable supplies and what not else. And multimeters, frequency generators, network analyzers, vector analyzers, etc.

 

And before you know it your HAL is either one huge mess of options, additions, extensions, workarounds and exceptions or a limited model that supports exactly your initial two models and anything else is tough luck!

 

It basically comes down to one huge question: Are you willing to spend the rest of your life trying to support an impossible model or are you rather wanting to do practical work and get various systems built that actually do some real work?

 

As Santhosh mentioned, a plugin architecture can get you a useful approach to implement a limited functional model. But a plugin architecture is itself quite an engineering work already and should not be taken easily. It can be done and can work reliable but expect to spend quite a few hours on that alone before you can even start to go on the implementation of your actual plugins themself. And your users do not magically gain the ability to use their own devices. They all have to develop a plugin for their device for your, more or less advanced, plugin interface architecture. Usually they will rather select to develop their own application for their device than go and learn a rather complex plugin architecture to write their own plugin for.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
Message 4 of 4
(116 Views)