After running a compilation, the Functional Safety Editor produces several files, including the actual bin file for uploading to the 935x module, plus a compilation report and other compilation results. The FSE manual recommends reviewing these output files for correctness.
Problem is there's no quick way to open these files for review. So I think it'd be useful to provide a button to open File Explorer to the folder containing the files produced by the compilation.
LabVIEW has a nice feature allowing an arrow to be drawn from a comment and attached to a block diagram element. This makes commenting specific parts of code much more precise. The Functional Safety Editor lacks this feature (and is inefficient to comment in general). When adding verbose comments to the diagram, it can be unclear which comment belongs to which state or transition.
The proposed idea is to add the same comment/arrow functionality from LabVIEW to the FSE, so comments can be attached to a transition, state, compound state, etc.
Comments can be added to the diagram in the Functional Safety Editor, but only when dragged from the palette. It's second nature in LabVIEW to simply double-click a blank area of the block diagram and begin typing to add a comment, so the lack of this feature in the FSE is really jarring.
This idea is to enable double-clicking an empty area of the diagram to automatically insert a comment, without the need to drag it in from the palette.
The Functional Safety Editor lacks a pan tool for navigating the diagram view. The only option is to use the scrollbars + mousewheel.
This proposal is to add a pan tool, activated by a keyboard+mouse shortcut. This could be Ctrl+Shift+Click (like LabVIEW) or Space+Click (like NXG). This would make navigating the diagrams of larger safety programs much quicker.
LabVIEW provides access to a list of recently opened Projects and Files, which is handy for quickly resuming where you left off. The Functional Safety Editor lacks this feature. Combined with the default file dialog issue, it makes reopening user programs a time consuming exercise.
The idea is to add a Recent User Programs menu item to the File menu, listing the last 10 or so user programs (just like LabVIEW).
(Labelled this as System Configuration API, but the FSE is its own product)
Currently the Functional Safety Editor file dialog always defaults to the path %userprofile%\Documents\LabVIEW Projects\Functional Safety Programs when opening or saving user programs. This is regardless of where the user program was opened from, or where the program was last saved to. This is unlike LabVIEW, where it will always remember the last used directory and use that as the starting path for file saving/loading.
The default file dialog path for the FSE can at least be changed in %localappdata%\National Instruments\Functional Safety State Machine Editor 6.0\Preferences.xml (under the key NationalInstruments.Shell.ApplicationFeatureSetDefaultDialogDirectory) to a more sensible default path (the root of your preferred version control system). Even so, it is still tedious needing to change folder paths to a given project for every save or load operation.
A better UX would be to remember the last used file path, and use that as the starting path for any file open or save dialogs. Much less clicking and navigating required.
(Labelled this as System Configuration API, but the FSE is its own product)
Currently the Find Systems VI in the system configuration toolkit is great for searching NI hardware on the network to connect to. However for large networks it would be convenient to search specific subnets and IP ranges.
IDEA Summary: Please make a optional input terminal for the Find Systems VI that can search a specific subnet or range of IP addresses.
Hi, a few suggestions related to software deployment.
1) Separate out the Volume License Installer from the Volume License Manager. These should be two separate programs. Having the VLI separate allows other admins in other departments to create VL installer files for their own area without having to have an agreement file for the volume license server (which would be running on another machine and one which the other admins may not have access to).
2) Have the NI License Manager client require elevated (i.e. admin) privileges to change the settings. This will prevent unauthorised users from changing the network license server which affects all users of the system. This is necessary in a classroom environment.
3) Have as an option whether things like the Package Manager/Registration wizard/Update service etc get installed.
NOTE: My role is only IT sysadmin support at my university. I'm not familiar with NI's individual products. I help run the servers supporting the NI-VLM and have previously helped package LabVIEW for automated deployment.
I know the NI-VLM tracks usage of the individual "paid" software products like LabVIEW/Multisim that are part of software site licenses. I'm trying to determine if the NI-VLM can tell me if a user has used *any* part the NI solution on a client computer--even if it is a "free" product included with it such DAQmx, MAX, ELVISmx Instrument Launcher, etc. I'm trying to determine NI software usage as a whole to gauge whether or not the usage is enough to justify installing this large software suite into specific locations on our campus, to stop installing it into lesser or non-used locations, move the installations elsewhere, etc.
For a reason I don't know, NI Softmotion team remove the function "write position setpoint" to all 951x axis. I'm using four (4) 9514 axis right now that all need to use this function at sometime in my code.
This function is really useful when design a motion tracking system and also for PID tuning to check step response.
I can't upgrade to LabVIEW 2018 for this reason without non-desired work-around.
Please work on reenabling this fonction on all 951x axis.
as my volume license manager is not able to handle more than ~850 registered computers, I need the creation date or register date of a computer to run a proper inventory every month (no usage AND present also last month -> deletion of computer).
I need this function urgently to have a stable service and license allocation.
Right now through SystemLink when you go to the server to approve a new system, you get a listing with the Minion IDs of all the systems waiting for approval. The problem is that the minion ID is made up of the computer type, serial number and MAC address. As a production line manager person, I don't know the hardware serial numbers of computers, or MAC addresses of systems. Yes they are great unique identifiers, but it's kinda like having a conversation about people by only using their social security numbers (instead of calling them by Jane, John, Marry or Harry).
What it comes down to is I've got a list of systems that I don't know what they are, and to be able to make a reasonable decision about the security of my process I need to do a large amount of research to decide whether it is an appropriate system. I wish the list included the system HostName too. With that I could decide quicker and easier if it was a valid system to approve.
Systemlink seems unaware of software changes deployed to a Managed System outside of the SystemLink Systems Manager. If I install a software package using Systems Manager to an RT client, then install something else on the same client directly from LabView, Systems Manager will continue to show the original package as the Installed Software. Ideally the SystemLink client on the RT target should recognize the difference and report to Systems Manager that an unknown package is installed. Additionally, Systems Manager should have a Reinstall option on its installed software tab. The current procedure is to uninstall the currently installed version, then install it from the Available software tab.
Many folks have huge trouble with building extra packages for the cRIOs (that are either missing or outdated), not to mention reproducible deployment and configuration management.
In industrial environments, we need a very high degree of customizability and reproducability, which the current nilrt distro just cannot provide. Setting up such an environment from scratch is a huge work for users, which usually aren't Linux embedded expert.
Therefore I'd suggest an fully automatized deployment of development environments, which are also easily customizable for the user. Major keypoints are:
a) development environment setup:
* container-based solution that can put together an environment automatically, using well-proven standard technology (eg. docker, ansible, ...)
* executable documentation: use declarative approaches, that are easy to understand and allow automatic documentation (eg. for verification / validation)
* use a recent, well-maintained standard distro (inside the container), and use off-the-shelf standard tools where possible
* fully tracable source control via git
* easily customizable: the user can fork off his own configuration from the appropriate upstream release, customize to his needs and later rebase to newer upstream releases if wanted
* automatic setup of package mirrors, binary repositories, product specific local deployment and HIL environments, etc.
b) target build environment:
* highly reproducable - even after very long time (eg. also allows automatic source code mirrors, etc)
* executable documentation - the configuration can be easily understood and used for generating documentation
* based on a Linux embedded experts community
* supports building for several (including customer-specific) target platforms
* supports easy configuration / customization of installed packages, as well as features selection and tuning of individual packages
* supports easily adding own software
* supports maintaining customized system configuration with image building
* fully tracable source control via git
--> the natural choice is using PTXDist (fast, reliable, reproducable, excellent expert community)
I'd estimate about 6 man-month (for a lone developer) for the initial stable release of the core system, plus another 6 mm for additional tasks like user documentation, examples, target specific configurations, etc.
Costs: about 200k $ (including extra buffer)
Equals sales price of about 25..30 avg. cRIO units. (RIO break even likely at about 50 units).
Write clean IIO drivers for the NI DAQ cards and bringt them to mainline.
* full Linux-support via standard APIs out of the box (without extra sw installations)
* very high quality by community driven maintenance
* directly supporting for standard applications by standard APIs, w/o any hw-specific modifications
* easy integration in / customization for complex scenarios
* increased sales volume by opening a completely new market (Linux/FOSS world)
* avg. 4..8 man-weeks per device type
* usually less than 1kLOC per device
For example, the - currently completely unsupported NI-600x - can be easily integrated into IIO as well as GPIO and PWM subsystems (driver can provide several interfaces in parallel, so users can pick the appropriate one for their applications).
NI could open up a new market - the Linux/FOSS world - which is currently completely unavailable to them right no, due to lack of usable drivers.
The current situation w/ homebrewn installers is really ugly - see tons of forum posts.
We have decent package management technologies like APT, which industry-grade proven for over two decades, that handles all the usual aspects of software deployment - downloads, installations, dependency management, fully automatic upgrades, inventory, clean removal, etc, etc. This also includes post-installation steps like database updates, automatically building OOT kernel modules, etc. Such technology has also been ported to esoteric and very operator-unfriendly platforms like Windows.
The key point here is the Distribution: software has to be compiled and packaged for a particular distribution and target architecture, so everything (including ABIs) really fit together and the software is neatly integrated into the ecosystem.
There are two major package manager stacks: dpkg/apt and rpm/yum, each used for dozens of different distros/platforms. Once the build process is set up (est. just several man-days initially), dozens of distros can be easily supported w/ neglectable effort. With an CI, the whole build/packaging/deployment process can easily run completely automatically.
Once packages are available that way, operators just have to add the vendor's package repository once to their system and then everything - including updates - can run automatically. Operators also can easily mirror repos, eg. for offline deployment, additional QA+approval, etc.
Since 20+ years there is no need for homebrewn installers whatsoever. They're just an extreme waste of resources - on both vendor and user side.
Properly packaging directly to certain distros and using only the native package managers for deployment would make the tons of operating/deployment problems (as seen here in the forum) go away - they're basically but problems w/ the distro-incompatible homebewn installers.
I frequently switch between developing at my desk, and debugging in the lab. After I switch work areas, I sometimes find that LabVIEW is still open on the other machine (usually just the annoying splash screen for LabVIEW projects). It would be nice if the NI License Manager allowed a force-check-in of remote Network Licenses so I could reclaim my seat without walking back to close an application.
We have VLA Named-User licenses hosted from our NI VLM server. If there are no Network License seats available, LabVIEW should notify the user. Instead, it opens the Activation Wizard and starts prompting for serial numbers like a standard non-VLA install. It's not intuitive, especially to new LabVIEW users, or new members of a VLA.