National Instruments Leadership Seminar

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

Developing Event Driven State Machine Workflows S1 S2 S3 S4 Adam Calderon Principal Engineer - Interknowlogy Microsoft MVP – C#
LabView Academy 5. óra. Témakörök SubVI Modularitás Icon Connector Pane.
MICHAEL MARINO CSC 101 Whats New in Office Office Live Workspace 3 new things about Office Live Workspace are: Anywhere Access Store Microsoft.
TP4: S TATE M ACHINE D ESIGN P ATTERN  Definition  Infrastructure  Transition Code  Conclusion.
COM vs. CORBA.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
1. 2 LabVIEW for FRC Doug Norman National Instruments January 6, 2012.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Developing User Interfaces with Event-driven Programming
Virtual Instrumentation With LabVIEW. Course Goals Understand the components of a Virtual Instrument Introduce LabVIEW and common LabVIEW functions Build.
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
National Instruments Confidential. 2 LabVIEW Development Tips and Tricks Revealed Carl Ljungholm - LabVIEW Product Support Engineer Travis Hailey - LabVIEW.
Universal driver for LabView Pia & Shmulik Zobel Advisor – Mony Orbach.
Understanding of Automation Framework A Storehouse of Vast Knowledge on Software Testing and Quality Assurance.
C++ fundamentals.
1 Chapter Overview Introduction to Windows XP Professional Printing Setting Up Network Printers Connecting to Network Printers Configuring Network Printers.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
Test Automation: An Architected Approach Dan Young March 17th, 2005
Virtual Instrumentation With LabVIEW
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
How to use LabVIEW Ihor Korolov February 2011.
Driver Station MVRT 2009 – 2010 Season. Add information Breadboard Classmate PC USB Hub Joysticks Stop Button.
Introduction to Basic LabVIEW Design Patterns
Tips and Tricks to Speed LabVIEW Development Useful Nuggets to Save You Time ni.com/labviewzone.
Virtual Instrumentation With LabVIEW. Course Goals Understand the components of a Virtual Instrument Introduce LabVIEW and common LabVIEW functions Create.
LabVIEW an Introduction
Introduction to LabVIEW
WorkPlace Pro Utilities.
Each VI has 2 Windows Front Panel User Interface (UI) –Controls = Inputs –Indicators = Outputs Block Diagram Graphical Code –Data travels on wires from.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
Composition and Evolution of Operating Systems Introduction to Operating Systems: Module 2.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
LabVIEW in 3 Hours. What is Test & Measurement? Keypad Functionality Keypad Functionality LCD Testing LCD Testing Sound Quality Sound Quality Acoustic.
Virtual Instrumentation With LabVIEW. Front Panel Controls = Inputs Indicators = Outputs Block Diagram Accompanying “program” for front panel Components.
JQuery JavaScript is a powerful language but it is not always easy to work with. jQuery is a JavaScript library that helps with: – HTML document traversal.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Computer Simulation of Networks ECE/CSC 777: Telecommunications Network Design Fall, 2013, Rudra Dutta.
Programming Configuration Files in LabVIEW David Thomson Systems Integrator Original Code Consulting National Instruments Alliance Member Research Scientist.
CS – a control system framework Dr. Dietrich Hans Beck, DVEE, GSI 20 November 2002.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EPICS and LabVIEW Tony Vento, National Instruments
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
The Dashboard Creation Toolkit (DCT) Project M. Fátima Gómez de la Cruz (EN-ICE-MTA)
Digital Electronics and Computer Interfacing Tim Mewes 2. LabVIEW Basics part II.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
CHAPTER 4 Fragments ActionBar Menus. Explore how to build applications that use an ActionBar and Fragments Understand the Fragment lifecycle Learn to.
Wednesday NI Vision Sessions
Two New UML Diagram Types Component Diagram Deployment Diagram.
Modularization of Geant4 Dynamic loading of modules Configurable build using CMake Pere Mato Witek Pokorski
Boot Engineering Extension Record (B.E.E.R.) By Curtis E. Stevens.
SQL Database Management
Dispatcher Phoenix Is…
L25 - PlantPAx Process Application Development Lab I
Essentials of UrbanCode Deploy v6.1 QQ147
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Self Healing and Dynamic Construction Framework:
In-situ Visualization using VisIt
Intent To provide a framework to manage the process of software salvage and promote loose coupling through message passing. Salvage means recycling significant.
Advanced Integration and Deployment Techniques
Course Learning Map Lesson # Lesson Title Lesson 3 Lesson 2 Lesson 1
Computer Simulation of Networks
Machine Independent Features
Channel Access Concepts
Channel Access Concepts
Presentation transcript:

National Instruments Leadership Seminar April, 2002 The Art of Creating Dynamic, Flexible LabVIEW Applications Norman Kirchner CLD, CPI – Texas Instruments Gerald Albertini CLD – Texas Instruments August 10, 2006 As LabVIEW has grown into a much more dynamic programming language, so have the demands from the end-users for more dynamic programs and displays. This session will cover those techniques necessary to take those creative concepts to their implementation in the code you create. By understanding the tools available within the LabVIEW API, such as: Dynamic Events, VITs and their use during runtime, Sub-Panels and Plug-in Architectures; Programmers basic and advanced can create code that will result in dynamic displays and code abstraction. Examples and demonstrations will show how little code is needed to accomplish some eye-opening and dynamic tasks. National Instruments CONFIDENTIAL

‘Dynamic’ in LabVIEW – Going N+1 National Instruments Leadership Seminar April, 2002 ‘Dynamic’ in LabVIEW – Going N+1 What does ‘Dynamic’ mean to us? Ability to have software change and grow based upon customizable configurations and user inputs Ability to transfer data and control, without the need of additional wiring Why use it? How do We Accomplish it? How does it differ from traditional meaning in SW High level advantages ‘saves time later’ National Instruments CONFIDENTIAL

Measurement Library – Adding Instrument National Instruments Leadership Seminar April, 2002 Measurement Library – Adding Instrument Done Once National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 The Art at Work Test Module Universal Instrument Configuration & Control Drop-In “Brat Code” Daemon – Background Engine Calling into Other VIs VIt Usage Plug-in Architecture Sub-panel Callback Sub-Panel Config.vit Data Instrument Configuration Instrument Configuration Instrument Driver Instrument Driver Instrument Configuration Instrument Driver National Instruments CONFIDENTIAL

Advanced VI Server Techniques National Instruments Leadership Seminar April, 2002 Advanced VI Server Techniques Drop-In ‘Brat Code’ & Extrapolation What Happens When Children Control the Parent Calling VI’s From Anywhere Reach Out and Run Someone Utilizing the VIt These ain’t your fathers templates Extrapolation From Self: Smart code, allows your program to grow and change w/out needing to re-work your code Extrapolation from Predecessors: Allows independence from caller Self Operation A VI operates on its own properties and/or objects Example: Customize appearance based on information saved in an .ini file (size, color, logo, visible objects,…) Operation on other VIs Open a reference to a LabVIEW instance Open a reference to a VI Operate on properties/methods Close references after use National Instruments CONFIDENTIAL

Drop-In ‘Brat Code’ & Extrapolation – The What National Instruments Leadership Seminar April, 2002 Drop-In ‘Brat Code’ & Extrapolation – The What Code that can “look up to” and operate on the code it’s placed inside Stupid about the code around it Smart enough to function w/ little to NO input National Instruments CONFIDENTIAL

Drop-In ‘Brat Code’ & Extrapolation – The Why National Instruments Leadership Seminar April, 2002 Drop-In ‘Brat Code’ & Extrapolation – The Why Achieve Complex Operations w/ Little to No Wiring Very Modularized Fosters Re-use Enables Plug & Play Code (or Drop & Run) “The scope of the code does not depend on pre-defined limitations. It adapts to the code it’s in.” DO DEMO after this slide then show how “The scope of the code does not depend on pre-defined limitations, rather, it changes depending on the code it’s in.” National Instruments CONFIDENTIAL

Drop-In ‘Brat Code’ & Extrapolation – The How National Instruments Leadership Seminar April, 2002 Drop-In ‘Brat Code’ & Extrapolation – The How Get a reference to the high level object of interest Front Panel Ref Application Ref Path Scan results to get items Utilize unused/hidden fields to flag items Perform extraction or operation No Passing of Data Needed Traverse Ref – Find all references of specific ClassName vi.lib\Utility\traverseref.llb\TRef Traverse for References.vi (8.0) Call Chain Find where current VI resides in hierarchy VI.Callees Find everyone who is using specific VI Panel Properties – Filter array for item of interest National Instruments CONFIDENTIAL

Daemons – Drop-in Engines National Instruments Leadership Seminar April, 2002 Daemons – Drop-in Engines Adds Complex Functionality by the Addition of 1 VI Self Managed or ‘Lite’ Interaction Similar to Windows Services Utilizes Multi-Processing CPU Does not come free – Debugging difficulty Encapsulate Complexity Within Engine Clean Code = Happy Code National Instruments CONFIDENTIAL

Invoking VI’s from others – The What National Instruments Leadership Seminar April, 2002 Invoking VI’s from others – The What Running Code Not Placed as SubVI “Dynamically” call a VI Load VI | Pass parameters | Run VI | Read Result | Close In LV, EXE, Across PC, Around World National Instruments CONFIDENTIAL

Invoking VI’s from others – The Why National Instruments Leadership Seminar April, 2002 Invoking VI’s from others – The Why Improve performance (memory usage) Make design more modular Ability to share work among team members Increase scalability of the application Create distributed applications Enable recursion in G Also…very useful for “release tools” builder VI analyzer is a good example Your Programs are No Longer Limited by Software and Physical Boundaries National Instruments CONFIDENTIAL

Invoking VI’s from others – The How National Instruments Leadership Seminar April, 2002 Invoking VI’s from others – The How VI server Method “Run VI” Passing parameters through “Set” and “Get” methods (Invoke Nodes) Ability to run asynchronously : “Wait Until Done” VI server Method “Call by Reference” Passing parameters is direct Runs synchronously – like a subVI would Pay Attention to Error Handling National Instruments CONFIDENTIAL

Utilizing the VIt – The What National Instruments Leadership Seminar April, 2002 Utilizing the VIt – The What Running Multiple Instances of a Same VI…asynchronously Dynamic calls to a VIt Example: an application controlling N similar devices Pseudo “MDI” Applications National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 Utilizing VIt – The Why Write once, reuse over and over and over … Maintenance and growth made simple Easily expandable to “N+1” Maximizes Code Reuse MDI Easy and elegant…No need to duplicate VIs National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 Utilizing VIt – The How It’s just VI Server… “VI Path” Points to a VIt Keeping Track of Instances References New instances dynamically created are named “<VITNAme>1, <VITNAme>2, …<VITNAme>n ” so that the calling VI needs a way to keep track of running instances references for subsequent operations on a specific instance Windowing operations could be embedded in the VIT itself or operated at the calling VI level. National Instruments CONFIDENTIAL

Plug-in Architecture – The What National Instruments Leadership Seminar April, 2002 Plug-in Architecture – The What Connector Pane Directory structure Naming Conventions Software Calls Into Dynamic Framework Plug-ins Must Match Rules of Framework Automatically recognized by the software Drop new “Plug-In” in a specific directory to make it available to the application Program Extension Add new features without rebuilding program Enum b4 Enum aftr Dirs b4 Dirs aftr Going N+1 – Transparently adding one more to <whatever> Signal processing Algorithms Adding functionality New Camera – Imagine MAX needing to be re-written for a new camera New SourceCodeControl Provider (%LV%\vi.lib\SourceControl\Providers) National Instruments CONFIDENTIAL

Plug-in Architecture – The Why National Instruments Leadership Seminar April, 2002 Plug-in Architecture – The Why SCALABILITY ! Easily deploy new features Make Code More Modular Examples: Adding signal processing algorithms to an analysis SW Adding support for a new instrument in the “Universal Capture” module presented earlier ShowCase LV SCC providers National Instruments CONFIDENTIAL

Plug-in Architecture – The How National Instruments Leadership Seminar April, 2002 Plug-in Architecture – The How Call By reference Node + Strictly typed refnums Connector assignment MUST be clearly specified (all plug-ins use the same!) “Plug-in” directory(ies) so that the SW can automatically scan available modules National Instruments CONFIDENTIAL

Event Registration & Encapsulation – The What National Instruments Leadership Seminar April, 2002 Event Registration & Encapsulation – The What Defining Events External to Event Structure Handling Events Inside of SubVIs Change What is Registered During Run-Time Concept of Registration Encapsulation in Sub-VI’s Why – So you don’t have to add to your event structure every time you do <whatever> Utilizing User Events Initialization Great for fully event driven software Bad for replacing queues National Instruments CONFIDENTIAL

Event Registration & Encapsulation – The Why National Instruments Leadership Seminar April, 2002 Event Registration & Encapsulation – The Why More reactive code Prevents “Bloated” Case Selectors Promotes Re-use Reduces need for wiring Re-use event action w/out needing to code it into your event structure every time! Your Code Event Event handler National Instruments CONFIDENTIAL

Event Registration & Encapsulation – The How National Instruments Leadership Seminar April, 2002 Event Registration & Encapsulation – The How Define objects of interest Get reference to object(s) & wire to registration node Handle events in same VI or pass registration node ref to sub-VI SideNote: Sub-VI may grab object ref from caller MAKE EXAMPLE THAT SIMPLY HAS THE CASE STRUCTURE WITHIN THE EVENT STRUCTURE National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 Utilizing Sub-panel Everyday unseen Example : LV Options window Multiple views of same information (Tabular / Pie / Chart) Reduction of code space & data space Single window / Multiple Displays When switching between multiple windows just won’t do National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 Caveats and Pitfalls Complexity Up Front Harder to Troubleshoot Document Paradigm, Not Just Code Need Clear Vision of the Future (no crystal ball, just binoculars) National Instruments CONFIDENTIAL

National Instruments Leadership Seminar April, 2002 Conclusion Spend Time Now and Save a Lot of Time Later Saves Room on BD and Time Spent Coding Saves Memory Lets You Create Dynamic / Flexible Displays SMRS ( scaleable, modular, reusable, simple) Always Think “What If I Need to Add 1 More” National Instruments CONFIDENTIAL

Questions? Maybe answers… National Instruments Leadership Seminar April, 2002 Questions? Maybe answers… National Instruments CONFIDENTIAL