11-13-2006 08:54 AM
11-15-2006 11:20 AM
11-15-2006 03:06 PM
I am trying to have an application that will allow a user to deploy a vi to the cRIO.
Here's whats going on...
I have multiple cRIO boxes that I am monitoring and controlling via one main application. To do that I have the main application bring up which cRIO's that are actually on the network at that time, then allow the user to open a remote panel to an individual cRIO vi so the user can change/start/stop the cRIO vi. In some situations after closing that remote panel and trying to open it again, an error message appears stating that the cRIO vi is no longer in memory on the cRIO device. One way to get it in memory again is to actually deploy from the Project explorer back onto that cRIO. In development this is tolerable, yet while in actual use, the user will only have access to the main application and not the LabVIEW development environment. So one approach I had thought of was to place the vi in a Library, then use the Deploy.Library method to allow this deployment programmatically.
Any ideas on 1) how to keep that vi "in memory" on the cRIO device or 2) being able to deploy a vi to a cRIO or 3) some other way to do this?
I would ultimately want the user to be able to deploy files, reboot the cRIO, programmatically.
- Con
11-16-2006 01:14 PM
11-16-2006 05:17 PM
Thanks for getting back with a response Xaq! Let me comment and see if there are some further suggestions.
Xaq wrote:
Con-
I beleive I understand what you are trying to do now. Lets tackle each problem in order.
1) How to keep VI in memory on teh cRIO. Most likely what is happening here is that you are terminating the program on teh cRIO itself (wither by ending the main control loop or calling quit labview, etc). The VI is not being erased from the flash memory on board, just getting stopped from running. To start the Vi again, you can reset the cRIO (as long as the VI in question is your startup VI).
1) By resetting the vi, I am thinking there are two ways - one is actually hitting the "Reset" button on the box (something I dont want to do), the other is actually Rebooting my cRIO (which I am succesful at doing, however, I dont have feedback on whether or not the box is actually done rebooting. I guess I can hit the Reboot, then go into a loop that Pings the controller and either times out or gets a valid IP address. Is there another way to do this reset?
Xaq wrote:
2) Deploying a VI to teh cRIO. Currently there are only 2 ways to do this. The first, is from the project explorer like you are used to doing. The second, which can be done programmatically assuming you have the internet toolkit or through a command line interface, is to FTP the VI to the cRIO.
2) I am trying to setup the cRIO vi such that it runs at startup, then I hoped after rebooting, it would be running and be in memory on the cRIO. I will keep in mind the FTP option - thanks.
Xaq wrote:
3) Rebooting the cRIO programmatically. You can use the RT Reboot Controller VI, located in Real-Time VIs»Real-Time Utilities>>RT Reboot Controller.vi) to reboot a controller over the network (or reboot itself by using localhost).
3) I am donig this as discussed in 1 - thank you.
I was trying to provide more user feedback. I guess I'm stuck in trying to use timing and my own messages to provide user feedback.
Thanks again for your suggestions!
- Con
11-17-2006 03:01 PM
11-17-2006 05:22 PM