The latest version of of our favorite tool, LabVIEW 2015, was released during NI Week in August. I’ve tried it out, and here are some of my first impressions.
This is not a release with loads of new features. It seems NI has concentrated on stability and productivity lately, at the expense of new functionalities and concepts. And the maybe most exciting new feature that exists is somewhat hidden, more on that later. A comprehensive list of what’s new in LabVIEW 2015 can be found here.
Let’s start with one thing that I’ve been waiting for. No, it’s not zoom. You know the way you can expand your block diagram by holding down ctrl while dragging your mouse with left mouse button (LMB) down? This functionality has been improved, it snaps to the main direction you move your mouse if you don’t move it diagonally. Previously you had to hold down shift to achieve this. No, that is not what makes me so happy either. When you expand, you now get a line indicating the size change you’re about to do. No, it’s not that either.
No, the thing that makes me smile is the possibility to do the opposite of expanding your BD. Hold down ctrl + alt, drag your mouse with LMB down and you will shrink your BD! I know, it’s not a big deal, but this is a feature that would have saved me loads of time cleaning up my BD (no, the automatic BD cleanup is not an option) in the past, and I’m looking forward to using this feature in upcoming projects. Here’s a short video:
The next thing I really like is the ability to create custom items to the short-cut menus. The shortcut menus are those that appear when you right-click on an object. You can create both edit-time and run-time custom plug-ins, useful for both your frameworks and your GUIs. I haven’t played around with this yet, but creating custom right-click functionality used to be quite cumbersome so this is a welcome improvement.
Channel Wires is a new feature that you won’t find in the release notes. They have been mentioned at CLA summits, and now they can be found in LabVIEW if you know where to look. Channel Wires are new types of wires that breaks dataflow. Yes, breaks dataflow. I guess that’s why they’re hidden. As I understand it NI sneaks this out to get the LabVIEW community’s opinion on wether it is a good feature or not. What they do is it facilitating communication between parallel loops, something that we are used to implement with queues, notifiers etc. Channel Wires are implemented in G, so there is really no big changes to the way we are used to handle LabVIEW, except visually. Now you can have a wire going from one loop to another and still have both loops running. It’s kind of hard to explain in words, so I leave you with a snippet.
To enable channels you need to run this vi:
To get the information on how to use them, and to join the discussion on them, go to the Channel Wires community. The big question for me is if this will enable those who use LabVIEW occasionally just to get small applications running in their labs to start using more advanced programming techniques, and if this will help them or just lead them into trouble as the challenges with these techniques are still there.
Finally, it is always interesting to look at the list of bugs fixed in a new version, and in there there is a fix that we have been waiting for at DVel:
372784 LabVIEW 2012 and later have added overhead to dynamic dispatch calls when compared to LabVIEW 2011
A framework we use for many of our process control systems, LabQt, relies heavily on Dynamic Dispatch at sometimes pretty deep levels. Now we can finally get the performance we had in LabVIEW 2011 back.
This is as far as I’ve come by now. There are more to dig in to, and I haven’t started looking at the RT and FPGA parts yet. If you have any comments on the stuff I haven’t tried out, or any comments on my rant, leave a comment.
By Martin Peeker