LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to Handle Channel Wires in a Source Distribution

I have a VI, within a source distribution, that utilizes channels and is called by reference by an executable.

 

I understand that Channel instances are created when the VI is loaded within the LabVIEW project, but what if the channel dependent VI is called at run-time (not from within a LabVIEW project)?

 

This source distribution is deployed to a target PC that does not have the development version of LabVIEW on it, only run-time engine. How do I setup the build specification to ensure that the target PC has all the channel dependencies it needs? Or is this even possible?

 

Right now the Channel instances are in the dependencies folder of the LV proj and are set to "include if referenced". I see Channel folders being added to the source distribution but the channel dependent VI is loading broken. The issue seems isolated to the Messenger.lvlib:Endpoint.vi

 

The Endpoint doesn't seem to be adapting to the correct channel type - see attached photos

 

Any help appreciated. This is keeping me from deploying much needed code to production test systems.

 

This was also posted in the Channel Wires special interest group with no response.

 

Thank you,

Chase Fearing
Test Engineer, Certified LabVIEW Architect
Download All
0 Kudos
Message 1 of 4
(2,722 Views)

Ah, yes, my favorite LabVIEW 2016 feature (which is slightly broken in LabVIEW 2017).  I've had a running argument (which I've lost, but that's OK) with the Channel Team about where to put the Channel Support Code.  I wanted it to be part of the Project, but the (probably valid) decision was made to store it in the User's LabVIEW Data folder.

 

You say you are creating a Source Distribution.  My recollection was that this was akin to copying the LabVIEW source files (i.e. those .vi, .ctl, .lvproj, etc.) files to another PC that ran LabVIEW and running it using the other LabVIEW from there.  So when you opened the Project and loaded a Channel, LabVIEW would recreate, on that other PC, the supporting Channel Wires functions.

 

have build executables of my routines and, via an Installer, been able to port them to another PC as a Binary.  As I recall, Channel Wires worked fine (because they are already part of the compiled code).

 

I've been using Channel Wires since LabVIEW 2015 (when it was a "hidden feature") and use them heavily (my latest Project probably has on the order of 100 Channel Wires working at the same time.  I can't imagine doing without them (which explains why I'm sad to have found a 2017 bug).

 

Bob "Channel" Schor

0 Kudos
Message 2 of 4
(2,695 Views)

So in my case I am using a custom developed test executive .exe. This test executive uses a plugin architecture in which the .exe calls TestStep VI's by VI reference using the file path. The TestStep VI's are contained within a source distribution (the plugin).

 

This allows me to have the same test executive exe on every production test PC, but build custom plugin's for the specific test stations depending on what tests are being performed.

 

I have been doing this for along time and have always been able to figure out how to properly include dependencies for my TestStep VI's. However, the TestStep VI that contains the channel wires are loading broken in the source distribution. It seems like they are missing a dependency that inherently makes the channels. The channels instead appear as queue's when I load the VI from the source distribution.

 

 

Chase Fearing
Test Engineer, Certified LabVIEW Architect
0 Kudos
Message 3 of 4
(2,677 Views)

Ah, plug-ins, presumably being run by VI Server.  Am I correct that an important advantage of this architecture is that memory isn't used until the plugin is loaded, and can be later reclaimed?  I stopped using VI Server with Executables a while ago in favor of using Start Asynchronous Call, and not worrying about memory usage (because everything "fit").

 

As you probably know, Channel Wires depend on a series of their own "plug-ins" located in LabVIEW Data. I'm unsure how you would bundle these as part of a Source Distribution, but maybe the Channel Wires Developers will see this question and respond.

 

Bob Schor

0 Kudos
Message 4 of 4
(2,664 Views)