passage of clusters to a Subvi table

I have an array of clusters (with different types of controls) I want to go to a Subvi. I can do this easily by creating a control of the original array of clusters and using them as an input in the Subvi. However, if I add or remove a part of the cluster, the Subvi breakage. I have to recreate the Subvi (Ref in the attachment table) entrance of the original array of clusters. Is there a way to prevent this? I know he'll give me errors if I delete an element that uses the Subvi (for example: table Ref or channel) but it would be great if he did not do it as long as I added new controls or deleted controls that are not used in the Subvi. I just intend on adding controls more later but do not want to change each single Subvi that uses the array of clusters.

Ok... You will need Flash Player

Try to follow this...

1. create a typedef of the cluster and save it as a .ctl.

2. open a new VI.

3. create a table control with the element as the cluster of typedef.

4. in the palette controls, access refnum palette and place a refnum Contol on the front panel.

5 right-click on the refnum control and select "Show Control.

6. drag and drop the table control in the refnum.

7 right-click on the refnum control and select 'display the icon '.

8. use this refnum in your subVIs.

Tags: NI Software

Similar Questions

  • Digital control do not light the Subvi table lines

    Hello people of the forum NOR!

    I have a small question, I think you could help me:

    I tried to find a way that would allow my program read data, acquired from a millimeter and use a table - with coefficients - multiply the data obtained.

    When it was written directly on my program, it worked fine, but when I created a sub VI to 'clean up', he ceased to alternate values and it uses the fixed value of the Sub VI.

    The sub VI has a connector to the CNC.

    This program is the 'read the table under vi' attached to this message and the other, is the program I use to get my data.

    Thank you before useful assistance.

    Concerning

    Leandro

    Hello Leandro, Dennis

    I don't think I got the problem right so I can only guess:

    VI Sub is placed outside the Structure of sequence and therefore only runs once at the beginning of the VI.

    As Dennismentioned, since the "Table" does not have default values assigned it cant work now.

    It would be better if you post an another Set of screws: (Bevore, adding the Sub VI and after)

    Concerning

    Moritz M.

  • Exception Index clustered to the rule

    Through my research, the ideal cluster index must be a column narrow and unique.  We are currently on SQL Server 2012 and have a configuration database for merge replication.   I am trying to add a new table, StoreOPenDocuments, to our database.  I'm not sure what should be the clustered index.

    Table StoreOpenDocuments

    StoreOpenDocumentsID defined as UniqueIdentifier

    CustomerID defined as UniqueIdentifier

    InvoiceNumber

    GrossAmount

    .

    Table MemberShipList

    MemberShipListID UniqueIdentifier

    CustomerID UniqueIdentifier

    StoreName

    StoreAddressLine1

    .

    It would be logical to do the StoreOpendocuments.CustomerID the clustered index, even if it is not unique and is done on a UniqueIdentifier column?

    Majority of our select statements will have where CustomerID = XXX

    Or I would have the StoreOpenDocumetnsID be the clustered index, at least it's unique.

    Thanks in advance for your time,

    Tsharp89

    Hello

    Your question is beyond the scope of this community.

    Please repost your question in the SQL Server TechNet Forums.

    https://social.technet.Microsoft.com/forums/SQLServer/en-us/home?category=SQLServer

    See you soon.

  • How to change cluster-elements used in the subvi´s automatically?

    Hello

    I have an array of Clusters and many SubVIs using this Cluster. If I change the Cluster (Te thorugh adding a new value INT), I need to go in all of my SubVIs and also make the same changes here. There must be an easier way to do it, but I wasn't able to find it. I tried thorugh refernece, but it did not work :-(    Also, I wasn't able to find a solution here in this forum.

    Can anyone help pls?

    Serdj,

    I don't know if this is your problem, but have you tried type that defines the cluster?

    Look here http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/creating_type_defs/

    Kind regards

    aCe

  • Build the name of guard of the table of the last element, but not the others. Workaround solution?

    Hello

    Sorry if this has been posted before, I did the search first, but can't find anything.

    Problem is that I have two configurations which are identical and must be ordered by a single vi. Given that they are the same, they are configured with the same sets of parameters so I decided to create a cluster of these and then build an array of clusters. In this way I need to use only a thread and if I need a given parameter I can get it easily from here (or so I thought) and also because I need to see if anything changes I can compare a thread instead of each of the parameters.

    The gui has the list of parameters, then in the block diagram I group them appropiately, using "Bundle name" and then each bundle in a table by using "build the table. Problem is when I have the index in the array for the first place of the configuration and usage to unbundle the parameters I need, using "ungroup by name" (although if I use "Unbundle" the same thing happens) and lo and behol, the output names come from the configuration of the second, not the first.

    Here's the curious thing, though, even if the names are all wrong, that the values are correct. I could live with that, but it's more boring it will be another very difficult user to understand the schema more this is just a proof of principle to test with two, eventually there will be eight or more and who's going to get really confusing.

    Is there a way to get around this? Even if it is to change the names after unbundling.

    Check the attached vi to see what I mean.

    I think you forget an important point on the tables.  The only thing that may be different between each element of a table is its value.  The elements in the array must all share the same properties.  This would therefore include the names of the different elements that make up the cluster that is a table element.

    It seems that the last group that builds in the table is the one that defines the names of the items that are in the element of the cluster.  You must give all elements of the array with the same name within the cluster.  Or use a cluster of clusters rather than a table of cluster to create your data structure.

  • If no line in the table then

    Hello

    Is there a way I can create an if statement during the passage of a value in a table, there are NO_DATA_FOUND? Instead of coming up with an exception, I want a default output values as:
         SELECT t.testcol
         FROM bb_blocktest t;
         IF NO_DATA_FOUND THEN
         DBMS_OUTPUT.PUT_LINE('BrewBean - Department/Product Report '||FORMAT_DATE(global_date));
         ELSE
         DBMS_OUTPUT.PUT_LINE(t.testcol||' - Department/Product Report '||FORMAT_DATE(global_date));

    Hello

    No, the procedure continues normally the exception is it managed in this block.

    Kind regards

  • Remove the log from external Table file?

    Hello

    I don't want the log file to create each time I use an external table.

    Is is possible?

    You can specify one or more of the following options:

    NOBADFILE NODISCARDFILE NOLOGFILE
    

    In the passage of ACCESS SETTINGS of your table definition.

    I hope this helps!

  • Software in the loop on the controls

    Okay - the really poor thread title it is true that it is difficult to encapsulate the problem in these few words.

    I have a big old complicated control front - bays of clusters that themselves include tables, etc. When the user clicks a control, I want to take a decision in the software how to answer and then update the control accordingly. I can do this with events but it is messy - controls blink before the software gets a chance to be updated, so for example, if the user clicks on an empty space of painting, the table will expand to a fraction of a second before I resize it to the old size.

    Is there a way to get around this?

    You can always keep track of the previous values in a shift register/feedback node to find out what the modified values.  Or you can use the mouse coordinates to determine what elements of array, the mouse is on.  There are some examples on how to do it on the site of NOR.  Here is one of them, but I think that somewhere there is a clean version.

  • Extract the matrix element

    I am trying to make the detection of peaks on a waveform. I use the waveform peak detection VI for that. One of the outputs of this VI is a picture of the 'locations' of each peak.

    The table of locations is displayed on the front panel, and it displays each item. I want to be able to extract a specific element of the array, however, say the third element (value = 226). I tried to do by using the table of index function, but I think that my understanding of this feature was incorrect. It seems that this can only isolate an ultrasensitive table 1 d array of?

    I'm sure that the answer is pretty simple, but I'm scratching my head trying to find. Thanks in advance.

    Your contribution is an array of waveforms, so you will get a table of the peaks for each waveform. You check out the first elements, which is a cluster that contains a table of the peaks for the first waveform. (Given that LabVIEW can not have arrays of arrays, you will get an array of clusters, each containing a table 1 d).

    If you have only a waveform in the input array, you must use table index before the detection of peaks and feed only a waveform to get a simple output of table 1 d.

    If you want to analyze an array of waveforms, simply dig a little deeper to the output you get. Array index to get the result of one of the waveforms (that is what you are currently doing!), and then ungroup to get the table of the results of this waveform, then the array index to access the first Ridge.

  • questions about XY graph

    Hi, I think that a lot of people have already asked this question, but I couldn't find a solution to my problems below.

    1. I would like to draw multiple axes on the same x-axis (time) using XY charts. The reason I use the XY graphs is that I have given (amplitude and timestamp) in a table, so it would make sense to directly draw the berries as it is, rather than using a loop for draw 1 item at a time.
    2. I like to stack several axes just as maps of waveform to XY charts, don't know if it's possible to do?

    Did anyone tried something like this before?

    LV_Enthu wrote:

    Ben wrote:

    One of my favorites

    An array of clusters of berries of clusters.

    Ben

    This seems very confused, can you please share a photo of these vi?

    No, but I'll ry to explain. From the end of the expression and working to the left.

    Incubators - a cluster with two values, an X and a Y. The cluster is a point chart.

    Tables of business incubators - the table is one of the plots on the chart.

    Clusters of... - LV don't let you do paintings of paintings (which would be a 2d table) so each piece wraps in a cluster.

    An array of clusters of berries--each table is one of your parcels.

    Ben

  • Cluster reset default

    Hello

    I want to make a duplicate of a cluster and then write to it. These clusters are in a table that I have accumulated throughout my program.  I take the first element and then write in it before you add at the end of the table, but I want to set all of the default variables before starting to write. To do this I use call nodes, but for some reason, it won't work, and the values are not indented by default. What I have to use a node to invoke for each variable in the cluster or is there a way to do it all at once?

    I added the VI but also a photo in case this practice too.

    Thank you

    Stephen

    You have a reference to the indicator entitled "set of data information.  This indicator is sitting right in the lower right corner.  Nothing goes in.  Do not go to something else.  You initialize just a front panel indicator which never changes.  You say "it has been made from the cluster that come out of the index table".  I don't know exactly what you mean that.  But if it's just a copy from a different part of your code, you just made a new independent indicator has nothing to do with where it came from.

    If you want to put a new element at the end of your table where certain elements are default values and some are updated, just wire a constant with default values at the top of the boot by node Name and use the controls as you do to update these values that you want to have as default.  Right now, you take the index 0, regardless of the values that they are for the moment and update the 5 named items in the cluster.

  • Pass by reference

    Hi all

    I'm developing an application for the tests used in automobiles. I just had a tot that is possible to pass the array by reference. I know that the method of passing by reference by getting the reference to the table and pass the reference to the Subvi. To do this I need to create a display board and reference for the same should be passed to the Sub - VI. But this is nothing but pass the data to the Subvi by value. The only difference is that the table indicator will not be created in primary vi rather a control panel will be in Subvi.

    Is it possible to directly wire data without creating a control wire Subvi and Subvi table, use as a ref table and retrieve the data. You mean, son of data must be connect to the Subvi terminal, but terminal in sub - VI should give the Ref for that data.

    All ideas are welcome.

    Thank you

    Yogesh

    Maybe you are looking for a reference value of data? It can be a 2D array, for example.

  • References to cluster in the structures of the event?

    Hello

    I'm building a front panel with, say, a bunch of buttons/indicators in both groups. Inside a while loop, I had a structure of the event with two cases, one for each cluster, waiting for a change in the value of each cluster. I know which button has been activated by comparing OldVal, NewVal.

    Now, I want to generalize a Subvi comparison since I will soon add loads of button clusters. The Subvi I have managed to get to now me returns a string containing the name of the control that has changed its value.

    However my Subvi accepts only one type of clusters only and is not generalizable. I understand that this cannot even be done directly and I have to use control references to move inside my Subvi. But I can't create references of control for the two OldVal and NewVal clusters, only for the control on the front panel.

    So, how to create a Subvi, which returns me a string containing the name of the control with a different value between two identical groups of any type within a structure of the event?

    My LV version is 7.0 and I can't open most attachments on this forum, so I would appreciate your screenshot solutions.

    Here, you can code like this so that you will come to know what button was pressed.

  • Table of indicators clusters

    Hello world

    In my program, I have an array of clusters with controls and an array of clusters with indicators.  I created nodes of property for each table that updates the number of columns.  Each column represents a channel that is monitored on a DMM scanning.    My program works as I want to, with the exception of the battery of indicators.

    I have a VI sub which checks the value measured by the DMM and determines if the device measured by the channel complied or not.  In a cluster of indicators, I have three indicators: one for the measured current, one for the time elapsed and a boolean that indicates if the device has reached a limit.  The problem is that on the screen, I don't see the values entered in any of these indicators?  I'm newish to the use of tables of clusters and which do not.  Can someone please help me to see what I'm missing?

    I have attached my Subvi (LabVIEW 2015).  I know that nothing is connected to the elapsed time indicator.  I'll go to that in a bit.

    Thank you.

    What indicators are not see all values on? The Output channel indicator shows correctly it seems. Output display will always be no element in the table because you start at zero and then use the Replace table VI subset to add items. This will not work because if your table has a size zero, there is no element to replace. You can use an array to initialize (initially to match the size of the array strings) or use a different method of the edition of the scoreboard.

    Edit: I just noticed you do not use a very useful tool with loops: automatic indexation. This is something short of those. You can get rid of your shift registers and table manipulate nodes.

  • Table of cluster of a Subvi through mainVI again under VI

    Hi guys

    I posted some questions about my big project and this is a new. It's tables of clusters and how to remove values from it. I searched the forum on 'arrays of clusters' and got some ideas, but not enough to solve my specific problem.

    A little explanation:

    First I got a Subvi, which creates three random values, do a few checks to value and returns a Boolean indication.

    The array of clusters is then sent to my mainVI. From there I would get out of each cluster table. It would be a total of 10 clusters.

    I use ungroup by name for access to the three and four Boolean values. My first problem is that I'm doing Ruby Goldberg. Yes! I have 10 ungroup by name and each of those who have three values and four Boolean values:

    For this, I know that there should be an easier way. Probably a loop for. And now comes the grand finale: for each value and boolean, I created a local variable. Variables is 70 in total. These variables are sent to 10 cases where to send values to a pop up VI so that the user can see the result:

    The pop-up window shows the values of 9 different variables. I won't have the clustosaurus in my final program, but I'm trying to learn more about the tables with clusters, etc.. Values will come from an acquisition of data and I'll do it in the MainVI, but for the test now (without DAQ) I've used.

    My PC is quite simple:

    Press START of the user.

    Values form my random numbers.vi are placed in different variables in my main.vi.

    User can press on 10 different buttons to see the values, verification and the Boolean flag for each group of data.

    I've heard of typedef, but I'm having some trouble to know what to use when I start programming. If you guys say 'use dypedef' I'll look into that a bit more. I don't think my variables overwriting eachother then in this case, it works, but I would like to get a clue of what to use, when I did paintings and groups between VI and how to extract data without using a code to Ruby Goldberg to the subsequent use of Labview. If you want to post in the thread of Goldberg Roby I can reach my VI together later

    Concerning the same

    Use of typedef...

    Right-click on cluster control in your 'generation' vi. Select ' Advanced-> customize.

    A new window will appear, in the toolbar you can select 'Typedef' instead of 'Control '.

    Now save your new control (typedef), close the command window, LabVIEW will ask you if you want to replace the control. Select Yes.

    Go to your table indicator, remove the cluster inside and replace it with the control that you just saved.

    In your popup VI remove all entries and place the control, now that you have a lot less terminals/cables.

    In your "call popup VI", you can index the table and conect that to the pop up VI.

    Who are the first steps to take.

    Tone

Maybe you are looking for