I/O Trace is extremely useful when debugging system-level text-based applications. Error handling for systems involving multiple drivers + software packages (RF toolkits, for example) is very difficult. After recognizing there was an error, we still have to determine which device threw the error and then query the appropriate driver/toolkit with the correct handle to determine what the error was. NI I/O Trace is a great way to quickly determine which device threw an error and at which function call. Unfortunately, the error reporting returned by I/OTrace is pretty limited. For example, consider the I/O Trace shown below of an application synchronizing two waveform generators. A property is not configured correctly for one of the generators. I/O Trace clearly indicates there is an error, however the exact cause of the error is difficult to discern from the message:
The actual error message is: “The Sample Rate property can not be configured if OSP Enabled is VI_TRUE. “. It would be great if I/O trace could provide the entire error description. Compare this to the LabVIEW error handler:
For security reasons, many customers using Volume License Manager to administer licenses to client machines do not authorize users to download and install anything from the web. Therefore, if a critical patch is released, the client machines are unable to download this unless it is distributed by the administrator. It would be useful for the VLM administrator to be able to configure the Update Service such that all Users can run the Update Service but the service has been configured to point to an internal network share rather than an internet location outside the firewall. This way, the administrator could make critical updates and patches available for the client machines and the clients can be notified and install them.
If the License Manager is used to deactivate software, it will leave the prior serial key in the registry. On subsequent activations, the Activation Wizard will automatically populate the serial number field. I assume the same kind of thing will happen with .lic/.lc licenses.
I can see a valid use case for this, but in my scenario, I need to remove development licenses from productions and disallow users to reactivate the software without getting permission (the serial key) from me. Since these keys can be found in the registry, I can write a script to do this; however, it seems like a feature that License Manager should include.
PS: I know, I used the wrong idea label. We need more label flexibility to cover other smaller NI software!
Versioning is often a fairly important matter when it comes to long/large projects. When a new FPGA bitfile is generated in LabVIEW, there's a possibility to change its version (in the build specification). As a result, a parse of the .lvbitx file as text file can be used to decypher the aforementioned version (it's following the <BuildSpecVersion> tag).
Though, there's no simple way (aside of making a Custom Device or modifying the accepted tags in the xsd file)) to get this information in Veristand after importing a new FPGA personality. The version may be important, but more information about the bitfile might need to be made public in this window :
In fact, there are a bunch of information that are readable in VeriStand about the model imported (name, version...). Once more, the FPGA needs the same feature ;-)
Provide the ability to filter log entries by device descriptor, similar to the “View Only this Process” and “View only this Thread” options. The new feature could be implemented with another option in the pop-up menu: “View only this Device”.
Or better yet, a way to selectively pick which of several devices to view. For instance, if 5 devices were present in the log (UD0 - UD4), then I could select to only view UD1 and UD3.
I believe that we should create and API for NI I/O trace so that customers with automated production lines can automate a report logging response to a failure In the case where a production line experiences a UUT failure, these customers could programmatically rerun the specific test that failed last, open I/O trace, start recording, test communication with a device, stop recording, and log the results when a failure is experienced. This could even be used with G or CVI code module, not just TestStand. That way if say the VI experiences a particular error after running subVI "testme", the API could be usted to start recording, re-run "testme", stop recording, and to generate a report. I understand that certain users only use IO trace occasionally, so an API would not be necessary for them, however, with customers who may have to trouble shoot numerous UUTs off of a production line, this could be a great help.
Provide an option to show more characters in the IO section (in quotes) of the Description field. Why not use the column separator as a way to expand the viewable characters, instead of just showing more white space?
Please change the NI uninstaller program in Windows to be resizable. You have a tiny list box to list all the MANY little applications that NI installs. It's so small, though, that I have to constantly scroll to read the names. Vertical scrolling only would be tolerable. It's the horizontal scrolling, too, that is most annoying.
Many times, I find myself wanting to compare different I/O traces side-by-side, but I can only have one instance of I/O Trace in memory and hense can only view one capture at a time. Would it be possible to view two different captures within one instance of I/O Trace? I believe a lot of people would appreciate either a split screen option or the ability to open another instance of the I/O Trace application in memory.
Posted this in Data Acquisition Ideas as well, but it seems like it would be implemented with something like MAX, so...
When dealing with various remotely deployed cRIO hardware configurations, it may be impossible to keep a sample configuration of every type of system we ever sell. Unfortunately, if upgrades or revisions are made to the base code in our system, remotely deploying to our customers becomes impossible unless we have their exact configuration on-hand for the programmers to compile. Remote connection to the hardware for this type of operation is also not typically possible.
To be able to simulate or emulate a full cRIO system (processor & hardware modules), then compile the RT code for deployment on that system as if it is physically connected to our development system would be ideal. This would allow images to be created, which can be sent to customers for local deployment at their facility. Dramatic decrease in "hardware library" requirements on the development end, reduction in "on-site upgrade" service trip costs to the customers. Plus, easier for OEMs like me to justify the move away from PLC types of hardware and towards cRIO, once you take away some of the potentially nightmarish continued support and update issues involved with basing systems on cRIO platforms.
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.
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.
I recently handled a service request (SR# 1698819) in which a customer was confused why TestStand was not listed in License Manager (LM) when his admin had generated a disconnected license. For him, all that was showing up in his LM was the following screen shot:
I explained that the Developer Suite with Industrial Monitoring and Automated Test (Disconnected License) includes a disconnected license for TestStand.
The product suggestion I'm making involves being able to expand disconnected suites by clicking a plus button to the left of the suite for example to view all of the software that's available to the client. This will avoid future confusion on the customer's end and reduce support call volume.
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.
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).