Jump to content

PXI deployment problem


CraigGraham

Recommended Posts

I've a problem with a PXI chassis running LabviewRT at a client's site. Some months ago, we got the chassis from Labview, installed necessary DLLs for a couple of non NI cards and put our app on there; it then worked fine until the client reformatted the disk and reinstalled Labview. Precisely why this happened is unclear but doesn't seem to be related to a problem with the software. We're on 8.6.1.

I reformatted again and reinstalled myself, to rule out any oddities that might have occurred when the client did it.

We're now in the position that although as far as I can see the software and all components are installed correctly and the app will run from the IDE, which can then disconnect leaving everythiung fine until the next reboot, I cannot deploy the app as startup. When I try, in the "Deployment Progress" window I get the message "Deploying Main PXI app (failed to deploy)" just after it says "Deploying <our PXI ID>". At the end, it says "Deployment completed with errors". A file is there, but doesn't run when rebooted.

If we stick with the file that's been placed there, and attach a debugger after startup, we find that the app has loaded but that all VIs that have a dependency on any of the 3rd party DLLs are listed as being broken. These are DLLs from two different vendors for two different cards. If we place an old reference copy of the executable on there, the debugger connects, all the windows open showing the VIs *are* there but then the debugger pops up the message "Failed to connect to remote application" and everything closes again.

Since the app works fine when started from development, it seems we don't have a major problem with the installation, but that there's some difference between running from the IDE and running from startup that's now giving problems. My suspicion is it's to do with DLL deployment; the IDE needs local copies of the DLLs since they're being called via the "Call DLL function" node (or whatever it's called). It then puts these copies into the "Data" subdirectory. I suspect there's then some conflict between those copies and the ones in /ni-rt/system, which have to be there because they're running the cards so have to load when the system boots and does its hardware detection.

I tried removing the local copies, but then the app fails to build because it can't find them.

Phoned NI and have a case ongoing, but I'm not optimistic; after a long phone conversation and the engineer going off to consult, the response email is to try reinstalling again but to reboot PXI after each component install. Which we'll have to do, but I don't think it'll get us anywhere.

Does anyone know what could be going on, and how to fix it?

Anyone know of a way of telling Labview that dependencies are to be met by DLLs already installed on the target and not to try sending extra copies?

Or what the differences are between running from boot and running from the IDE, and getting the boot to be the same?

Link to comment

I don't have any experience with RT and third party DLL's but in LabVIEW 8.6 you can add a path to the actual DLL to load. What if you set there the path of the DLL allready on the target?

Is it possible to just sent over the executable and the DLL's via FTP and see if it will run without normal deployment procedures?

Ton

PS One thing you learned is to create an image of the harddrive when you sent it in the field.

Link to comment

The path's being ignored anyway- the DLLs are in a seperate folder elsewhere in the PC's filesystem, but the installer shoves them all in a support folder in the same directory as the built executable, called "data" by default.

We did try FTPing the original executables in- that's the reference executable I mentioned.

And regarding taking an image- anyone know how? This just has RT installed. NI built the PXI controller up, and gave a multiyear warranty for it which I suspect'd be voided if I was to take the hard disk out and put it into another machine to read an image off.

Link to comment

And regarding taking an image- anyone know how? This just has RT installed. NI built the PXI controller up, and gave a multiyear warranty for it which I suspect'd be voided if I was to take the hard disk out and put it into another machine to read an image off.

Use a tool like Acronis true image, burn it on a cd, connect a cd-usb drive, a usb-harddisk and start imaging.

A question, how did the customer reformat the drive with LabVIEW?

Ton

Link to comment
  • 1 month later...

And regarding taking an image- anyone know how? This just has RT installed. NI built the PXI controller up, and gave a multiyear warranty for it which I suspect'd be voided if I was to take the hard disk out and put it into another machine to read an image off.

coming in late on this, but in LabVIEW 2009 there is a VI to achieve this:

RT Create Target Disk Image VI

There is also an API on the NI website to achieve this for versions prior to 2009.

Neville.

Edited by Neville D
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.