LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Error when using class wire in flat sequence

I tried a search and didn't find anything on this.  I have a VI that I was going evaluate its execution time.  So to be quick about it, I encased the code in a flat sequence box and added a second frame, place a Get Date/Time in seconds in each and found the difference.  When I did this, my program had errors.  It appears that I have to wire the class inputs and output outside of the sequence structure or an error is generated.

 

VI is reentrant although I doubt that makes a difference.

 

I get the following error:

 

Terminal: One or more of the inputs to this tunnel or shift register does not orginate at the dynamic input front panel terminal

 

Error case:

 

Terminal Error Example.png

 

 

Error is fixed

 

Terminal Error Fixed.png

 

 

Does this seem like expected behavior?

 

 

 

Randall Pursley
Message 1 of 3
(2,330 Views)

I would not say it is "expected" behavior but quite possibly it is very correct behavior  (Read as "almost certainly").

 

"Wrap-your-head-in-duct-tape" and read message 12 of this thread carefully. Dynamic terminals that are on the connector pane determine which DD vi is actually called at run time.  Unless those terminals are on the root diagram there is a chance they could be conditionally read or even in dead code (imagine the sequence frame was replaced by a case structure since all structures are treated as "structures")  this breaks "inplaceness" and if not resolved, by placeing the terminals on the root diagram, LabVIEW would need to determine at run time wether or not a buffer allocation was required.  Thats not really possible.

 

Perhaps R&D will explain it in greater detail?  But, the way to avoid this error is to pay attention to terminal that are on the con pane and alwasy keep them on the root diagram (It's more effecient code in any case).

 

Secondly, the first get date time should be moved outside the sequence and wired through frame 1 to force it to execute before any othe code in the frame. 


"Should be" isn't "Is" -Jay
Message 2 of 3
(2,325 Views)

Also read response 2 of THIS post of mine.

 

Shane.

Message 3 of 3
(2,302 Views)