07-10-2012 04:50 PM
I'm working on a real-time application in LabVIEW 2009, running on an RT desktop machine that contains a PCI-7813R FPGA card. My development machine is not connected to the RT machine, so when I need to install a new version I build it locally on my Windows machine, then go over to the computer that is connected to the RT target and use FTP to copy the new startup.rtexe. Usually this works fine, but occasionally when I start a new version of the application I get error -63195. When this happens, I've found that I need to connect my development machine and do a "Deploy" to get the RT application working properly. Last time this happened, I copied the deployed startup.rtexe back to my development machine, then compared it to the one that resulted from doing a build of the startup application build specification. To my surprise, they don't match! Why would "deploy" produce a different executable than "build" on the same machine?
07-10-2012 06:12 PM
07-10-2012 06:14 PM
I did a binary diff using p4merge. It's definitely not an end-of-line translation problem (the difference between binary and ascii ftp); if it were, ftp'ing the binary executable would never work. I've been able to take the version I ftp'd after deployment and copy it, using ftp, to a duplicate system with no problems.
07-10-2012 07:41 PM
hm, i wonder if there is an error in deployment that's happening but not being handled. So, the deployment completes but you are never notified of any problems. I have not run into this problem before so I'm just kind of throwing things at the wall and hoping they stick. With regards to the deploy and build not matching, you may prefer having someone from NI chime in on that so you make sure aren't chasing something that isn't really the root of the problem (this has burned me before ).
07-10-2012 07:44 PM - edited 07-10-2012 07:46 PM
The deployment is succeeding - I see the new code. However, when I try to initialize the FPGA from the executable that was built and then copied over FTP, I sometimes get error -63195, "NI-RIO: (Hex 0xFFFF0925) The handle for device communication is invalid or has been closed. Restart the application." This does not happen when I deploy the application directly from the LabVIEW project. I am hoping someone from NI will comment on the difference between "Build" and "Deploy" for an RT target, and why they do not generate bit-identical executables. This does not happen every time I build a new executable, just some of the time, and I have not done it enough to know exactly what type of change I need to make to trigger the problem.
07-10-2012 09:33 PM - edited 07-10-2012 09:34 PM
Sidetrack but somewhat related: Yeah the whole executable deployment is a real pain as-is when everything is working, let alone when there are errors. It becomes more difficult when the system is in the field and the development environment is not available and you have to update the RT exe. I know NI is making some strides to make this easier so we'll see what happens, but I'm not really satisfied yet.
I can say I have deployed RT executables using FPGA both from FTP and from the dev environment and have no run into this issue. I know it's a typical answer that you may have tried, and that probably won't help but have you considered either repairing the FPGA install or blowing away the build spec from the project and remaking it? Sorry, another grasp at a straw!