luc desruelle's Blogue

Community Browser
Showing results for 
Search instead for 
Did you mean: 

Re: Darwin applied to LabVIEW: The evolution of the data management

Trusted Enthusiast

The survival of the fittest applied to the LabVIEW Dataflow model...

PS : You can download the presentation  Darwin applied to LabVIEW V2.2.pdf attachment and LabVIEW examples code.


Recently, I made a new presentation (LabVIEW User group LUGE) "Darwin applied to LabVIEW: the evolution of the data management." subtitle “The survival of the fittest applied to the LabVIEW Dataflow model ”.


With deep humor this presentation makes the link between the evolution of the LabVIEW data and the Darwin's Theory of Evolution.

darwin labview.png

The presentation deals with the evolution of the concept of "Data communication" of the LabVIEW dataflow model:

lDataflow element to Variable Interfaces, to Buffer Interfaces

lTo store a value in memory/ To access the value

lTo prevent Race Condition, buffer copies

The presentation does answer the following questions:

lWhy avoiding local, global, Property Node? How to avoid Race Conditions? Does FGV prevents Race Condition (realy!) ?

lWhich method to use? Why?

lWho is the survival of the fittest? (the survival of the most scalable)



  • LabVIEW follows a dataflow model
  • In dataflow programming, you generally do not use variables. For a literal implementation of this model.
  • Dataflow models describe nodes as:
      • consuming data inputs,
      • producing data outputs.
  • Advanced concepts : LabVIEW contains many data communication methods.
  • For example, local and global variables are not inherently part of the LabVIEW dataflow execution model.


  • LabVIEW contains many data communicationmethods, each suited for a certain use case.
  • Can by order into 3 types:

lDataflow elements, the primary methods

lVariable Interfaces

lBuffer Interfaces

data communications methods.png

data Communication.png

For diner tonight: Functional Global variable (FGV, LV2), Action Engine (AE), DVR, OOP, State Machine and QMH. Speed demonstration, UI thread, memory management (buffer copies) and Race Condition with simple and downloadable examples.








for example, (CLAD exam): Which of the following is the best method to update an indicator on the front panel? And explain WHY please!!!

  1. Use a Local variable
  2. Wire directly to the indicator « Data Out »
  3. Use an implicit « value » property node
  4. Use an explicit « value » property node (reference)


speed execution.png






Luc Desruelle | avatar_ld.gif| Voir le profil LinkedIn de Luc DesruelleVoir mon profil | Mon blog LabVIEW

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW

Co-auteur livre LabVIEW : Programmation et applications

LabVIEW Champion


banniere Luc Livre.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion

Download All
Active Participant


Great article, I enjoyed going through the presentation here: and eventually landed at your blog. I am sorry that I could not watch this presentation live.

This is a nice way to present the evolution of LabVIEW, thanks for sharing... of course I have to add my plug that the evolution from the NI QMH is the DQMH (Delacor QMH)

Thanks for sharing and congratulations again on becoming a LabVIEW Champion.



I'm Organizing the GLA Summit!

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?