LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Diagnosing channel error "branch not connected"

Solved!
Go to solution

 

VI A is my main routine, and it continually writes to two channels, carrying frequently updated status from an instrument to other parts of my program. They are Tag type channels, written only by the main routine, read in many places.

 

A calls C, passing the channels, where they function without difficulty.
A calls B, passing the channels. They flow into an event structure, and one of the event cases in B calls C, passing the channels directly as inputs. From a subroutine of C (a subroutine which is used pervasively all over my program) I get this peculiar error message,


"This VI halted execution when attempting to read from or write to a channel wire. The channel includes a branch not connected to a channel endpoint… The top level VI was stopped at sub VI "))Channel.vi" on the block diagram of "Tag-t'Response Cluster.ctl'.lvlib:EndpointRead.vi"

 

I'm having a very hard time figuring out how to diagnose this thing. I look at the channel wires and they seem to flow straight and cleanly through B into the call to C. (And two other event cases) How might one track this error down?  The error message gives me no opportunity that I can find, to set a breakpoint, so that I could really pin down the point of failure. 

 

0 Kudos
Message 1 of 6
(3,269 Views)

I've been using Channel Wires since before they were released "officially" in LabVIEW 2016 -- they are one of my favorite features of LabVIEW.  While I'd really like to help you, I cannot clearly visualize the Channel Wires in your VI (which you have failed to post), so cannot easily tell you why they are not working for you.

 

Please respond by attaching your VI (or, if you have several VIs involved, compress the folder containing your Project and attach the resulting .ZIP file).  I should be able to have a comment for you shortly after I see your code.

 

Bob (I really need better glasses!) Schor

0 Kudos
Message 2 of 6
(3,236 Views)

Thanks, Bob. The VI's mentioned have over 200 dependencies, and comprise a great deal of my client's intellectual property, so I can't post it all. I tried to skin it down to a nugget, and the problem went away! I have a feeling it's some of the event cases I deleted. So I'm going to poke at that a bit.

Is it of any use to you to send you three VI's that show the structure of things, WITHOUT their dependencies (unrunnable of course)?

0 Kudos
Message 3 of 6
(3,183 Views)

Any information is better than no information.  A throrough verbal description of what you want to do (without worrying about how to do it) would also be very helpful.

 

Bob Schor

0 Kudos
Message 4 of 6
(3,163 Views)
Solution
Accepted by topic author Joymaker

Found it.  It was a case of a HORRIBLY non-descriptive error message.

 

The real problem:  Calibration.vi call node does not have the channels connected. Solution: connect the two channel input connectors (and the Queue) to the ones entering at the left of the Event structure:

Sorry channel error cause.png

 

The very unclear message, which caused me to dismember the CALLING VI searching by elimination for a faulty channel connection.  Can't it tell "some branch" from "the input connector to this VI"?

Sorry Channel error message.png 

The place it left me, stopped, which has NO diagnostic value WHATSOEVER!  If only it would leave me in a "Breakpointed" state so I could at least look up the call stack!!

Sorry Channel location display.png

Message 5 of 6
(3,142 Views)

Congratulations on your Persistance and Sleuthing ability.  I agree that a Call Chain to find where the Channel Error originated in our code would be very helpful ...

 

Bob Schor

0 Kudos
Message 6 of 6
(3,118 Views)