Is there a way to read what version of NI-RIO is installed on my RIO programmatically? I know I can get that information through MAX, but I want to get that information at run-time.
Solved! Go to Solution.
That is a very interesting request. I am not aware of any functionality like that. What is the end goal...or application that you need this for? How does this fit into your application? Thanks.
Hi John and thanks for your reply.
I have made an application which I know works fine on my RIO. However, the end-user of this application has many RIOs. I want to give an alert of some kind if the application is executed on a system with a NI-RIO version other than the one the application has been tested on as I can’t guarantee that the application is stable for other NI-RIO versions
I assume you are using CompactRIO and not R Series? (both use NI-RIO) I've got some ideas, but need to get some more information about what exactly your application and situation is. Does your end user have a development system? They could look at the versions there. Also, if they install the driver to the system they could use MAX to look at their remote targets. I've also got a VI that programtically get the version that is on the host from MAX. This doesn't work for the controllers though. Is there some requirement they have about not upgrading certain controllers? If so, there might not be anything you can do. If that is allowed there are a couple things that I thought of...have you evaluated getting a disk image via FTP to get your application and all of the required software, then distributing that? Additionally, there are a set of tools available to help with this. Check out the NI-RIO System Replication Tools.
I think this could potentially be a usefull feature to include, but I'm not sure about the use cases. I'd appreciate more information about why you're needing this and why this is the best option and any other thoughts. Additionally, a clear idea of the situation, application, and requirements will allow anyone reading this to make better suggestions. Thank you.
I’m talking about CompactRIO here. Our end user does not have a development system, but they do have MAX. So they do have the possibility to check and update the NI-RIO drivers. Even though they are instructed to make sure to use one specific version of NI-RIO this will probably not always happened. They use MAX to configure the system and upload the application. Actually there are multiple applications for different RIO setups and the application will be used on multiple RIOs. Currently, I check that the correct controller, backplane and modules are used. I do this to generate an error message to the engineer if they have installed the wrong application (one for a different RIO setup) or not put the RIO system together correctly.
I have experienced that there can be significant differences in the different driver versions regarding both bugs and system memory consumption and therefore I would like to check that the correct drivers are used.
Making disk image copy does sound like a good solution. I am not quite familiar with this method, but will have a look at it. As I currently understand it, we would then have to make a PC application to do this. That is something I would like to avoid as that would be an additional application that we would have to supply and support.
If you do not want to develop an application with the Replication Tools, see about using FTP with Windows Explorer. If you copy off the entire HD which is only going to be about 15MB bigger than your app...this will include all of the software. It's also an easy way to make backups of their existing configuration and software. I think that is going to be the best way around this. Let me know how it's going though and if you have any questions. I'll make sure that feature is evaluated for a future release.