From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Bundling Channel Wires

Solved!
Go to solution

Hi,

I'm trying to use channel wires to communicate between a couple of subVIs, and noticed that it's making my diagram pretty messy once I have more than two or three channel wires going between different subVIs (see screenshot for example). Is there a way to bundle a number of different channel wires (ie a tag, messenger, and stream) into a single wire in order to clean up the diagram? Something similar to clusters, but for channel wires?

channel_writer_condense.png

0 Kudos
Message 1 of 3
(2,529 Views)

I'm pretty sure the answer is No.  I use Channel Wires a lot -- I think every substantial Project I've coded since LabVIEW 2016 have used multiple Channel Wires, with one Project having (potentially) > 100 (I say "Potentially" as it was designed to "spawn" up to 24 Asynchronous Clones, each of which consisted of 4-5 parallel loops with several Channel Wires within and between them).

 

One technique to allowing multiple Channel Wires to co-exist within a single VI is to make the loops that are linked by Channel Wires have a fair amount of "white space" at the top and bottom of the loop.  [My Channel Wire "Style" does not let Channel Wires pass through the top or bottom edges of Loops -- I maintain "Right Edge is Output, Left Edge is Input" rules as I find that this adheres to the normal "metaphor" that LabVIEW uses for Data Flow, and a Channel Wire is just such a metaphor, itself.]

 

Bob Schor

0 Kudos
Message 2 of 3
(2,520 Views)
Solution
Accepted by topic author PatW

The short answer is no, you can't bundle channel wires.

 

Channel wires do not represent data themselves--that is, there is no value called "channel." A channel wire is an abstraction for passing data of a particular type among multiple places in an application. It has a "type" that represents what kind of channel it is (stream, tag, etc.), but this is different from the type of data carried by the channel. You can combine multiple data types into a single data type that is carried by a channel, but you cannot combine multiple channels into a single channel.

 

Consider that some channels have restrictions on how they can be used; for instance, the basic Stream channel wire cannot fork, because it only supports one writer and one reader. Combining different kinds of channels with different restrictions would result in a channel with combined restrictions from all of its components, which wouldn't necessarily be useful.

0 Kudos
Message 3 of 3
(2,476 Views)