Disabled property node hangs loop

I've got a parser loop, operating on streamed data from a CRIO via UDP.  The loop operates at about 90Hz.  In response to the user opening a file, the code will use a property node to enable (or disable and gray) a couple of boolean front-panel objects.  When these property nodes execute, I see the CPU usage (in Windows task manager) go to close to 100% and coincidentally, the parser loop hangs.  Other loops within the same VI continue to run.  CPU usage stays at 100% until I force a VI abort.
With a small test-VI, I've noted that these property nodes require roughly 10ms to execute.  This seems quite sluggish, but nonetheless, my thoughts are that my code, running at 90Hz, would be able to tolerate a single slip of the loop execution time, particularly because the UDP data is queued.
Any thoughts regarding this property node execution time or suggestions on how to improve the code?  Thanks in advance.

Mark, thank you for offering to look at a stripped-down version of the code.  I just couldn't spare the time required to simplify our complex code.  However, I've been working on this problem in the past couple of weeks since I originally posted the question, and have made some progress toward a solution.  Although I still do not have a conclusive explanation for the Labview's behavior, I thought I'd follow up with a list of what appears to have made improvements to the code.  I'll concede that these suggestions are not definitive, but the problems are not repeatable and without any transparency into Labview's internal behavior, my analysis of the problems and my attempts to find a fix are admittedly speculative in nature.  Software development shouldn't be magic, but damn it seems like Labview requires we dance around a black candle.  Frustrating.  OK, exiting rant mode, here is a list of what NOT to do if you want Labview to be more stable:
--  Do not use frames around your front panel objects.  Our main panel has approximately 100 front-panel indicators.  In an attempt to make the interface more intuitive, in a recent code revision we grouped the objects using frames.  The effect was a sluggish UI and a processor loading that went to close to 85%.  I'm aware from posts on this forum that overlapping indicators forces Labview to update all when any is updated.  This is an understandable coding contraint.  OK, fine, we weren't overlapping any idicators.  But for pete's sake, why should the same constraint apply to a purely decorative object like a frame?  This strikes me as a fundamental philosophical flaw in LV's coding.  Group N objects with a nice frame -- update the objects N-squared times.  If this is the result of using a frame, I would have preferred that NI not even offer the option.  Bad choice on the part of the Labview coders and bad choice on our part for assuming zero frame impact on performance.
-- Do not use property nodes.  We occasionally gray-out front panel objects when appropriate for the state of the software.  This appeared to be contributing to Labview's instability.  I built a diagnostic routine that measures execution time for the "gray-out and disable" property node.  Generally around 8ms, but occasionally as high as 16ms.  Good grief.  I've got a code loop running at 90Hz.  A 16ms hit isn't easy to tolerate or frankly to understand.  Particularly when slow execution is the BEST of the consequences -- the worst is that the property node seemed on occasion to precipitate a hung loop.
-- Do not use Labview's built-in queue structure.  Our code was originally using queues to hand off packets of data from a UDP-listener loop to a packet-parser.  The UDP-listener blocks on UDP reception, shoves the packets into the queue.  The packet parser blocks on data available in the queue and subsequently writes the data to file.  NI would have you believe, and I did believe for a while, that this is an elegant producer/consumer approach to this problem.  When our problem would occur, the UDP-listener continued to put data into the queue, but the packet parser would never retrieve it.  Just went off into nowhere, consumed and forgotten by the Great Labview Scheduler in the Sky.  The loop would hang, wouldn't respond to the stop button, would require a forced-abort.  Subsequently, if we simply restarted the code, we couldn't be assured that the packets retrieved from the queue would be in chronological order.  Seemed to be just randomly retrieved.  Clearly the failures had corrupted some of the Labview internal data structures that govern the queue operation.  We couldn't assure proper behavior unless we shut down and restarted Labview each time the error occurred.  The solution was to abandon code elegance in favor of sequential operation -- get rid of the queue, listen for the UDP packet then parse it immediately.  No queue handoff.  No further parser lock-ups.
I'm not sure what other bombs might be lurking in our code.  Our listener and parser code hasn't lately hung, but the problem is starting to move on to other loops.  They'll run for hours and then just stop.  Dead.  Frozen.  In the most recent cases, even the abort button won't shut them down.  We have to use Windows Task Manager to kill them.  I'll admit to harboring some deepening skepticism for any of the more clever and powerful "features" that NI has added to LV.  From my perspective, these more powerful features cannot come free of cost -- they must impose some unavoidable computational burden on LV itself, a burden that LV seems unable to handle, with unpleasant consequences.  Must we impose a moratorium on Timed Loops?  Event structures?  To what level of simplicity must I drive our code to ensure stability?
Thanks, everyone, for tolerating my frustration, and for your comments, if you've got any guidance you can offer.
-dave sprinkle

Similar Messages

  • Possible Issue with help for "disable property node"

    Hi, In Labview version 9.0 (32-bit) there seems to be a conflict between help info for the Enum constant  as applied to the disable property node . If I right click on a control variable and select create-> property node -> disable. If I then right click on disable -> help for disable, the help lists the following interger assignment 0 - Disable, 1- Disable and Greyed, 2 Enable. If however, I right click on the generated Enum constant and select properties -> Edit Items, the listing order is as follows; 0- Enable, 1- Disable, 2- Disable and Greyed. The latter assignment is how the Enum constant actually works. It appears that the help information may be incorrect.
    Regards,
    Pat    
    Solved!
    Go to Solution.

    Hi,
    I compared it with 8.2.
    In 8.2 creating a constant, indicator or control by right clicking on the "disabled" property node gave an object of type U8, which operates in accordance with the "help for disabled", ie
    0=Enable
    1=Disable
    2=Disable/grey
    In 9.0/2009 right clicking and creating on the property node gives an Enum (of datatype U8) with names/values in agreement with 8.2, and operation as in 8.2, BUT the "help for disabled" message says
    0=Disable
    1=Disable/grey
    2=Enable
    Thus I would agree that this is a documentation error, and the LabVIEW is correct.
    N.I. Can we have a CAR please?
    P.S. I do think that it is a good idea to have made the disabled property an enum, whilst maintaining compatability with previous code. I always wondered why it wasn't that way in earlier revisions.

  • How to change value of constant for "Disabled" Property Node?

    Hello all,
    I'm attaching a vi example of what I'm wanting to do. It is happening during the event for "Left Selectorrogrammed 1: Value change.
    Basically I've created a property node for a LED boolean control. After it is clicked, I am wanting to disable it so the user cannot change the value (I have a reset all button for use on that).
    I've created the property node for this control for Disabled.  When I am in the block diagram, I change it to write mode.
    I've rt clicked on it, and said "create constant", which it does.  However, the constant comes up every time as "Enabled". I've tried clicking all over this constant, and looking through all the properties, but I cannot figure out how to toggle through the values or set the value of this constant from "Enabled" to "Disabled".
    I see where you can edit the items of this constant...but I'm guessing there is some way to toggle this constant to the value you wish....any suggestions?
    Thanks in advance,
    cayenne
    Solved!
    Go to Solution.
    Attachments:
    laptop_test_public.vi ‏17 KB

    To change a constant value your cursor needs to be in the "finger" mode.
    You can select this by holding down shift and right-clicking on the diagram - then select the finger.
    Another way is to set Automatic Tool selection:
    Tools >> Options >> Environment >> Lock automatic tool selection
    With this option, LabVIEW will choose the tools for you.
    Play with it a bit to see how it works.
    steve
    Help the forum when you get help. Click the "Solution?" icon on the reply that answers your
    question. Give "Kudos" to replies that help.

  • How to increment array that contains two clusters whose visibility is controlled by a visible property node and selected by a radio button.

    I am trying to use a property node: visible in order to enable or disable one of two clusters. These clusters are in a larger cluster and this larger cluster is in an array. The two clusters are controlled by a radio button (one labeled transistor and the other diode). When diode is selected, the corresponding diode parameters cluster should be visible and when transistor is selected, the corresponding transistor parameters cluster should be visible. In the mean time, the cluster of the device that is not selected should not be visible. There are at least 45 elements in the array (but not more than 45). Data is entered into each cluster (diode or transistor data) for each element in the array via the increment/decrement. The problem is when you select the first radio button (transistor) and enter data, when you increment the array for a new device selection, since a visible property node was used on the cluster, a loop is created where a new cluster is trying to be shown, but the old cluster is also trying to be shown (because it is the one referenced by the property node. How do I get rid of this loop and still be able to increment the array and keep my data intact for future use? Attached is the vi
    Attachments:
    ChooseScan.vi ‏17 KB

    You could try something like this.  However, if you know how to use an xcontrol, that would be a better way to implement the above functionality so that these UI characteristics are not a part of your main VI.  The problem with the above VI is that you're looping every 100 ms just to update your UI.
    Also, try using the "disabled" property node, instead of the "visible" one.  That way, the user will still see the options he has but they will be grayed out.
    Message Edited by Sudhir Gopinath on 06-25-2007 04:45 PM
    S G
    Certified LabVIEW Architect, Certified TestStand Developer, Certified Professional Instructor
    Attachments:
    ChooseScan_1.vi ‏19 KB

  • Labview 2014 Excel Active X Property Nodes disabled - Why?

    Hello,
    I am using Labview 2014 and want to open, write to and close Excel by the use of Active X.
    I am confronted with the problem, that, if connecting (Active X-) property nodes to the references (e.g. "Excel_Application"), right-clicking on the context menue doesn´t let me choose any properties, the item is disabled (one can read in German "Keine Eigenschaften" (no properties)).
    How can I resolve this? What am I doing wrong?
    Thank you!

    I am having the same problem.  When I left click to choose/change the property I do not get a list - instead I get the greyed No Properties popup - see screenshot.
    If I drag and drop an existing property node from within an example subVI it connects to the reference and keeps showing the current property but I cannot change to a different one.
    I am using LV 2012, Win7, Office 2013.
    When I try with LV 2012, Win7, Office 2010, it works properly.  So my guess is that is has to do with the version of office.  But I would like to know the reason why as well.
    Attachments:
    NoProperties.png ‏67 KB

  • Is it possible to put property node inside for loop?

    I have created three separate property nodes (plot color) for my 3 XY graphs.
    Is it possible to have one property node, say plot_color_i and put this inside the for loop where i runs from 1 to N,
    where plot_color_1 would update XY Graph 1, plot_color_2 would update XY Graph 2, etc.?
    See the attached VI.
    Solved!
    Go to Solution.
    Attachments:
    XY Plot Example.vi ‏18 KB

    Yes.  Create an array of references of the XY graphs and have that auto-index into the property node in the For Loop
    Attachments:
    XYPlotExampleMOD.vi ‏18 KB

  • Use of multiple property nodes for GUI manipulation

    I have a LabVIEW 6.0.2 application where I'm using 14 different property nodes in the main loop. All of these have to do with GUI - hiding buttons when "X" isn't pressed, disabling and greying out controls if <0, popping one button on top of another depending on the mode of operation, etc, etc. While this works fine, the program is getting slow. I've noticed that using the old 2-D buttons works faster - things update faster and redraw quicker. However, more to the point, I once read that if you have to use a lot of Property Nodes like this, that you should bundle them into a sub-vi, thus replacing what would be Property Nodes with references. How does that make it faster?
    Richard

    Not sure if bundling them into a sub-vi by itself would make it faster. The nodes in the sub-vi would still have to access the user interface thread, and that's where the slow down comes from.
    When I use any property node, I put it in a case structure and only write to it when needed. You just need to be able to detect when the value being written is changed from last loop iteration. It's useless to constantly rewrite the same value (doesn't have to be the "value" property) to the node.
    Bundle them into a sub-vi and put the change detector, case structure and nodes in the sub-vi, this should help speed things up a bit. Assuming of course that the nodes are the slowdown. It may also help clean up the diagram a bit.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • NI 845x USB: Error -301713 occurred at Property Node (arg 2) in General I2C Read.vi

    Hello,
    I am currently working  with digital accelerometer LIS35DE from ST Microelectronics. I want to start with tests of this device. For that purpose I used NI 845x USB to connect with accelerometer via I2C. Unfortunately, when I made electrical connections and set up parameters of communication and run the program (I found it in examples) the following error occured:
    Error -301713 occurred at Property Node (arg 2) in General I2C Read.vi
    Possible reason(s):
    NI-845x:  An input parameter, or combination of parameters, is invalid. An example of this error may be setting an invalid baud rate or enabling I2C ACK polling while using 10-bit addressing.
    The code can be found in attachements. I couldn't find any extended description of this problem. What could be a problem: incorrect device address, register address, configuration parameters?
    Any help is appreciated!
    Best regards,
    Michael
    Attachments:
    General I2C Read.vi ‏24 KB

    Hi MicMac89!
    First of all could you please post which version of LabView are you using?
    Could you please tell me which version of 845X hw are you using? (8451 or 8452)
    I opened the example you attached. As you wrote the error occurs at the second argument of the property node. (I guess this is the first property node where the error occurs.)
    This argument of the property node enables the onboard pull-up resistors. But not all NI-845x hardware support pull-up resistors. (Because of this is important to know which hw version are you using.)
    Did you try the example with disabling the pull-up resistors?
    I suggest you to go through the Manual of this product, (if you did this not yet) This could make it clear where and when to use what kind of pull-up resistors.
    For example: If you are using 8452, you must enable pull-up resistors, for Vref ≤ 1.8 V for the FPGA to properly detect a low-to-high transition
    Manual: http://www.ni.com/pdf/manuals/371746d.pdf
    HW specification: http://www.ni.com/pdf/manuals/290598a.pdf
    Please post if my suggestions helped. Of course if you have any questions, don't hesitate to post them.
    Best regards, 
    Balazs Nagy

  • How can I make a "property node" for a VI?

    Hello!
    If I add a boolean button on the FP then I am able to make a property node for that button in the Block Diagram. But how can I make a property node for a VI? I have several VI:s an that together is one program. What I need to do is to verify what kind of VI some of my VI:s is. I need to verify if it is .exe or .vi-file, and if it is .exe then I want to disable run, abort, run continuously bottons otherwise not. I have hard that this is possible to do programmaticaly but I can´t figure out how. I am aware that I could do that manually in the File->vi properties->customize->windows appearance but theese choises makes it last forever.
    I want to be able to stop and run and everything if it is a .vi file, but if it is .exe-file then all those buttons should be disabled.
    Anyone have an example on this?
    In an other message at this Forum I read "You can use the `Front Panel Window. Allow Runtime PopUp`" property to disable run-time shortcuts menues programmaticaly, but still I dont know how to create this property node.
    /Amir

    You really shouldn't open a new thread. If you don't understand something, ask and we will explain it.
    Like I said in the other thread, you can check if you are running in LV or an EXE by using the Application>>Kind property. To get it, place a property node (from the Application Control palette) on the diagram, click it and find the property.
    To set the properties for the VI, place another property node, right click it and select Select Class>>VI Server>>VI. You should have the properties you want under Front Panel Window.
    To learn more about LabVIEW, I suggest you try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide and the LabVIEW user manual (Help>>Search the LabVIEW Bookshelf). I believe chapter 17 of the user manual explains about programmatic control of VIs.
    Try to take over the world!

  • Need to input a value in a Property Node that doesn't have "Change All to Read" property.

    Hi,
    I am developing an remote panel application that have 3 vi's.
    1 - Login vi => If username and password is OK, then the login vi add the Main vi to access list, and the user can access it.
    2 - Main vi => Is the main code
    3 - Supervisory Panel => Have a property node (RP.Conn.To.Clients), that searches (with a for loop, number of interations = number of online users), and compares the online users to a condition: if the user is controlling the Main.vi, if yes, I display the user information(IP, Status, Port) on the Supervisory Panel.
    My issue is, I need to display also the username(inputed in Login.vi), togheter with IP, Status, Port, that are provided by Rp.Conn.To.Clients.
    So i need to know if there's a way to attach the username string with the information provided by RP.Conn.To.Clients, in the same index, because my application will be accessed by many people, and I need to attach several usernames with the information that the property node provides, in the same index.
    Any help will be appreciated, im stucked on this for almost a week!

    Not sure if this is what you meant, but you can change the read/write for each property on a property node individually.
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • Error -70038 occurred at Property Node in nimc.fb.power.power.coordinate.vi

    HI,
    I created a Real Time application with debugging enabled that only makes a straight line move and then finds center (using SoftMotion function blocks). When I run the VI from the project everything works fine. When I create the executable and run the application as a start up some times it moves beyond the limit switches and I have to abort the application, it never really works as smooth as it does when ran directly from the project.
    I simplified the application. When connecting to the executable ( Operate>>Debug Application or Shared Library...)
    I saw that sometimes I was getting an error that said the find center function could not be executed because the driver was not enabled. This was never needed when running from the project. I added the Power SoftMotion block and I enabled the driver before getting into the while loop that finds center. Again the VI ran without errors when ran directly from the project, but when I connected to the executable I found the following error coming out of the Power SoftMotion block (the name of my VI is: "Testing SEND to ZERO by itself.vi"):  
    "Error -70038 occurred at Property Node in nimc.fb.power.power.coordinate.vi --> Testing SEND to ZERO by itself.vi
    Possible reason(s):
    Motion: An unexpected error has occurred internal to the driver. Please contact National Instruments with the name of the function or VI that returned this error" 
    I am using cRIO 9022 as a controller and two 9512s.
    LabVIEW 2009
    NI-RIO 3.2.1 
    SoftMotion
    Any idea why the VI works fine when ran directly from the project but does not work as expected when ran as a stand alone application directly on the cRIO?
    Thanks,
    Fab 
    Certified LabVIEW Architect * Certified Professional Instructor * LabVIEW Champion

    Marc,
    When I simplified my program, I forgot to put the Power Function block inside a loop and make sure I was sending a pulse for the execute input. I am guessing that could have caused the weird error.
    If I see it again, I will let you know.
    Thanks,
    Fab 
    Certified LabVIEW Architect * Certified Professional Instructor * LabVIEW Champion

  • Can i create a property node of a property node?

    hello - i made a small vi that im attaching to visiualize what i am wanting to do. i have two modes in my vi - one with automation on and the other off... in manual control mode.
    in automation mode...i am reading a sensor (hall effect) and when the boolean is true, then the property node of a stop motor event is automatically executed.
    if i want to be in manual mode, i don't want that property node to execute whenever the boolean reads true. i only want to be able to press the stop button manually.
    so i tried creating a property node of a property node, and chose the "disabled" property wiring a 1 constant into it which should be "disabled".
    anyway - i don't know if this is even possible cause i am getting an error. can i make this work or how can i turn automation off and therefore turning the property node to the stop motor off too?
    thanks!
    Attachments:
    AUTOMATION CONTROL TESTING.vi ‏85 KB

    Don't overcomplicate things!
    You don't need a property node of a property node, that would make little sense. Simply place the property node inside a case structure so it only executes under certain conditions.
    LabVIEW Champion . Do more with less code and in less time .

  • Help comparing the value of a button using the Property Node (I get a variant)

    Dear Sirs:
    (I'm using LabView 6. I guess the solution is different for 6.1)
    Currently I have created an array of Boolean RefNums (which point to many, many buttons). When I need to know when any (and which) of the buttons was pressed I just compare every element on the array with the constant TRUE. It fact, as the array is built from RefNums, I should compare the VALUE from the Property Node.
    The problem here is that the Property Node for this type of Boolean is a LV Variant, and I need to compare this with a TRUE/FALSE value.
    I tried to convert the TRUE constant to a LV variant and visc. But nothing works... I always get that none of the buttons was pressed.
    Here it co
    mes the question: "How can I compare the value of a Property Node for a Boolean (Button) with a TRUE (or False) constant?"
    BTW, maybe I should explain why I'm using RefNums instead of the direct values: As my project requires tons of buttons, I would preffer using RefNums to refer to them. (I.E. I could use a single VI that takes the RefNum and formats the button to hide it for certain users).
    I have enclosed a VI that contains what I've achieved until now, which is nothing
    I appreciate your time and help.
    Best regards,
    JAVIER VIDAL
    Attachments:
    Other_Main_Menu.vi ‏103 KB

    Javier,
    There is another problem in your code: the booleans are not polled by the main loop so they will remain false until the user presses them again. This renders the boolean latch action useless.
    What you can do is to change the mechanical action of the booleans to non-latch. When you detect a "true" in the polling loop, set the boolean to false again. One added benefit is that once all boolean are non-latch, the value property won't be a variant but a boolean so conversion is no longer needed.
    LabVIEW, C'est LabVIEW

  • Property nodes to items in cluster are FRAGILE

    This issue has bugged me for a long time .  I just got bit again and I wonder if anyone else has a workaround.
    I just checked and LV 2009 has it too.
    Create a custom control of a cluster with three elements named A, B, C (numeric controls, booleans, whatever, it doesn't matter).
    Make it a TYPE DEF (non-strict) and save it.
    Put an instance of it on a new VI panel.
    Create a PROPERTY NODE for item B and set it to DISABLED property.
    Wire a constant to that property node.
    Now, if you run the VI, it sets the DISABLED property of item B to the value of the constant.  Fine.
    Now go to the TYPEDEF, and add another item, called A2 to the cluster.
    Re-arrange the cluster order so that it's A, A2, B, C, and save the type def.
    Look at your diagram.  The property node is no longer linked to B, it's now linked to A2.
    Apparently, LV uses the cluster order internally to keep track of the links.  So now I'm linked to A2, not B.
    If A2 was a different type of object from B, then you MIGHT get lucky and the diagram breaks. At least then, you can see the fact that it changed.
    But almost everything has a DISABLED and a VISIBLE property, if that's the one you're using, then you won't notice that it was changed behind your back.
    I have taken to adding a free label with the name of the expected control (in parentheses) next to the property node, along with the true label.  So if I see a discrepancy between the true label and the free label, I can recognize such a case.
    But that's only if I remember that this crap happens.
    Anybody got any better ideas?  How can I prevent, or at least recognize, such an unwanted change?
    Bonus question: the same thing happens with events, for the same reason (I suppose).  If I tied an event to item B, that event switches to item A2 behind my back.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

    CoastalMaineBird wrote:
    This issue has bugged me for a long time .  I just got bit again and I wonder if anyone else has a workaround.
    I just checked and LV 2009 has it too.
    Create a custom control of a cluster with three elements named A, B, C (numeric controls, booleans, whatever, it doesn't matter).
    Make it a TYPE DEF (non-strict) and save it.
    Put an instance of it on a new VI panel.
    Create a PROPERTY NODE for item B and set it to DISABLED property.
    Wire a constant to that property node.
    Now, if you run the VI, it sets the DISABLED property of item B to the value of the constant.  Fine.
    Now go to the TYPEDEF, and add another item, called A2 to the cluster.
    Re-arrange the cluster order so that it's A, A2, B, C, and save the type def.
    Look at your diagram.  The property node is no longer linked to B, it's now linked to A2.
    Apparently, LV uses the cluster order internally to keep track of the links.  So now I'm linked to A2, not B.
    If A2 was a different type of object from B, then you MIGHT get lucky and the diagram breaks. At least then, you can see the fact that it changed.
    But almost everything has a DISABLED and a VISIBLE property, if that's the one you're using, then you won't notice that it was changed behind your back.
    I have taken to adding a free label with the name of the expected control (in parentheses) next to the property node, along with the true label.  So if I see a discrepancy between the true label and the free label, I can recognize such a case.
    But that's only if I remember that this crap happens.
    Anybody got any better ideas?  How can I prevent, or at least recognize, such an unwanted change?
    Bonus question: the same thing happens with events, for the same reason (I suppose).  If I tied an event to item B, that event switches to item A2 behind my back.
    For the disabled property inside of cluster whos definition hcanges... we are screuued.
    For the events your idea to include the text name, is the same technique that Jim Kring shared with us when he discovered the same thing can happen with dynamic event references. I belive that was CAR'd.
    No solutions so no bonus points.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Tab Page visible property node not working correctly

    I am making a vi in which we have a tab control with 6 pages and to move from one page to another there is ring control with option for every page on page 1( page 1 is the default page), at a time only one page is visible so we can move only through that ring control present on page 1 and to come back to page 1 from all other pages there is button "go back" on all other 5 pages, everything is working fine for 5 pages but when after going on page 6 and then if i press go back button instead of going back to page 1 program hangs and one more thing that i noticed is after stopping the program the page 6 becomes the default page( which otherwise is page1) i dont know why this is happening.
    I am attaching the snippet of the code which executes when i press go back button.
    one more thing that i am not getting here is when i checked the program through step execution, the last property node( page6 ) that is executing first after that it goes to first property node and then it goes in sequence, this also i want to how is this happening.
    Solved!
    Go to Solution.
    Attachments:
    tab page property node.png ‏43 KB

    I think you would be better off just to use your array and turn on/off the necessary tabs instead of explicity setting each property every iteration.
    Attached is one example.
    "There is a God shaped vacuum in the heart of every man which cannot be filled by any created thing, but only by God, the Creator, made known through Jesus." - Blaise Pascal
    Attachments:
    set visible tabs.png ‏56 KB

Maybe you are looking for