L bVIEW 2010LabVIEW 2010What’s New
U ’ Vi 2010and
User’s View on 2010David Fuller
Director of LabVIEW Platform R&DDanny Thomson
Test Software Engineer
What’s New in LabVIEW 2010 ni.com/labview
Director of LabVIEW Platform R&DNational Instruments
Test Software EngineerPoint‐to‐Point Systems
What’s New in LabVIEW 2010?
• Improved Performance
• LabVIEW Environment Enhancements
• Large Application Development
• Improved Data Transfer
• Distributed Hardware Configuration• What’s New in the LabVIEW Modules
• Building LabVIEW Add‐ons
What’s New in LabVIEW 2010 ni.com/labview
Improved PerformanceImproved Performance
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler
• Abstracts the complexities of programming−Memory management
− Thread allocation− Language syntax
What’s New in LabVIEW 2010 ni.com/labview
Optimizing the LabVIEW Compiler
DataFlow Intermediate Representation (DFIR)Hi h l l t ti
Block Diagram
• High‐level representation
• Preserves dataflow, parallelism, and execution semantics
DFIR
Transforms
Low‐Level Virtual Machine (LLVM)• Low level representation
LabVIEW Intermediate Language
• Low‐level representation
• Sequential
• Knowledge of target machine characteristics, i t ti t li t t
LLVM
Transformsinstruction sets, alignment, etc.
Target Machine Code
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 Performance Metrics
0% 50% 100% 150% 200%
Run‐Time Performance Improvement in LabVIEW 2010
Complex Math ‐ Black‐Scholes PDE solver
DAQ ‐ Digital and Analog Waveform Reads
0% 50% 100% 150% 200%
Real‐time Math (PXI‐8196) ‐MathScript Heat Equation
Bit Manipulation ‐ UnpackBits
Real‐time Control (cRIO 9022) ‐ Advanced PID
~~ 480%
Real time Control (cRIO 9022) Advanced PID
Real‐time Control (cRIO 9022) ‐ Single Channel PID
Parallel For Loop ‐Mandelbrot ~~
Large Array Math ‐ Linear Scale (Multiply and Add)
% Improvement LabVIEW 2010 vs. LabVIEW 2009
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler Decompositions
Common Subexpression Elimination
Unreachable Code Elimination
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler Optimizes Your Code
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler Optimizes Your Code
Only this portion of the code will execute
Because the input is constant, the compiler can determine which code will execute, and remove the unnecessary code
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler Optimizes Your Code
The Match Pattern primitive will notSequence Structure is now unnecessary
The Match Pattern primitive will not change from iteration to iteration
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Compiler Optimizes Your Code
• Decompositions Used− SubVI Inlining− Unreachable Code Elimination
− Dead Code Elimination
− Loop Invariant Code Motion
What’s New in LabVIEW 2010 ni.com/labview
SubVI InliningMaintain Code Modularity With Minimum OverheadMaintain Code Modularity With Minimum Overhead
• Removes all subVI call overhead
• Automatically updates callers when callee’s code changes
What’s New in LabVIEW 2010 ni.com/labview
Automatically updates callers when callee s code changes
LabVIEW 2010 Performance Metrics
Increased Compile TimeWhat Won’t Get Faster?
Compile Time 5XHardware Calls
DLL Calls /Mass Compile Time 35%
DLL Calls / Optimized C Code
Application Build Time 35%User Interface Interaction
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Idea Exchange
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 Idea ExchangeFeature Name LabVIEW 2009 LabVIEW 2010 User
Default Number of PJM LabVIEWDefault Number of Undo Steps
PJM_LabVIEW
Local Variable RedesignAltenbach
g
String RadixAltenbach
Wire LabelsFalkpl
G bl M E DanyGrowable Merge Error Node
Dany.
Move Switch Items in h
tst
What’s New in LabVIEW 2010 ni.com/labview
the connector pane 8 Mouse Clicks 2 Mouse Clicks
HTTP(S) Nodes
• Use the new HTTP Client VIs to build a LabVIEW web client
• Interact with servers, Web pages, and Web services, p g ,
• Works with LabVIEW or 3rd‐party Web services
What’s New in LabVIEW 2010 ni.com/labview
Large Application DevelopmentLarge Application Development
What’s New in LabVIEW 2010 ni.com/labview
Separate Compiled Code From Source FileImproved Source Code ControlImproved Source Code Control
Eliminate the need to re‐save and re‐submit files to source code control unless the graphical source code has been changed by the developer
What’s New in LabVIEW 2010 ni.com/labview
g p g y p
Point-to-Point Wireless Solutions
Why we are upgrading fromLabVIEW 8.2.1 to LabVIEW 2010
Danny ThomsonDanny Thomson
November 2010
Background
Test Software Engineer for Motorola Point to Point Wireless Solutions
Creating Test Solutions for product manufacturing and development.
Core Test Executive Frameworko Over 7 years oldo Started life in LabVIEW 6 1o Started life in LabVIEW 6.1o Now supports over 100 products in 4 product families.o Consists of around 2000 VI’so Built into a single executableo Deployed to several location.o Maintained by a team of 5 engineers
LabVIEW programmer for last 3-4 years in the Telecoms industry & severalLabVIEW programmer for last 3 4 years in the Telecoms industry & several years as a C & C++ programmer.
Spent many years working as a Software Configuration / Build Release M
Point-to-Point Fixed Wireless 25 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Manager.
Upgrading – There has to be a benefit !
Things to consider –
o Has the new version been fully evaluated.o Have you full agreement from all involved parties.o What level regression Testing is required of existing code.o Are there changes in the de elopment & r n time en ironmento Are there changes in the development & run time environment. o Remember to actually have a plan for your Upgrade.
There has to be a real measurable benefit to making such a change.
Point-to-Point Fixed Wireless 26 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
LabVIEW 2010 The killer feature !
Point-to-Point Fixed Wireless 27 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
An Overview of Our Development ProcessAll C d i i t i d ithi t l t l ifi llAll our Code is maintained within a source control tool, specifically IBM ClearCase.
One ClearCase branch consists of one changeset or Activity.g y
changesets are a way to group a number of modifications that are relevant to each other in one atomic package, that may be cancelled or propagated as needed.
• Consistent changes cause fewer build & integration problems• Changesets are logically how people group what they doChangesets are logically how people group what they do• Changesets provide a natural link to change request management• Changesets provide a natural link to project management• Changesets streamline code reviews
Before any branch is merged (copied) back to the main development line and made available to everybody else it goes through a peer review process
Point-to-Point Fixed Wireless 28 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
process.
Our Peer Review ProcessThe VI Analyzer will be run on all changed or new LabVIEW files.
The top level projects VI’s must open with a unbroken run arrow.
The top level project VI’s close without and save’s required.
A detailed review of the code changes is carried out. This is helped using the LabVIEW diff tools, and is done with the developer on hand
If a peer review fails, then code will be reworked and reviewed again
The benefits of a peer review process are many
Bugs are often found before they cause problems.
A consistent code style is easily and naturally encourage and can be enforced if required. Badly written code that nobody understands doesenforced if required. Badly written code that nobody understands does not make it in the code base.
http://zone ni com/devzone/cda/tut/p/id/6182
Performing Technical Code Reviews to Improve LabVIEW Code Quality
Point-to-Point Fixed Wireless 29 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
http://zone.ni.com/devzone/cda/tut/p/id/6182
A simple example of the problem we see
Point-to-Point Fixed Wireless 30 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
A simple example cont …..
Point-to-Point Fixed Wireless 31 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Effects of VI edit 8.2.1 : Close ALL
A single file edited and 88 file saves required
Your changeset now contains 87 files that have not really changed
Point-to-Point Fixed Wireless 32 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Possible solutions to this
All of the possible solutions to this problem are not ideal they are compromises only
Pass all 88 files through the peer process in full (very painful)
Ignore all the recompiled files just assume that is the only change with those files, this is not really a good way to go about running a “best practice” environmentpractice” environment
Select “Do not save automatic changes”, selection in the LabVIEW goptions palette
Point-to-Point Fixed Wireless 33 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
The real solution LabVIEW 2010
Point-to-Point Fixed Wireless 34 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Save VI’s without compiled code
By default, a VI contains compiled code. When you edit the VI, LabVIEW recompiles the code of the VI. LabVIEW also recompiles any VIs that call the VI causing you to save VIs that you do not edit because recompiling causesVI, causing you to save VIs that you do not edit because recompiling causes an unsaved change. If you use source control, separate compiled code from the VIs you check into source control so that the VIs that you do not check out do not have to recompile.pWhen VIs with separate compiled code recompile, you do not have to save the VIs because they do not have unsaved changes.
Source LabVIEW 2010 HelpSource – LabVIEW 2010 Help
Point-to-Point Fixed Wireless 35 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Same Example in LabVIEW 2010Effects of same VI edit 2010
A single file edited and a single file save required
So in LabVIEW 2010 with source code and compile code separated,the changeset now truly represents the code changed.
This greatly simplifies the task of applying Software ConfigurationManagements best practice to all your projects
Point-to-Point Fixed Wireless 36 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Additional features I am looking forward to• Line Labels (2010) ☺ ☺• Cluster Constant (2010)• Scripting Officially (2010) ☺• Scripting Officially (2010) ☺• Creating my own VI Analyzer Tests (2010) ☺• Native Recursion (2009)• Using The Quick Drop Tool (8.6) ☺• Unit Test Framework Toolkit (8.6)• Desktop Execution Trace Toolkit (8.6)• Probe Watch & Breakpoint Windows (8.6)• Stop Terminal for For Loops (8.5) ☺☺☺p p ( )• Merging Vis (8.5)
Point-to-Point Fixed Wireless 37 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Beta testing get involved !
It provides YOU with a real opportunity to influence and affect the final released product, in the areas that are of interest to YOU.
You can get a better insight into the how & why of new features.
It’s FUN !!
Point-to-Point Fixed Wireless 38 November 2010MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service names are the property of their respective owners. ©
Motorola, Inc. 2009.
Packed Project LibrariesDistribute and Reuse LabVIEW Code EasilyDistribute and Reuse LabVIEW Code Easily
• Deploy the VI hierarchy with a single file
Sh b ild i f lli VI• Shorter build times for calling VIs
• Simplified code deployment
• lvlibp file type• .lvlibp file type
Example # Source VIs EXE Build Time
# VIs Built Into PPL
EXEBuild Time
Build Time Improvement
Agilent 34401 Acquire and Graph ‐ SW Triggered.vi
53 6.3 s 22 5.15 s 18.2%
E‐Mail Notification.vi 102 8.66 s 68 5.82 s 32.8%
Update Weather Data.vi 71 12.97 s 46 5.48 s 57.8%
Custom Example 1000 53.93 s 999 15.94 s 70.4%
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW Add‐Ons for Software Validation
Unit Test Framework Toolkit− 30% faster test execution− Custom definition of test vector ranges
VI Analyzer Toolkit− Create you own tests in VI Analyzer using LabVIEW ScriptingScripting
What’s New in LabVIEW 2010 ni.com/labview
Target‐to‐Host Data TransferTarget to Host Data Transfer
What’s New in LabVIEW 2010 ni.com/labview
Network Connectivity Options in LabVIEW
TCP/IP and UDPDefine low level communication protocolsDefine low‐level communication protocols
Remote Front PanelsQuickly embed a front panel in a browser
Shared VariablesQuickly develop distributed systems throughdrag‐and‐drop configuration
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 ModulesWhat’s New
LabVIEW 2010 Modules
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 Real‐Time Products
• LabVIEW Real‐Time Module− Web‐based configuration and monitoring of networked targets
− Simpler host‐to‐target transfer of data using Network Streams
P blish ariables ia Web Ser ices− Publish variables via Web Services
− Software IEEE 1588 as timing source for Timed Loop
• NI‐Real‐Time Hypervisor 2.0− Shared memory for higher data transfer rates between OSsShared memory for higher data transfer rates between OSs
− Higher customization for CPU partitioning
− Added Linux support
What’s New in LabVIEW 2010 ni.com/labview
pp
LabVIEW 2010 FPGA Module
IP Integration Node ‐ Directly import Xilinx .xco files or your own VHDL easily
New Compilation Flow E li C il ti E ti t d B ild S ifi tiNew Compilation Flow ‐ Earlier Compilation Estimates and Build Specifications
Cycle‐Accurate Simulation ‐ Use ModelSim for Cycle‐Accurate Simulation
More IP Blocks ‐ New IP for Statistics Complex Multiplication and MoreMore IP Blocks New IP for Statistics, Complex Multiplication, and More
Host Improvements – New Dynamic reference for Host VI reuse
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 FPGA CompilationLabVIEW FPGA Compile Farm ToolkitLabVIEW FPGA Compile Farm Toolkit
Compilation “Smart” Server
Compilation Workers
LabVIEW FPGA Development Machines
What’s New in LabVIEW 2010 ni.com/labview
Compilation Workers
LabVIEW 2010 FPGA Compilation LabVIEW FPGA Compile Cloud Service (Beta)LabVIEW FPGA Compile Cloud Service (Beta)[email protected]
High‐RAM Dedicated kh
LabVIEW FPGA
Workhorse Computers in the Cloud
Development Machines
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 MathScript RT Module
MathScript NodeValidate your custom m files for deterministic behavior− Validate your custom .m files for deterministic behavior
− Automatically create output variables
MathScript Window− Performance improvements− Enhanced text‐editor
• Syntax highlighting• Line numbersLine numbers• Find/replace text dialog box• Bookmarks
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 Robotics Module
IP for sensing, navigation, High‐level graphical Deployment to Real‐Time motion control and more programming environment and FPGA hardware
Tools for integrating text‐based algorithms
Examples of real‐world applications
Connectivity to sensors and actuators from top
vendors
What’s New in LabVIEW 2010 ni.com/labview
Building LabVIEW Add‐OnsBuilding LabVIEW Add Ons
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010Extending the PlatformExtending the Platform
Licensing and Activation for 3rd Party Add‐ons• Commercial Grade Activation solution from Concept Software• Commercial Grade Activation solution from Concept Software
• Allows for LabVIEW Add‐ons created by the development community to implement 30‐day software trials
F ll i d i L bVIEW 2010• Fully integrated in LabVIEW 2010
LabVIEW Scripting • Intended for power users to enhance the capabilities of LabVIEW during editing
U d t i t dif t L bVIEW d t ti ll• Used to inspect, modify, or generate LabVIEW code automatically
What’s New in LabVIEW 2010 ni.com/labview
LabVIEW 2010 Resources
• LabVIEW 2010 New Features
• LabVIEW 2010 Performance Update
• LabVIEW Compiler: Under the Hood
• Timing and Synchronization in LabVIEW
What’s New in LabVIEW 2010 ni.com/labview
Top Related