I currently have two systems running their own LabVIEW RT code testing two different items, these items are quite similar and use the same hardware setups.
There is now a requirement to have another system that is capable of being any one of those systems. It has the same hardware but they want it to either run system 1's real time code or system 2's realtime code.
I have the code from both real time systems but how do I swap the code over between the two? Can I simply FTP the files replacing the ones in the realtime and reboot it? Or is there a lot more to it? It's important that the code isn't rebuilt every time as the code is checksummed for conformity.
In currently using;
PXIe 8135 with PXIe 1085 chassis.
NI RT Pharlap 13.1
If you have an FTP server running on the cRIO you can change the RTEXE directly and reboot. See this KB article
It would be safer to deploy it using LabVIEW if possible.
What would be even better would be to combine your two RT applications into one and have some external trigger to specify which set of tests to run
Thanks for your quick reply.
Does seem that NI prefer redeployment, only issue is they want to retain exact software builds so if I can transfer that one file and then reboot I can do all of that via a VI in Windows and then allow them to test.
Have you done this yourself before? I'm unsure what these files are that settings need changing in? As far as I can see they are already set this way in my RT systems. So is it just the rtexe file to change then?
We regularly override only startup.rtexe and restart the RT. It works flawlessly. You can do it programmatically as well, using WebDAV.
I have managed to get images of the system using the blocks Create System Image and Set System Image which seems to be an all round good method of getting and setting the files.
However the second system I am putting on doesn't seem to run properly all the max items have red X next to them with the error 88904.
I would of thought that an image of one machine onto another realtime should behave identically but some reason they are not. They pass Md5 checksums to say they are identical but it doesn't seem to run properly or write to the network variables.
I believe it's having issues with the hardware in the system despite being completely identical from the other system.
The process you mention of deployment would this rebuild the code or just resend it? We have to maintain an MD5 checksum across the systems. Is there a transparent way to do this so the operator does not have to physically open LabVIEW to complete this activity?