LabVIEW Real-Time Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Greil

Offline Distribution for Real-Time Application

Status: New

During LabVIEW Development was a PXI Real-Time System connected (LAN) next to my Laptop and process Build/Deployment was no problem.

Now the RT has been shipped far away to customer site and i have no longer access to that network.

 

So I need an other way to distribute and

here is my IDEA #1:  (below is another IDEA #2)

 

Offline RT-Distribution LabVIEW Idea Exchange.GIF

 

FACT : Most of all customers have no knowledge about "How to find the Real-Time System and update the Application on it".

 

So the new item will built an "Offline Installer.exe" and will run on any customer PC to a full automated update job automatically.

 

Features:

 - create a detailed installation report which can be stored and send back to the developer.

 - In case of the Real-Time System isn't connected to any LAN, the customer could use the "Offline Installer.exe" to prepare an USB-Stick which has to be plugged into the Real-Time System. Then a reboot will launch the full automated application update process. (the "RT LEDs" will give feedback when the process is finished)    

 

 


 

I tried also another way but without success:

 

Step 1: Add a ZIP File into the Project Explorer : "My Zip File"

Offline RT-Distribution 1.GIF

 

Step 2 : Configure the "My Zip File" => Add "My Real-Time Application" 

Offline RT-Distribution 2 zip.GIF

 

Step 3 : Build "My Zip File"...but the Result was bad :

Offline RT-Distribution 2 Build My Zip File.GIF

 

But anyway, if the would be successful there are a lot of more steps needed:

 - sending the ZIP to the customer

 - unpack ZIP

 - find Real-Time System at customers network

 - a FTP tool is needed to update the system.

 - There is no way to stop the running Application (from a PC without NI-Software)

 

Conclusion:

The update with "ZIP" is far away from a comfortable solution. 

 


 

IDEA #2

If the Real-Time System has a running webserver (the thing which is using Silverlight),

then the application could be updated by using a webbrowser.

So, first we have to update the webserver on the Real-Time System (as difficult as updating the application)

 

Spoiler
(But who the f..k has Silverlight installed  )

 

 

11 Comments
gsussman
Active Participant

I would like to see this functionaity implemented but from a completely PC independent solution.

 

The ability to generate an upgrade to an RT controller that can be loaded onto a USB thumb drive that would allow you to plug the key in, reboot the controller and completely upgrade or update the system without the need to connect to a PC.

Optimally I would want to be able to upgrade the operating system, drivers, exe, support files, essentially everything up to and including what you would do to format and deploy a new controller.

 

I see this as a sort of loader that gets run when the controller is in safe mode (booting off of the internal ROM).

 

Install USB key with upgrade file, package, image, whatever....

Reboot the controller into safe mode.

Upgrade automatically starts, runs and installs without the need to connect a PC to the device.

 

As long as we are asking, I would request that this would also work with controllers that are locked. The upgrade package would have the appropriate unlock password built into it that would allow only authorized upgrades to be applied and would ensure that the controller remains locked during the process.

Deborah_B
Active Participant
Status changed to: In Development
 
Deborah Burke
NI Hardware and Drivers Product Manager
Certified LabVIEW Architect
Mads
Active Participant

Ideally I would like to have 3 distribution vectors supported by such installers, in prioritized order; Network, serial and USB.

The USB approach is nice, but I hope a network based vector is prioritized as it is the only solution that covers all cases. If the device is only accessible via a network (often the case for us as we put these things subsea, it might even only be accessible via a serial port! USB is a nice solution topside, but even there many customers in the offshore business have very strict rules about USB-sticks...) the USB solution is of no help, and if it is not on a network or serial link you can always connect to it temporarily from a laptop for example).

Darren
Proven Zealot
Status changed to: In Beta
 
Darren
Proven Zealot
Status changed to: In Development

This idea was moved to 'In Beta' by mistake. It is still 'In Development', and is not present in the LabVIEW 2016 beta. Sorry for the confusion.

donkdonk
Member

yes, yes, kudoos!

I've asked ni for help on exactly this situation. It took quite some time to make them realize this is not easy to do (updating a remote system at the customers site you don't have access to).

Deborah_B
Active Participant

Hi all,

 

I'd like to update this post and any followers with some additional details now that NI is moving towards package-based software delivery of our own software and enabling you to build packages as well.

 

For Idea #2, updating a target from the browser can securely be accomplished using SystemLink, where the server is setup on a machine on premise or on the technician's machine itself. It generates installation report details and maintains version management. I do understand this varies from the proposal above so far as the web server is not hosted on the target itself, which may be ok for some offline applications, but in general isn't recommended due to the potential performance hit interrupting a critical process as well as the increased attack surface.

 

Idea #1: We are still researching the purely USB update case. While generating .ipk packages for the RT target is straightforward, the expected out-of-the box functionality for securely recognizing the USB and orchestrating the update to the controller requires further definition. Please private message me to provide additional input regarding your use case. Thanks!

 

Mads-similarly to your point, I've also received one request to update over the CAN port, but to this point we have not prioritized researching CAN or Serial update mechanisms.

Deborah Burke
NI Hardware and Drivers Product Manager
Certified LabVIEW Architect
Mads
Active Participant

The systemlink solution is a very heavy and complex route. I thought I had the offline installer functionality in hand when I saw the Build Installer option in RT 2018, but not getting an executable is a bummer.

 

Even a package that could be pushed with NI MAX would be better than having to go the whole systemlink route, at least most of our service engineers have a copy of NI MAX installed (but with an executable instead our customers could run the install themselves without having to permanently install anything at all on their PCs).

i.ayestaran
Member

The problems I find to SystemLink are:

 

- I (as LabVIEW programmer) do not own the NI systems. The systems belong to the client. This means that for each client I have, I (in reality he) should buy a SystemLink server license, and a node license for each NI equipment.

We update those systems very rarelly (when a bug is found), it is not really an evolving software and we don't need to remotely monitorize the system, so the interest of having such a SystemLink server its not that big. Moreover, NI licenses are usually not cheap, so it becomes very difficult to convince the client to pay for something he will use once every two years.

 

- As far as I know, VXWorks systems are not supported.

 

- Some clients may only have one cRIO. Sometimes is simply a cRIO with a screen, not connected to a network. It is unfeasible to buy a PC just to host the SystemLink server, including the licenses. Even more, since we would need internet access, we would eventually need to install a VPN server too.

 

- I do not know whether SystemLink works under a VPN.

 

(Please tell me if I am wrong with any of these. I am here to learn Smiley clignant de l'œil 

 

Honestly, I think systemLink is great...... if you code LabVIEW for your own company and you have a considerable amount of cRIOs. Then it becomes a great monitoring tool. But this is often not the case. 

 

RAD is much more close to my needs, except that I usually don't have with myself a cRIO that is identique to the one the client has, so I can't make system images. If only I could virtualize the cRIOs.... that would be great!

James@Work
Member

I'd like to quote everything in i.ayestaran's comment and mark as AGREE.

 

In addition, it appears that when NI update RAD v16 to work with Linux targets, they broke the ability for it to work with VxWorks targets (EX. NI-9014).

 

SystemLink might be great for a Manufacturing environment, but it's not the solution for systems deployed in the field that may not have an Internet connection; only a link-local to a PC.

 

 

Tech Advisor - Automation
LabVIEW 5.0 - 2020