LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Uploading RT image from labview (not from RAD)

Solved!
Go to solution

Hi Community,

 

I have several test stands using both a host application and an RT target. Currently the relase process for a new version of the RT target is that I use the RAD tool to deploy the RT image I previously build from LabVIEW. As we are talking about an increasing number of stations the relase process takes longer and longer as I need to use the RAD on each and every computer. Moreover if I made a mistake the reverting process gets longer and longer as well.

 

What I am wondering is if I can add a routine to the host application which uploads the selected image to the RT target without using RAD. The benefit of this would be that I only need to point to the new image file on the harddrive instead of using RAD so the release process will be a lot easier. (of course the start time of my host application will be longer, but I can live with that)

 

From THIS article it seems its OK if I simple FTP the .rtexe file to the c:\ni-rt\startup folder. Does it take care of everything? (eg adding the variables llbs to C:/ni-rt/startup/data/)

 

What is the best practice here?

thanks.

0 Kudos
Message 1 of 12
(5,115 Views)

The RAD tool is an application, built in LabVIEW, which uses the System Configuration API. Anything you can do in the RAD tool, you can do in LabVIEW using the System Configuration VIs.

 

In fact, I think you can get the source for the RAD tool to see how it operates and/or modify it to suit your needs. There is a link on the right hand side of this page to download the source files for Version 14.

 

You *can* overwrite the rt executable - but this is dependent on which flavour of LabVIEW RT (e.g. Pharlap, Linux) - you'll also need to restart the controller for it to take effect, it also won't have any impact on the software sets installed on the device - so if you upgrade your LabVIEW/drivers, they will be different to the ones installed on the RT controller. Also, if it's a 'fresh' cRIO, you'd still need to do the initial installation of the software set first.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 2 of 12
(5,109 Views)

Well we hardly do anything else on the RT targets than updating the image, so if uploading the .rtexe and restarting the controller may do the "same" for us then I think we definitely should go for it.

0 Kudos
Message 3 of 12
(5,093 Views)

If I had to deploy RT code to multiple targets, I would definitely be using the system configuration API. If nothing else, because it means I can take any cRIO chassis of the same type, regardless of what state it is in (e.g. fresh out of the box from NI or reusing it from another project) and deploy the software set and the same/correct configuration settings a the same time as my application code. I'd also use it to set up the network settings etc., which you can't do by overwriting the rtexe.

 

Overwriting the rtexe is fine if you're just doing an 'upgrade' but it's not a great solution for fresh installations. The linux RT RIOs also have FTP turned off by default - so you'd have to enable that first if you're using those.

 

Oh - it also doesn't include any of the dependencies required by the .rtexe - if you have any dlls/library files/configuration files/FPGA bitfiles that need to be included with the rtexe - you'll need to handle these separately. Probably the same applies to anything that you normally 'deploy' to the target - shared variables?


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 4 of 12
(5,078 Views)
Solution
Accepted by 1984

Thanks for confirming. Unfortunately its not an option for me to deploy the image on multiple targets as each RT controller is connected to it's host only (local subnet), so I only see one at the time. I think overwriting the rtexe will be fine for me and in some cases when its not I can go with the RAD.

 

thanks.

0 Kudos
Message 5 of 12
(5,070 Views)

@1984 wrote:

Unfortunately its not an option for me to deploy the image on multiple targets as each RT controller is connected to it's host only (local subnet), so I only see one at the time.


Yes, it is an option. It actually makes it easier if the network configuration is the same.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 6 of 12
(5,065 Views)

What I am saying is the RT controllers are only "visible" from the host PC as they are on their local subnet. So I can not upgrade all the controllers at once, I have to repeat the process on each PC one by one.

0 Kudos
Message 7 of 12
(5,050 Views)

Or, you use the System Configuration API to load the image into the RT controller from your application running on the host PC?


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 8 of 12
(5,045 Views)

Currently I use RAD on each PC when I release a new version. Its quite a lengthy an manual process. If I can upload the image automatically when the host application is started then I can simplify the release process a lot.  

0 Kudos
Message 9 of 12
(5,038 Views)

Yes, which is what the System Configuration API in LabVIEW does!! You can even see which parts of the RAD tool you need to use to re-create the functionality you need to build into your own application.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 10 of 12
(5,032 Views)