SlideShare a Scribd company logo
LABVIEW: THIS OR
THAT?
TERRY STRATOUDAKIS
March 15, 2016
AGENDA
 Introductions
 Background
 LabVIEW: This or That?
 Future Meetings/Topics?
Introductions
Terry Stratoudakis, P.E.
 LabVIEW user since 1998
 BSEE/MSEE NYU Polytechnic Institute
 CLA since 2010, CPI since 2008
 Taught over 110 weeks of LabVIEW courses
 ALE System Integration co-founder
ALE System Integration
 New York and Maryland offices
 Defense, energy, and research applications
 Advanced custom LabVIEW training
 Process driven
 NI Alliance Partner since 2004
Background
Recipe vs. Strategy
 Recipe Driven:
 Write to a file with 1 second loop time
 Write to a file that is 50Msamples/sec x 256
channels
 Strategy Driven:
 Refactor a 1,000 VI project for making additions
 Move parts of an existing test to run on an FPGA
Basis for Analysis
 Objectively review all views
 Review ni.com, lavag.org, and LabVIEW blogs
 Understand general computer programming
perspective
 Identify examples
 Expand examples with scenarios
This or That?
Cast of Characters – Part 1
 timeout or no-timeout?
 one loop or two loops?
 tabs or subpanels?
 project folders: virtual or auto-populating?
Cast of Characters – Part 2
 VI Server or SubVIs
 lvlibs or lvlclasses
 strings or enums
 queues or events
Extra Credit: how much debug logging?
Prediction: we will run out of time!
Time-out or no Time-out?
Scenario: Events, Notifiers, Queues have timeout
options
Timeout
 Pros – non-blocking, something can always run
 Cons – not a substitute for a loop
No Timeout
 Pros – no polling, execute only when needed
 Cons – blocking code can lock up program
One Loop or Two?
Scenarios: Producer Consumer, QMH
One While Loop
 Loop 1: State Machine; contains event
structure
Two While Loops
 Loop 1: Event Structure
 Loop 2: State Machine
One Loop
Two Loops
One Loop or Two - Analysis
One Loop
 Loop: State Machine; contains event structure
 Pros – simpler to debug, one state at a time
 Cons – not multi-core, no choice in timeouts
(required)
Two Loops -
 Loop 1: Event Structure, Loop 2: State Machine
 Pros – multi-core, event and queue handling in
same VI
 Cons – need communication between loops
Tabs or Subpanels?
Scenario: Not enough room on Front Panel
Test application
 Config, Calibration, Test, Report screens
Control application
 Alarms, Monitoring, Dataviewer screens
Tab Control
Subpanels
Tab or Subpanels - Analysis
Tab Control
 Pros – simple, familiar, all controls in same VI
 Cons – not scalable, most code runs in UI thread,
memory intensive, results in one massive top-level VI
Subpanels
 Pros
 Load GUIs into memory as needed, plug-in
 Modular – more simultaneous developers
 abstract GUI from computing code
 Cons – increases complexity, more inter-VI
messaging
What about Xcontrols?
Graphical User Interface
Sub panels
 Load GUIs into memory as needed
 Modular – more simultaneous developers
Tab controls
 Not scalable
 Every GUI is always in memory
 Inefficient memory usage for large applications
 Results in one massive GUI VI
VI Server or SubVIs?*
Scenario: Not enough room in one Block Diagram
SubVIs
 Pros – easy to create and call
 Cons – always in memory**
VI Server
 Pros – plug-in architectures, load VIs as needed, less
memory, remote access
 Cons – increases complexity, more inter-VI messaging
* Similar to tab controls or subpanels discussion
** Call Setup…
SubVIs: Call Node Setup
lvlib or lvlclass?
Scenario: Need LabVIEW Libraries (not .LLBs)
LVLIBs
 Pros – group code, easy to start using, scope
settings, namespace
 Cons – no inheritance
LVCLASS
 Pros – OOP benefits
 Cons – complexity goes up
strings or enums?
Scenario: State Machine command datetype
Enums
 Pros – Strictly-typed, enforced at compile-time
 Cons – extra dependencies, cannot add without
recompile
Strings
 Pros
 can embed messages, low coupling
 JKI State Machine, QDMH
 Cons – errors caught at run-time
Queues or Events?
Scenario: Messaging between different VIs
Queues
 Pros – reduces copies of memory, code remains in
same thread, complete API
 Cons – cannot broadcast, data can be intercepted if
Queue name is known
Events
 Pros
 Messaging between DLLs and LabVIEW
 Broadcast (N:N
 Cons
 API is not complete (i.e. no Get Event Status)
From LabVIEW R&D:
ni.com/training
Various Inter-process Communication Methods
and more (RT, FPGA, etc)…
Same target
Same application instance
Same target, different application instances
OR
Different targets on network
Storing -
Current Value
• Single-process shared variables
• Local and global variables
• FGV, SEQ, DVR
• CVT
• Notifiers (Get Notifier)
• Network-published shared variables (single-
element)
• CCC
Sending
Message
• Queues (N:1)
• User events (N:N)
• Notifiers (1:N)
• User Events
• TCP, UDP
• Network Streams (1:1)
• AMC (N:1)
• STM (1:1)
Streaming • Queues • Network Streams
• TCP
Example
Native
LabVIEW
APIs
ni.com/training
Foundational Native LabVIEW APIs for Messaging
• 1:1, 1:N
• Full API
• Lossy
• Named
• Pointer to Data
• 1:1, 1:N, N:1, N;N
• Full API
• 1:1,N:1,1:N,N:N
• Secure
• Flexible
• Lossless (option)
• Buffered
• Full API
• 1:1, N:1
• Named
Queues
User
Events
NotifiersDVRs
Questions? Comments?
terry@aleconsultants.com
www.aleconsultants.com
CONTACT INFO
DHPC Technologies – hosting
National Instruments – food & refreshments
THANK YOU

More Related Content

What's hot

LabVIEW Introduction
LabVIEW IntroductionLabVIEW Introduction
LabVIEW Introduction
Salim Khan
 
Compiler.design.in.c.docs
Compiler.design.in.c.docsCompiler.design.in.c.docs
Compiler.design.in.c.docs
Abid Syed
 
Compiler lecture 03
Compiler lecture 03Compiler lecture 03
Compiler lecture 03
University of Chitral
 
Lab view introduction
Lab view introductionLab view introduction
Lab view introduction
VishwasJangra
 
Passes of compilers
Passes of compilersPasses of compilers
Passes of compilers
Vairavel C
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
Tanzeela_Hussain
 
Debuggers in system software
Debuggers in system softwareDebuggers in system software
Debuggers in system software
gayathri ravi
 
2.2. language evaluation criteria
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteria
annahallare_
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem sloving
Mani Kandan
 
Compilers
CompilersCompilers
Compilers
Bense Tony
 
Steps for Developing a 'C' program
 Steps for Developing a 'C' program Steps for Developing a 'C' program
Steps for Developing a 'C' program
Sahithi Naraparaju
 
Introduction to LabVIEW
Introduction to LabVIEWIntroduction to LabVIEW
Introduction to LabVIEW
Ahmed Elsayed
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
Nirav Desai
 
Lab view
Lab viewLab view
Lab view
Seeni vasan
 
Coding principles
Coding principles Coding principles
Coding principles
DevAdnani
 
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Chirag Thumar
 
Basic of compiler
Basic of compiler Basic of compiler
Basic of compiler
Abhishek Singh
 
Algorithms and flow charts
Algorithms and flow chartsAlgorithms and flow charts
Algorithms and flow charts
Chinnu Edwin
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
afifahnailah
 
Problem Solving Techniques and Introduction to C
Problem Solving Techniques and Introduction to CProblem Solving Techniques and Introduction to C
Problem Solving Techniques and Introduction to C
Prabu U
 

What's hot (20)

LabVIEW Introduction
LabVIEW IntroductionLabVIEW Introduction
LabVIEW Introduction
 
Compiler.design.in.c.docs
Compiler.design.in.c.docsCompiler.design.in.c.docs
Compiler.design.in.c.docs
 
Compiler lecture 03
Compiler lecture 03Compiler lecture 03
Compiler lecture 03
 
Lab view introduction
Lab view introductionLab view introduction
Lab view introduction
 
Passes of compilers
Passes of compilersPasses of compilers
Passes of compilers
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Debuggers in system software
Debuggers in system softwareDebuggers in system software
Debuggers in system software
 
2.2. language evaluation criteria
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteria
 
Algorithmic problem sloving
Algorithmic problem slovingAlgorithmic problem sloving
Algorithmic problem sloving
 
Compilers
CompilersCompilers
Compilers
 
Steps for Developing a 'C' program
 Steps for Developing a 'C' program Steps for Developing a 'C' program
Steps for Developing a 'C' program
 
Introduction to LabVIEW
Introduction to LabVIEWIntroduction to LabVIEW
Introduction to LabVIEW
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
Lab view
Lab viewLab view
Lab view
 
Coding principles
Coding principles Coding principles
Coding principles
 
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
Log4j with selenium tutorial: How to Setup log4j logging in selenium automati...
 
Basic of compiler
Basic of compiler Basic of compiler
Basic of compiler
 
Algorithms and flow charts
Algorithms and flow chartsAlgorithms and flow charts
Algorithms and flow charts
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Problem Solving Techniques and Introduction to C
Problem Solving Techniques and Introduction to CProblem Solving Techniques and Introduction to C
Problem Solving Techniques and Introduction to C
 

Viewers also liked

PetSmart_SamplesOfWork
PetSmart_SamplesOfWorkPetSmart_SamplesOfWork
PetSmart_SamplesOfWork
Chris Maxedon
 
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
rustdescargar902
 
1000 free followers on keek
1000 free followers on keek1000 free followers on keek
1000 free followers on keekkelly895
 
презентация лобанова
презентация лобановапрезентация лобанова
презентация лобанова
yanaloban1405
 
Building an Ecosystem for Web Apps
Building an Ecosystem for Web AppsBuilding an Ecosystem for Web Apps
Building an Ecosystem for Web Apps
Razorfish
 
05 7 24 Worship
05 7 24  Worship05 7 24  Worship
05 7 24 Worship
Ronald Smith
 
Razorfish Global Tech Summit 2015 - Ray Velez, Welcome
Razorfish Global Tech Summit 2015 - Ray Velez, WelcomeRazorfish Global Tech Summit 2015 - Ray Velez, Welcome
Razorfish Global Tech Summit 2015 - Ray Velez, Welcome
Razorfish
 
IT Quiz
IT QuizIT Quiz
Jki Introduction 2010
Jki   Introduction   2010Jki   Introduction   2010
Jki Introduction 2010
jonathonelscott
 

Viewers also liked (9)

PetSmart_SamplesOfWork
PetSmart_SamplesOfWorkPetSmart_SamplesOfWork
PetSmart_SamplesOfWork
 
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
Supervivencia Extrema Para ordenador
 
1000 free followers on keek
1000 free followers on keek1000 free followers on keek
1000 free followers on keek
 
презентация лобанова
презентация лобановапрезентация лобанова
презентация лобанова
 
Building an Ecosystem for Web Apps
Building an Ecosystem for Web AppsBuilding an Ecosystem for Web Apps
Building an Ecosystem for Web Apps
 
05 7 24 Worship
05 7 24  Worship05 7 24  Worship
05 7 24 Worship
 
Razorfish Global Tech Summit 2015 - Ray Velez, Welcome
Razorfish Global Tech Summit 2015 - Ray Velez, WelcomeRazorfish Global Tech Summit 2015 - Ray Velez, Welcome
Razorfish Global Tech Summit 2015 - Ray Velez, Welcome
 
IT Quiz
IT QuizIT Quiz
IT Quiz
 
Jki Introduction 2010
Jki   Introduction   2010Jki   Introduction   2010
Jki Introduction 2010
 

Similar to LabVIEW: This Or That?

20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment
Jonathan Blakes
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
greenwop
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
Diane Allen
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
Alan Dix
 
Gatling workshop lets test17
Gatling workshop lets test17Gatling workshop lets test17
Gatling workshop lets test17
Gerald Muecke
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design Patterns
Karol Szmaj
 
Vinod_CV
Vinod_CVVinod_CV
Vinod_CV
vinod p
 
System verilog important
System verilog importantSystem verilog important
System verilog important
elumalai7
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Xebia IT Architects
 
Java multi thread programming on cmp system
Java multi thread programming on cmp systemJava multi thread programming on cmp system
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner) Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
Puppet
 
C2-4-Putchala
C2-4-PutchalaC2-4-Putchala
C2-4-Putchala
Manoj Kumar
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
Kaxil Naik
 
Newspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the NetNewspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the Net
ESUG
 
Common ASP.NET Design Patterns - Telerik India DevCon 2013
Common ASP.NET Design Patterns - Telerik India DevCon 2013Common ASP.NET Design Patterns - Telerik India DevCon 2013
Common ASP.NET Design Patterns - Telerik India DevCon 2013
Steven Smith
 
Rx Swift
Rx SwiftRx Swift
Rx Swift
Vincenzo Favara
 
C#.net, C Sharp.Net Online Training Course Content
C#.net, C Sharp.Net Online Training Course ContentC#.net, C Sharp.Net Online Training Course Content
C#.net, C Sharp.Net Online Training Course Content
SVRTechnologies
 
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
GeeksLab Odessa
 
Web services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows FormsWeb services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows Forms
Peter Gfader
 

Similar to LabVIEW: This Or That? (20)

20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
 
Gatling workshop lets test17
Gatling workshop lets test17Gatling workshop lets test17
Gatling workshop lets test17
 
Lublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design PatternsLublin Startup Festival - Mobile Architecture Design Patterns
Lublin Startup Festival - Mobile Architecture Design Patterns
 
Vinod_CV
Vinod_CVVinod_CV
Vinod_CV
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran MirPracticing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
 
Java multi thread programming on cmp system
Java multi thread programming on cmp systemJava multi thread programming on cmp system
Java multi thread programming on cmp system
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner) Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
Puppet Camp Chicago 2014: Running Multiple Puppet Masters (Beginner)
 
C2-4-Putchala
C2-4-PutchalaC2-4-Putchala
C2-4-Putchala
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Newspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the NetNewspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the Net
 
Common ASP.NET Design Patterns - Telerik India DevCon 2013
Common ASP.NET Design Patterns - Telerik India DevCon 2013Common ASP.NET Design Patterns - Telerik India DevCon 2013
Common ASP.NET Design Patterns - Telerik India DevCon 2013
 
Rx Swift
Rx SwiftRx Swift
Rx Swift
 
C#.net, C Sharp.Net Online Training Course Content
C#.net, C Sharp.Net Online Training Course ContentC#.net, C Sharp.Net Online Training Course Content
C#.net, C Sharp.Net Online Training Course Content
 
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
 
Web services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows FormsWeb services, WCF services and Multi Threading with Windows Forms
Web services, WCF services and Multi Threading with Windows Forms
 

Recently uploaded

A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 

Recently uploaded (20)

A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 

LabVIEW: This Or That?

  • 1. LABVIEW: THIS OR THAT? TERRY STRATOUDAKIS March 15, 2016
  • 2. AGENDA  Introductions  Background  LabVIEW: This or That?  Future Meetings/Topics?
  • 4. Terry Stratoudakis, P.E.  LabVIEW user since 1998  BSEE/MSEE NYU Polytechnic Institute  CLA since 2010, CPI since 2008  Taught over 110 weeks of LabVIEW courses  ALE System Integration co-founder
  • 5. ALE System Integration  New York and Maryland offices  Defense, energy, and research applications  Advanced custom LabVIEW training  Process driven  NI Alliance Partner since 2004
  • 7. Recipe vs. Strategy  Recipe Driven:  Write to a file with 1 second loop time  Write to a file that is 50Msamples/sec x 256 channels  Strategy Driven:  Refactor a 1,000 VI project for making additions  Move parts of an existing test to run on an FPGA
  • 8. Basis for Analysis  Objectively review all views  Review ni.com, lavag.org, and LabVIEW blogs  Understand general computer programming perspective  Identify examples  Expand examples with scenarios
  • 10. Cast of Characters – Part 1  timeout or no-timeout?  one loop or two loops?  tabs or subpanels?  project folders: virtual or auto-populating?
  • 11. Cast of Characters – Part 2  VI Server or SubVIs  lvlibs or lvlclasses  strings or enums  queues or events Extra Credit: how much debug logging? Prediction: we will run out of time!
  • 12. Time-out or no Time-out? Scenario: Events, Notifiers, Queues have timeout options Timeout  Pros – non-blocking, something can always run  Cons – not a substitute for a loop No Timeout  Pros – no polling, execute only when needed  Cons – blocking code can lock up program
  • 13. One Loop or Two? Scenarios: Producer Consumer, QMH One While Loop  Loop 1: State Machine; contains event structure Two While Loops  Loop 1: Event Structure  Loop 2: State Machine
  • 16. One Loop or Two - Analysis One Loop  Loop: State Machine; contains event structure  Pros – simpler to debug, one state at a time  Cons – not multi-core, no choice in timeouts (required) Two Loops -  Loop 1: Event Structure, Loop 2: State Machine  Pros – multi-core, event and queue handling in same VI  Cons – need communication between loops
  • 17. Tabs or Subpanels? Scenario: Not enough room on Front Panel Test application  Config, Calibration, Test, Report screens Control application  Alarms, Monitoring, Dataviewer screens
  • 20. Tab or Subpanels - Analysis Tab Control  Pros – simple, familiar, all controls in same VI  Cons – not scalable, most code runs in UI thread, memory intensive, results in one massive top-level VI Subpanels  Pros  Load GUIs into memory as needed, plug-in  Modular – more simultaneous developers  abstract GUI from computing code  Cons – increases complexity, more inter-VI messaging What about Xcontrols?
  • 21. Graphical User Interface Sub panels  Load GUIs into memory as needed  Modular – more simultaneous developers Tab controls  Not scalable  Every GUI is always in memory  Inefficient memory usage for large applications  Results in one massive GUI VI
  • 22. VI Server or SubVIs?* Scenario: Not enough room in one Block Diagram SubVIs  Pros – easy to create and call  Cons – always in memory** VI Server  Pros – plug-in architectures, load VIs as needed, less memory, remote access  Cons – increases complexity, more inter-VI messaging * Similar to tab controls or subpanels discussion ** Call Setup…
  • 24. lvlib or lvlclass? Scenario: Need LabVIEW Libraries (not .LLBs) LVLIBs  Pros – group code, easy to start using, scope settings, namespace  Cons – no inheritance LVCLASS  Pros – OOP benefits  Cons – complexity goes up
  • 25. strings or enums? Scenario: State Machine command datetype Enums  Pros – Strictly-typed, enforced at compile-time  Cons – extra dependencies, cannot add without recompile Strings  Pros  can embed messages, low coupling  JKI State Machine, QDMH  Cons – errors caught at run-time
  • 26. Queues or Events? Scenario: Messaging between different VIs Queues  Pros – reduces copies of memory, code remains in same thread, complete API  Cons – cannot broadcast, data can be intercepted if Queue name is known Events  Pros  Messaging between DLLs and LabVIEW  Broadcast (N:N  Cons  API is not complete (i.e. no Get Event Status)
  • 28. ni.com/training Various Inter-process Communication Methods and more (RT, FPGA, etc)… Same target Same application instance Same target, different application instances OR Different targets on network Storing - Current Value • Single-process shared variables • Local and global variables • FGV, SEQ, DVR • CVT • Notifiers (Get Notifier) • Network-published shared variables (single- element) • CCC Sending Message • Queues (N:1) • User events (N:N) • Notifiers (1:N) • User Events • TCP, UDP • Network Streams (1:1) • AMC (N:1) • STM (1:1) Streaming • Queues • Network Streams • TCP Example Native LabVIEW APIs
  • 29. ni.com/training Foundational Native LabVIEW APIs for Messaging • 1:1, 1:N • Full API • Lossy • Named • Pointer to Data • 1:1, 1:N, N:1, N;N • Full API • 1:1,N:1,1:N,N:N • Secure • Flexible • Lossless (option) • Buffered • Full API • 1:1, N:1 • Named Queues User Events NotifiersDVRs
  • 32. DHPC Technologies – hosting National Instruments – food & refreshments THANK YOU

Editor's Notes

  1. Some LabVIEW tasks are ‘recipe driven’ in that there are not too many ways to handle them and most people’s view would likely converge on one approach. Others are more strategy driven where it is possible to have many different acceptable approaches and the circumstances could impact the decision made. Big projects presentation: ftp://ftp.ni.com/pub/branches/uk/nidays2010/LabVIEW_Design_Patterns.pdf
  2. We all have our favorite ways of doing things. This could be based on which version of LabVIEW we started with, our industries and applications, or just personal bias. We try as much as possible to remove this bias from the analysis and look at things objectively looking at all points of view.
  3. No verdict, I have gone from 1 loop to 2, back to 1 loop, and currently I am prefer 2 loops.
  4. Good references: http://www.notatamelion.com/tag/tab-controls/ http://www.notatamelion.com/2015/02/09/building-a-subpanel-based-user-interface/ Xcontrols, LVOOP example: https://decibel.ni.com/content/docs/DOC-13901
  5. http://www.ni.com/white-paper/3574/en/ Sharing a class across RT/Windows
  6. Inter-application messaging for Strings, going to UDP, TCP, Databases, etc. Enums are very str enums do not allow for wildcards, cases where you want some or even all (not just a list)
  7. https://lavag.org/topic/13691-queue-vs-user-event-performance/ http://forums.ni.com/t5/LabVIEW/User-Events-vs-Queues-vs-Notifiers/td-p/1289138 Pro Events: http://www.slideshare.net/ChrisRoebuck1/user-eventstipstricks-and-sundry-chris-roebuck-ni-days-2013 Events Underdeveloped API Only recently added Flush Cannot have named datatypes May be forced to go into UI thread http://zone.ni.com/reference/en-XX/help/371361K-01/glang/generate_user_event/
  8. Link: https://lavag.org/topic/13435-queue-and-concurrency/#entry80638
  9. Various Inter-process Communication Methods This table lists various inter-process communication methods organized by scope and transfer type. This list is not comprehensive, but it is beneficial to know about all of the listed methods. Various Inter-process Communication Methods: Single-process shared variables Local variables Global variables Network-published shared variables (single-element) Network-published shared variables (multiple-element) Functional global variables (FGV) Single Element Queues (SEQ) Data Value Reference (DVR) Current Value Table (CVT) Client CVT Communication (CCC)