Top LabVIEW Takeaways from NIWeek 2016 Sessions: Part 2
Several members of the Erdos Miller team attended National Instruments NIWeek 2016 Aug.1-4. In this post as well as an earlier post, we’re share the most useful/interesting information we learned at conference sessions.
Session: XNodes – Treasures of Reuse in LabVIEW’s Attic
Summary by: Rohama Khadija, LabVIEW Developer at Erdos MillerHave you heard of XNodes? They’re incredibly useful nodes you can make for use in LabVIEW, but NI doesn’t have any documentation for them and doesn’t support them. However, Certified LabVIEW Architect Brian Hoover from Samsung SDI gave a very informative session on how to create and use XNodes as well as VI Macros (VIMs).
XNodes allow for event-driven programming during edit-time, through ability VIs. There is an unofficial XNode Editor that helps you create XNodes, and add ability Vis, and includes some documentation about the various ability VIs.
XNode Editor in LabVIEW
Brian also introduced VIMs, custom XNodes that allow type adaption. In LabVIEW 2016, NI added a special structure that looks like a disable diagram structure but behaves a little differently when used inside a VIM. It looks through each case, picks the first case that does not have any broken wires and enables it. This structure is only available in LabVIEW 2016 Mac and Linux, but can be copied to other OS’s as well.
Check out the PowerPoint slides, example code and YouTube video of the presentation on the NI Community.
Session: Creating Dynamic FPGA Interfaces
Summary by: Antionio Alexander, Senior Integration Architect | CLA, CLED at Erdos Miller
https://decibel.ni.com/content/docs/DOC-35574
https://github.com/BarrettStephen/FPGA-Middleware-Demo
This presentation was really informative and focused. NI Labs, where NI R&D showcases unreleased products and/or features to its user base, has created a library that can allow a very specific kind of dynamic FPGA use. Although not as dynamic as the scan engine, it allows you to re-use RT code in a very scalable way.
For example if you have multiple hardware configurations, some performing a function using only one module and another configuration using six modules to perform six functions, you could write the RT code once and use this module to access the functionality exactly the same whether using the hardware configuration with one module or six. Although the API is not the best, at its very basic level, it allows you to open sessions for single objects within a loaded FPGA VI from the RT.
View resources from this session and watch a demo.
Session: Integrating C/C++ and LabVIEW on NI Linux Real-Time Embedded Hardware
Summary by: Antionio Alexander, Senior Integration Architect | CLA, CLED at Erdos Miller
At a very high level, this session provided methods of integrating second- and third-party C/C++ source code into the LabVIEW architecture. Some of the methods described were:
- LabVIEW RT & FPGA
- LabVIEW RT for I/O, C/C++, LabVIEW FPGA
- C/C++ on RT, LabVIEW FPGA
As you may be aware, you can integrate C/C++ code into LabVIEW by using the call library function where inputs/outputs and functions can be used. The session provided pros and cons to each different type of integration into the LabVIEW architecture and suggested that the easiest solution was to use LabVIEW as the glue because it abstracts the complexity of real-time programming (and parallel processing). When having the C/C++ code run alongside LabVIEW, you lose this benefit.
Session: High-Efficiency Wireless - Under the Hood of 802.11ax
Summary by: Antionio Alexander, Senior Integration Architect | CLA, CLED at Erdos Miller
This session wasn’t LabVIEW-focused and instead provided an introduction to a new wireless standard that doesn't quite seek to increase the speeds of wireless communication, but to increase the throughput of wireless communication while in an environment with many clients.
It was incredibly interesting and we’re looking forward to seeing where the technology goes. On a sidenote, some preliminary testing was done with NI’s Vector Signal Transceiver (VST).