Jump to content

Structure XNodes


Recommended Posts

I've a vision of new certainly interesting LabVIEW functionality I'd like to write an implementation. The best implementation of this new functionality would require a smartly functioning custom structure similar to timed sequence in a sense that there needs to be multiple consequetive diagram parts in the new structure with XNode style inputs and outputs in each of them. However unlike timed sequence, the functionality of this new diagram would not resemble sequence at all.

Now the question is that I need all the possible ideas that you guys may have how this could be implemented. I'm somewhat familiar with simple XNodes that can act as smart subVIs with scriptable content, terminals and visual appearance. However I've no idea how could I implement a structure that could contain multiple segments of code inside it, scriptable inputs and outputs at each segment. In addition I'd need to be able to control if/when the segments are actually executed.

Sounds like a challenge. That makes it an interesting task... ;)

Cheers,

Tomi

Link to comment
QUOTE(Tomi Maila @ Oct 22 2007, 02:43 PM)
I've a vision of new certainly interesting LabVIEW functionality I'd like to write an implementation. The best implementation of this new functionality would require a smartly functioning custom structure similar to timed sequence in a sense that there needs to be multiple consequetive diagram parts in the new structure with XNode style inputs and outputs in each of them. However unlike timed sequence, the functionality of this new diagram would not resemble sequence at all.Now the question is that I need all the possible ideas that you guys may have how this could be implemented. I'm somewhat familiar with simple XNodes that can act as smart subVIs with scriptable content, terminals and visual appearance. However I've no idea how could I implement a structure that could contain multiple segments of code inside it, scriptable inputs and outputs at each segment. In addition I'd need to be able to control if/when the segments are actually executed.Sounds like a challenge. That makes it an interesting task... ;) Cheers,Tomi
you can yous a simple template vi...the template vi contains a labview custom custom code..and you can use it in new xnode with paste and replace...method..
Link to comment

QUOTE(Tomi Maila @ Oct 22 2007, 02:43 PM)

I've a vision of new certainly interesting LabVIEW functionality I'd like to write an implementation. The best implementation of this new functionality would require a smartly functioning custom structure similar to timed sequence in a sense that there needs to be multiple consequetive diagram parts in the new structure with XNode style inputs and outputs in each of them. However unlike timed sequence, the functionality of this new diagram would not resemble sequence at all.

Now the question is that I need all the possible ideas that you guys may have how this could be implemented. I'm somewhat familiar with simple XNodes that can act as smart subVIs with scriptable content, terminals and visual appearance. However I've no idea how could I implement a structure that could contain multiple segments of code inside it, scriptable inputs and outputs at each segment. In addition I'd need to be able to control if/when the segments are actually executed.

Sounds like a challenge. That makes it an interesting task... ;)

Cheers,

Tomi

Apart from the already mentioned templates I don't think there is any way to have an Xnode work as a structure. They can be resizing nodes but that is about it.

And if I was you I would try to patent it, before you publish it. Otherwise NI will do it :ninja:

Rolf Kalbermatter

Link to comment

QUOTE(PJM_labview @ Oct 24 2007, 11:07 AM)

Well this have to be possible with the existing XNode stuff since I am pretty sure the timed loop (or timed sequence) is an XNode.

Figuring out how to do what you describe though, is probably not going to be easy.

PJM

Which VI/Xnode file would you suggest to look at as starting point for that?

Rolf Kalbermatter

Link to comment

QUOTE(PJM_labview @ Oct 24 2007, 03:41 PM)

As per the wiki page: http://wiki.lavag.org/XNodes' title='LabVIEW Wiki article on XNodes' alt='Wiki article on XNodes' style="border-bottom: 1px dotted #3366BB; color: #3366BB; cursor:pointer; text-decoration:none;" class="wiki">XNodes, this is where the timed loop XNode code is located (vi.lib\Platform\TimedLoop\XDataNode\XDataNode.xnode). There is a lot of stuff in that folder (password protected of course).

The XDataNode is the "ear" that sticks off the side of the Timed Loop. The Timed Loop itself is a native LabVIEW structure. I'm fairly certain that there currently exists no way to create a G-based structure.

-D

Link to comment

QUOTE(PJM_labview @ Oct 24 2007, 07:07 PM)

Well this have to be possible with the existing XNode stuff since I am pretty sure the timed loop (or timed sequence) is an XNode.

Timed sequence and timed loop both consits of separate parts. To the left of loop or sequence there is a XDataNode.xnode called Configuration Node. This XNode simply collects inputs and writes then to an indicator called Timing. In addition the Configuration Node makes two external calls two two different shared libraries (DLLs). Nothing else occurs at runtime within Configuration Node.

The Timing indicator of Configuration Node is connected to a hidden node at top left of timed loop inner structure called Timed Loop Left DCO. At the top right corner of the timed loop structure there is another hidden node called Timed Loop Right DCO. The Timed Loop Right DCO is connected to the Output Node (see below). The nature of these two DCOs is not known to me. Anyone with more information? My guess is that these are build-in nodes that take care of synchronization.

The The timed loop and timed sequence themselves are not XNodes. These two structures are most propably internal structures that are implemented outside LabVIEW scripting. Actually it may be that the DCOs take care of synchronization and the timed structures don't really differ much from their asynchronous counterparts.

Inside the timed loop there are two additional instances of XDataNode called Left Data Node and Right Data Node. These are the nodes you can wire timing information from and to. Both these two XDataNodes only read from a control or write information to an indicator called Timing. These two instances don't seem to be connected anywhere, although they have a Timing structure control and indicator on their front panels.

One more instance of XDataNode is on the right of the loop, which is called Output Node. This is connected to the Timed Loop Right DCO as stated above. All these three XDataNodes only read from a control or write information to an indicator called Timing. These Timing controls and indicators of XDataNodes are accessed by LabVIEW somehow.

To conclude timed structures consist of multiple instances of same XNode that initializes the external timing system and passes data to and from the timing system. However the actual syncrhonization of the loop is done outside LabVIEW written code. There is a external method that

Link to comment

QUOTE(Darren @ Oct 24 2007, 02:04 PM)

The XDataNode is the "ear" that sticks off the side of the Timed Loop. The Timed Loop itself is a native LabVIEW structure. I'm fairly certain that there currently exists no way to create a G-based structure.

-D

Ah, that's too bad :(

Well may be combining the use of VI inlining + XNode + XData Node something might be possible.

Have the code in a subVI, have the XNode display an image of the code instead of the SubVI icon, then attached ear(s) to control execution (if possible/needed). When the user want to edit the XNode code, inline the subVI/Xnode...

This are stream of consciousness ideas... might not lead to anything.

PJM

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.