LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Is there any caveats for calling 64bit VIs from 32bit LabVIEW?

Hey guys,

 

So while ago, I was just curious whether you could call 64bit VIs from 32bit LabVIEW.

So I created some VIs and indeed it seemed possible. I thought it was a great feature of LabVIEW but

I couldnt find any KBs or posts regarding this matter.

Does anyone know any caveats to this feature( like should do and shouldnt do) ?

 

I will post the VIs if anyone else is curious about this matter.

You need to have both 32bit LabVIEW and 64bit LabVIEW running.

and the VI server must be accessible using TCP/IP protocol.

I just had my 64bit LabVIEW port set to 3364 and 32bit LabVIEW port set to 3363

0 Kudos
Message 1 of 6
(2,610 Views)

The network doesn't care whether the clients are 32- or 64-bit (if it did, you might not be able to access web sites on a 32-bit operating system that were served by a 64-bit one). You're making the VI Server calls over TCP (over the network, even if it's just the loopback interface on your local computer), so no, it doesn't matter whether they're running a 32- or 64-bit version of LabVIEW. I haven't tried this, but I'm pretty sure you don't even need the two copies of LabVIEW to be running on the same operating system, so long as they're the same version number of LabVIEW.

0 Kudos
Message 2 of 6
(2,583 Views)

@nathand wrote:

The network doesn't care whether the clients are 32- or 64-bit (if it did, you might not be able to access web sites on a 32-bit operating system that were served by a 64-bit one). You're making the VI Server calls over TCP (over the network, even if it's just the loopback interface on your local computer), so no, it doesn't matter whether they're running a 32- or 64-bit version of LabVIEW. I haven't tried this, but I'm pretty sure you don't even need the two copies of LabVIEW to be running on the same operating system, so long as they're the same version number of LabVIEW.


Actually te VI server protocol works even across LabVIEW versions for most of the part. Obviously you can not call features (properties, methods, etc. in a lower version when they got only added in never versions, but other than that there are little trouble to execute properties and methods even across LabVIEW versions.

 

However you won't be able to upload a compiled VI to the remote machine and execute it there if it is not exactly the same LabVIEW version and platform if you don't have a full development system installed on the remote system. LabVIEW VIs contain compiled code that is LabVIEW version and platform specific. Only the development system can recompile the VI code to work on a different LabVIEW version and/or platform (for version differences only really upwards compatible without going explicitedly through a Save for Previous version first).

Rolf Kalbermatter
My Blog
0 Kudos
Message 3 of 6
(2,568 Views)

Just to be clear, my original question was calling 64bit LabVIEW VIs from 32bit LabVIEW VI.

When I tested it, 64bit LabVIEW had to be open. I guess VI server doesnt automatically start up LabVIEW for you.

Of course, you can programmatically start up LabVIEW but that's besides the point.

 

I just had this question because there seemed to be some questions and concerns on the forum

regarding how an applicaiton should be made since most LabVIEW toolkits and modules arent supported on 64bit LabVIEW.

 

But when I was playing around with the two versions of LabVIEW, it seemed pretty easy to call VIs from each other.

So one could always have both LabVIEWs open, and do the memory intensive operations(image analysis, RF stuff,etc) on 64bit LabVIEW and then do the rest on the 32bit LabVIEW.

 

However, I couldnt find any resources on this matter, so I thought it was a bit weird.

I'm not a computer expert but can it be that simple to pass data from a 32bit app to 64bit app?

 

0 Kudos
Message 4 of 6
(2,545 Views)

doradorachan wrote:

 

However, I couldnt find any resources on this matter, so I thought it was a bit weird.

I'm not a computer expert but can it be that simple to pass data from a 32bit app to 64bit app?

 


Simple? If you consider that the entire data has to be flattened, funneled throught he TCP/IP socket layer, and then unflattened again I wouldn't exactly call this simple. Smiley Very Happy

 

Of course everything is more or less done transparently for you, but I would be rather reluctant to try to transfer Gigabytes of data that way as it for sure will be a bit of a bottleneck to push through.Smiley Wink

 

If you can however keep the entire huge data processing in the 64 Bit version, and only need to transfer the actual control data and possibley some status information back and forth, then by all means yes it is that simple.

 

As far as the 64 Bit versions of the Toolkits are concerned, most of them are fully VI based and so can be copied from a 32 Bit installation to a 64 Bit installation. They just haven't created installers for most of the toolkits that can handle both 32 bit and 64 bit LabVIEW installations.

Rolf Kalbermatter
My Blog
Message 5 of 6
(2,539 Views)

The way I understand it, VI's themselves are "architecture-agnostic."  They aren't 64-bit.  They aren't 32-bit.  They just get compiled with whatever version of LV you have.  You should be able to switch between environments as long as any drivers you may be using have 64-bit counterparts.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 6 of 6
(2,530 Views)