DQMH Consortium Toolkits Discussions

Showing results for 
Search instead for 
Did you mean: 

(my) DQMH PPL and VILIB PPL best practices

Debugging: (depending on what you want to do)



Exclude dependent packed libraries: (Always enabled!)

Exclude dependent shared libraries: (Always disabled!)




Use Pre-/Post Build Actions to optimize your build

  • Remove all Breakpoints before you build
  • Check for misssing Items.
  • set conditional disabled symbols



DQMH Module's (generic):

- Move Tester inside of the Library

- Set main.vi public (easier to debug)



Call (non PPL) DQMH from PPL DQMH modules

  • The GUI is available as source code and will be compiled later as EXE
  • The GUI DQMH modules are not used as a PPL
  • The Module1 uses requests from the GUI / delivers data with broadcasts



Obtain Request Events.vi

For all GUI-DQMH modules "Obtain Broadcast Events.vi and Obtain Request Events.vi) must be extended. The VI searches via "VI server" the instance with the valid UserEvent registrations).



TestStand error / stop module integration:

- generate an additional vi to receive the desired events under TestStand (running in a TS-thread)



Add LVLIBP-search path to your Application.ini file (TestStand and normal applications)

  • viSearchPath="C:\xxx\Components\Libraries\*"
  • ShowLoadProgressDialog=False


Lessons learned:

  • Circular dependencies
    It's not possible to build PPL with circular dependency
  • Namespace
    Attention the namespace of a VI or control and typedef changes Typedef controls. The type definition inside and outside the Packed Library is not compatible.
    It can cause problems with queues and type casting for example!
  • Semaphores
    If Semaphores are used over the PPL border, an separate LabVIEW Semaphores PPL (wrapper) must be created. The problem lies again in the fact that a Semaphore is in the background a "Typedef Queue" which gets a new Type in the new Namespace of the PPL.
  • TestStand
    If PPL cannot be opened with the TestStand "Runtime Engine", it may be because the controls on the front panel are not Pubilc.
    (For libs and for DQMH modules).
  • Missing Items in Projects / lvlib
    Missing items result in partially not executable PPL (even text files and images)
  • After renaming the project, the PPL build specification must be recreated

In case of strange crashes, recompile the PPL with the MGI Solution Explorer!

  • Consider build order!
  • opposite direction of the hierarchy


=> Still under construction... please wait for updates! 😉


Have FUN with PPL! 



Message 1 of 3

Updated and extended...

0 Kudos
Message 2 of 3

Updated (Pre-Postbuild / Application settings)

0 Kudos
Message 3 of 3