Showing results for 
Search instead for 
Did you mean: 

QMH measurement, logging and GPIB and OPC communication

Good Evening to all,

I'm actually reviewed a code in order to realize my application with a QMH architecture. In my application there are three principal processes that need to run in parallel:


1) OPC continous communication with PLC

2) GPIB continous communication with a climatic chamber

3) DMM continous measurement and logging


I'm started to develop my code from QMH template in labview 2019


How can timing my application to avoid lags on answers especially in the UI interact? Could someone give me any indication?


Plase say me if you need other information about!





0 Kudos
Message 1 of 5

If you are asking about lag in the UI, then perhaps the QMH isn't being properly implemented.  If you could show us some code - even a stripped-down version - maybe we can help.

(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 2 of 5

Actually I'm implementing only GPIB but because of it have a wait function implemented I've already saw the lag. Please find attached all code and launch main in order to see the lag.

Play with START CHAMBER and STOP CHAMBER button and see the lag. Maybe i'm wronging in some steps. Could you help me?

0 Kudos
Message 3 of 5

Hi @billko,

can you help me about the lag problem?


Thank you,


0 Kudos
Message 4 of 5

Honestly I could never make any sense of the QMH template, or any NI template for that matter. The QMH template so tightly coupled (and poorly documented) that making any little change would blow the whole thing up.


I have tried and tried over the years to figure out how to implement it but always failed.


Recently I discovered the Channel Message Handler (CMH). I found the CMH much easier to understand in general.


There is a template in the newer LabVIEW  editions but again it's a NI template so it will probably be less work to start from scratch then try to modify their template. What I do is create a new project using the CMH template. Open "" delete everything in it and then start programming using the file structure that template makes, and a couple of the vi's in the "Support VIs" directory that's about it. 


Using the CMH I have:

  1. A GUI loop that handles all the user interface
  2. A Control loop that controls all my instruments and test conditions
  3. A DAQ loop that constantly takes measurements and streams them to the Log/Display loop 
    1. The DAQ loop also does a "safety check" and can tell Control loop to shutdown the test if measurements exceed the safety limits
  4. Log/Display loop that saves data at regular intervals and displays logged data in charts
    1. Log/Display lop also puts all the measurements in a "buffer" that is dumped to the data file whenever the program shuts down due to exceeding the safety limits so we can see the conditions that lead up to tripping the safety limits 

Here's a screen capture of my block diagram. Notice how easy it is to see how it all works together.


=== Engineer Ambiguously ===
0 Kudos
Message 5 of 5