Handling large number of variables

Hello all,
Please have a look at the attached vi. Its for a temperature-cycle testing device.
1. The application has 10 similar stages that run sequentially.
2. Each stage has 10 similar steps that run sequentially.
3. Each step does temperature control (heater/cooling fan) for a fixed time.
4. Each step has 6 user input parameters.
5. All 10 steps (0-9) are same in the sense that the types of input parameters are same. The values will of course, differ as per the user's wish.
6. Right at the start, Stage 1 begins, with Step 0, then move to Step 1, Step 2 and so on...
7. Subsequently, Stage 2 begins, again with its Step 0, Step 1, Step 2...
8. This happens till Stage 10 > Step 9, after which the device shuts down.
The variables involved are:
6 per step x 10 steps per stage x 10 stages = 600.
The user may or may not use all the steps or all the stages, but I need to provide them in the application.
The user will be saving these values in a file to run the same test at a later stage.
I am a novice with LV. The task of wiring 600 terminals is daunting. So is there a way I can reduce the work load? Maybe variables in each step could be 'Cluster'ed or 'Array'ed? There are so many control and functions, and being new, I haven't explored or been able to identify something that will really help simplify this.
So I need suggestions on how to go about this. Or please point me to topics to read that could help.
I am using LabView 8.5. I come from a background of programming PICs in assembly, if that matters.
Regards,
Trog.
Attachments:
TemperatureCycle.vi ‏389 KB

Definately read up on these topics before you proceed any further: Clusters, Custom Controls and Type Defs (a type of custom control) Make sure you understand those topics. There are a lot of tutorials on the NI site and the help that comes with LabVIEW is very good.
And never post a VI that is set to run when opened. That will anger people on the forums faster than anything you can think of. Just a friendly tip
Also take a look at your datatypes. You have a DBL for cool when required and heat when required. You should use a boolean for those on your front panel. If you have to actually use a DBL for that then convert the boolean on your block diagram. Same for the number of heaters control. That should be an integer, most likely an unsigned 8 bit integer.
=====================
LabVIEW 2012

Similar Messages

  • Structures - I need a large number of variables

    My program has one structure template but I need to have an array of 3 Million of these templates. When I put more than 6,000 in for my number of variables the program comes up with memory errors in different lines of the code. Below 6,000 variables everything works as I expect it should.

    I can now compile the following:
    short int resultabl[26][30][3000000]; // [row][column][height]
    int main() // main() is used for DB set up
    extern short int resultabl[26][30][3000000]; /* 0 - 2,999,999 ie 3M 2D arrays */
    int a, d, e;
    // create and then initialize data base elements all = 0
    for(a = 0; a <= 2999998; ++a) // a <= 2999999
    for (e = 0; e <= 25; ++e) /* set row elements = 0 */
    for (d = 0; d <= 29; ++d) /* set column elements = 0 */
         resultabl[e][d][a] = 0;
    for (e = 0; e <= 25; ++e) /* row elements */
    if(e <= 25)
    printf("%d," "\n", e); // TEST
    for (d = 0; d <= 29; ++d) /* column element */
    printf( "%d,", resultabl[e][d][a]); // TEST
    if (d == 29)
    printf( "\n"); // TEST
    printf( "\n \n permcalc = %ld, ", a); // TEST
    return(0);
    Build successful. Exit value 0.
    *******But the run fails unless I reduce the 3,000,000 to 1,300,000. Then the run is successful every time - Tom
    Running "/usr/bin/gnome-terminal --disable-factory --hide-menubar --title="dist/Debug/SunStudio_12.1-Solaris-x86/memorytest64-2 " -x "/opt/sunstudio12.1/netbeans/cnd2/bin/dorun.sh" -p "[Press Enter to close window]" -f "/var/tmp/nbcnd_rc4049119690132517294" dist/Debug/SunStudio_12.1-Solaris-x86/memorytest64-2 " in /export/home/tom/SunStudioProjects/memorytest64-2
    Run failed. Exit value 267.

  • Handling large number of waves in Campaign Canvas

    Hi All,
    I want to bounce off some ideas around create multi wave campaigns.
    We have few campaigns that have more than 15 waves. When we try to build these in Campaign Canvas, we are not able to accommodate all waves in the same Campaign, especially because there is some Opt and other processing between waves. For example, the total number of waves are split across 3 campaign canvas, with contacts moving from the first campaign to second and then to third.
    This is done because the campaign canvas does not allow us to keep scrolling vertically or horizontally.
    Is there a better way of handling this?
    Aditya

    Aditya,
    Your best option is to split these across multiple canvases.  I have worked with customers that use the individual campaign in Eloqua as the 'treatment' and, using a campaign hierarchy in their CRM, roll up the results. (hopefully Eloqua puts campaign hierarchies back into the application to allow for this to be done within Eloqua again)
    I have done nurture programs like this with an 'Learn/Solve', 'Compare', and 'Purchase' campaign.  Each with 5-7 emails and corresponding landing pages. 
    The canvas gets unwieldy at more than 10 emails with the corresponding wait and decision points.
    This also makes reporting a bit easier for reporting on nurture stage.
    Nathan

  • How to handle large number (7200+) identical HorizontalRule's

    I have an application where performance is becoming an issue. I have 30 VBoxes that each contain identical HorizontalRules, the number of
    HorizontalRules is unknown until render time but can easily be up to 240 per VBox. As there are 30 VBoxes this results in 7200 HorizontalRules being added to the stage. This results in large memory consumption and poor rendering time on lower specification machines. To speed this up I have tried using Sprites and graphics.draw to render the line, but I think it is the time taken to create the Object that is the problem.
    Is there any way to create one HorizontalRule and add it to the stage multiple times? I know that Flex will remove the child if it is added again with a different [x,y] coordinate so my attempts to do that failed.
    Thanks for any suggestions.

    The VBoxes are typically about 20 pixels wide and each has a line about 4 or 5 pixels apart all the way down their length. That is why there are so many of the little blighters.
    You are probably right, but I had a problem with graphics.draw in that they had to be added as rawChildren. The component is resizable and I found it impossible to move the drawn lines. I could not get a good reference to them, even if I stored each line in a seperate Array before adding it as a rawChild, and so I could not even delete them reliably. I know that the rawChildren and children/elements have things at different indexes, but I didn't manage to find a way to use that information.
    You have given me the idea that I shouldn't draw them all on the screen at once though. With the full 7,200 lines, only about 30% are on the screen, I will look into using an item renderer. Is that the correct way to do it?
    Does anyone know how to relibly access rawChildren so they can be moved? Maybe my app is just a little wierd. I will try building a test case and see if I can add and remove from the rawChild list freely in a simpler application.

  • How to handle large number of Threads !!?

    hello friends,
    i done a program that is digging all files and folders for finding given filename
    in this logic i created one thread per directory and and that thread list out all
    sub files and directory and matches the search filename string , in that if sub
    directory found than it creates new thread and forth ..
    problem is after running program , at point it is creating large thread around
    3000 threads and system goes down ,
    so what should be solution for that?
    requesting you to suggest the good scheduling of thread that give better performance of the system
    logic code is given below:
    import java.io.File;
    class DiggtheFiles implements Runnable
         private File     currentdir     = null;
         private String     search          = "";
         DiggtheFiles(File file, String search)
              this.currentdir = file;
              this.search = search;
         private File     files[]     = null;
         public void run()
              files = currentdir.listFiles();
              if (files != null && files.length > 0)
                   synchronized (this)
                        for (int i = 0; i < files.length; i++)
                             if (files.isDirectory())
                                  data.dircount++;
                                  if(files[i].getName().contains(search))data.filearry.add(files[i].getAbsolutePath());
                                  *new Thread(new DiggtheFiles(files[i],search)).start();*
                             else
                                  if(files[i].getName().contains(search))data.filearry.add(files[i].getAbsolutePath());
                                  data.filecount++;
                   Filechooserpanel.consolearea.setText("DIR:" + data.dircount
                             + " FILE:" + data.filecount + " Thread Completed:"
                             + data.threadcount);
                   data.threadcount++;
                   return;
              else
                   data.threadcount++;
                   return;

    Remove the synchronized and use a work list instead of doing new Thread(), do workList.add() instead and have a threadpooledexceutor take workitem of the list.
    Or go non-parallel and just do a recursion-call?

  • Best way to handle large number video files for a project..

    Hey, I was looking at getting some insight from the community here. Bascially there is a project that is being worked on that requires large amount of footage to be sifted through that only a small percentage will be used. These are mostly HD files and while most of the footage has been watched on Quicktime with notes taken, my question is this.
    What is the best way to take only small portions of each file without having to load everything into final cut and without any loose of quality. Should I just trim and rename from Quicktime or is there an easier way?
    Reason this needs to be done this way is the smaller segments will each be sent to other editors and rather then send huge files we want to split it to smaller amounts for each editor to use.
    Thank you so much for any input regarding this, I look forward to what you have to say

    Open the clip into the viewer. Mark In and Out points on the section you want. Make it a subclip Cmd-U. Drag the subclip into the bin for the editor who needs it. Repeat.
    If you batch export from a clip there is a selection to choose whether to export the whole clip or check box to export the marked I/O.
    This does not sound like a good project on which to being learning FCP.

  • Group form items to handle  large number of input items

    Hi,
    I have a form region with about 50 items. They are to many too display all at the same time. What I would like to do is to group these items into three separate groups. Also I would like to place "flip" button at the top that user can press and can display one of the three item groups - one at a time.
    Is the hiding and displaying of items in the described way possible without extensive Javascript coding?
    Regards, Tamas

    Hi,
    1) http://shijesh.wordpress.com/2010/04/04/jquery-tab-in-apex-3/
    2) Re: Creating a tab region within a page in APEX
    Regards,
    Shijesh

  • Communicate large number of parameters and variables between Verstand and Labview Model

    We have a dyno setup with a PXI-E chassis running Veristand 2014 and Inertia 2014. In order to enhance capabilities and timing of Veristand, I would like to use Labview models to perform tasks not possible by Veristand and Inertia. An example of this is to determine the maximum of a large number of thermocouples. Veristand has a compare funtion, but it compares only two values at a time. This makes for some lengthy and inflexible programming. Labview, on the other hand, has a function which aloows one to get the maximum of elements in an array in a single step. To use Labview I need to "send" the 50 or so thermocouples to the Labview model. In addition to the variables which need to be communicated between Veristand and Labview, I also need to present Labview with the threshold and confguration parameters. From the forums and user manuaIs understand that one has to use the connector pane in Labview and mapping in Veristand System Explorer to expose the inports and outports. The problem is that the Labview connector pane is limited to 27 I/O. How do I overcome that limitation?
    BTW. I am fairly new to Labview and Versitand.
    Thank you.
    Richard
    Solved!
    Go to Solution.

    @Jarrod:
    Thank you for the help. I created a simple test model and now understand how I can use clusters for a large number of variables. Regarding the mapping process: Can one map a folder of user channels to a cluster (one-step mapping)? Alternatively, I understand one can import a mapping (text) file in System Explorer. Is this import partial or does it replace all the mapping? The reason I am asking is that, if it is partial, then I can have separate mapping files for different configurations and my final mapping can be a combination of imported mapping files.
    @SteveK:
    Thank you for the hint on using a Custom Device. I understand that the Custom Device will be much more powerful and can be more generic. The problem at this stage is that my limitations in programming in Labview is far gretater than Labview models' limitations in Veristand. I'll definitely consider the Custom Device route once I am more provicient with LabView. Hopefully I'll be able to re-use some of the VI's I created for the LabView models.
    Thanks
    Richard

  • Best practice for handling data for a large number of indicators

    I'm looking for suggestions or recommendations for how to best handle a UI with a "large" number of indicators. By large I mean enough to make the block diagram quite large and ugly after the data processing for each indicator is added. The data must be "unpacked" and then decoded, e.g., booleans, offset binary bit fields, etc. The indicators are updated once/sec. I am leanding towards a method that worked well for me previously, that is, binding network shared variables to each indicator, then using several sub-vis to process the particular piece of data and write to the appropriate variables.
    I was curious what others have done in similar circumstances.
    Bill
    “A child of five could understand this. Send someone to fetch a child of five.”
    ― Groucho Marx
    Solved!
    Go to Solution.

    I can certainly feel your pain.
    Note that's really what is going on in that png  You can see the Action Engine responsible for updating the display to the far right. 
    In my own defence: the FP concept was presented to the client's customer before they had a person familliar with LabVIEW identified.  So I worked it this way from no choice of mine.  I knew it would get ugly before I walked in the door and chose to meet the challenge head on anyway.  Defer Panel Updates was my very good friend.  The sensors these objects represent were constrained to pass info via a single ZigBee network so I had the benefit of fairly low data rates as well but even changing view (Yes there is a display mode that swaps what information is displayed for each sensor) was updated fast enough that the user still got a responsive GUI.
    (the GUI did scale poorly though!  That is a lot of wires!  I was greateful to Jack for the Idea to make align and distribute work on wires)
    Jeff

  • How to handle a large number of images?

    I am writing a program that need handle a large number of images.
    How should i do to make it work faster and less memory.
    Is it a image pool i can use ? How is it works?

    Thank you for you reply.
    I need to handle images.For example a user upload an
    image via web browser and i need save too images ,one
    is the original image ,the other is the compressed
    image.And there may be a large number of images
    because my project is a web application.
    How should i do to reduce the stress of server?Well, you can find some answers under "Image I/O" for your image related IO problems here
    http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html.

  • Fastest way to handle and store a large number of posts in a very short time?

    I need to handle a very large number of HTTP posts in a very short period of time. The handling will consist of nothing more than storing the data posted and returning a redirect. The data will be quite small (email, postal code). I don't know exactly how
    many posts, but somewhere between 50,000 and 500,000 over the course of a minute.
    My plan is to use the traffic manager to distribute the load across several data centers, and to have a website scaled to 10-instances per data center. For storage, I thought that Azure table storage would be the ideal way to handle this, but I'm not sure
    if the latency would prevent my app from handling this much data.
    Has anyone done anything similar to this and have a suggestion for storing the data? Perhaps buffering everything into memory would be ideal and then batching from there to table storage. I'm starting to load-test the direct to table-storage solution and
    am not encouraged.

    You are talking about a website with 500,000 posts per minute with re-direction, so you are talking about designing a system that can handle at least 500,000 users? Assuming that not all users are doing posts within a one minute timeframe, then you
    are talking about designing a system that can handle millions of users at any one time.
    Event hub architecture is completely different from the HTTP post architecture, every device/user/session writes directly to the hub. I was just wondering if that actually work better for you in your situation.
    Frank
    The site has no session or page displaying. It literally will record a few form values posted from another site and issue a redirect back to that originating site. It is purely for data collection. I'll see if it is possible to write directly to the event hub/service
    bus system from a web page. If so, that might work well.

  • How to handle a large number of query parameters for a Browse screen

    I need to implement an advanced search functionality in a browse screen for a large table.  The table has 80+ columns and therefore will have a large number of possible query parameters.  The screen will be built on a modeled query with all
    of the parameters marked as optional.  Given the large number of parameters, I am thinking that it would be better to use a separate screen to receive the parameter input from the user, rather than a Popup.  Is it possible for example to have a search
    button on the browse screen (screen a) open a new screen (screen b) that contains all of the search parameters, have the user enter the parameters they want, then click a button to send all of the parameters back to screen a where the query is executed and
    the search results are returned to the table control?  This would effectively make screen b an advanced modal window for screen a.  In addition, if the user were to execute the query, then want to change a parameter, they would need to be able to
    re-open screen b and have all of their original parameters still set.  How would you implement this, or otherwise deal with a large number of optional query parameters in the html client?  My initial thinking is to store all of the parameters in
    an object and use beforeShown/afterClosed to pass them between the screens, but I'm not quite sure how to make that work.  TIA

    Wow Josh, thanks.  I have a lot of reading to do.  What I ultimately plan to do with this (my other posts relate to this too), is have a separate screen for advanced filtering that also allows the user to save their queries if desired. 
    There is an excellent way to get at all of the query information in the Query_Executed() method.  I just put an extra Boolean parameter in the query called "SaveQuery" and when true, the Query_Executed event triggers an entry into a table with
    the query name, user name, and parameter value pairs that the user entered.  Upon revisiting the screen, I want the user to be able to select from their saved queries and load all the screen parameters (screen properties) from their selected query. 
    I almost have it working.  It may be as easy as marking all of the screen properties that are query parameters as screen parameters (not required), then passing them in from the saved query data (filtered by username, queryname, and selected
    item).  I'll post an update once I get it.  Probably will have some more questions as I go through it.  Thanks again! 

  • How to handle a Large number of controls?

    I Want to create an application wich will have to handle a lot of controls on it. I know how to get references of this controls, and how to acces them all programatically, but my problem is that there is just to many of them for Laview to run with no lag. It lags badly even on edit mode when I try to place all the controls I need. I think that ther must be a way to do this, since im going to have a lot of controls (look out in the image, I need 10 tabs of each grup with 5 subgrupsgrups on each tab, = 20tabs x 5subgrups x 40tags per subgrup x around 10 controls per tag = 40000 controls) but only a few of them are going to be showing in the front panel since most of them will be out of view. 
    It's there any way I can handle this number of controls, considering I only need to visualize some of them at a given time ?? I have developed a sistem to expand, collapse, scroll up and down and stuff with the controls and it works fine with just a few tabs and subgrups but... I would prefere to stick up with this number of controls, to offer the capacity to expand the tags handled by the program while running, i could go down to a more situable number of controls like (16 tab control grups x 3 subgrups x 20 tags x 10 controls = 9600) wich is still a lot to be honest but I dont undersand why I cannot just have the controls lying on the fron panel doing nothing lags this much.
    Attachments:
    Desing.png ‏402 KB

    I recently wrote some articles about this very subject:
    Monster Panel I
    Monster Panel II
    Monster Panel III
    Monster Panel IV
    Monster Panel V
    I have almost 13000 controls/indicators on one VI panel (and four such windows in the program).
    Perhaps there are some tips to help you.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • Mail - how to send to large number of recipients?

    How can I send an email to a large number of recipients that I hold addresses for in a document without a) adding them to my contacts, and b) so that they can't all see each others addresses?

    I thought about using BCC, but it seems a little messy although it would do the job.
    Messy how?  That's exactly what it's for.  In fact, there's no other way to hide addresses from other recipients of the message.  The only other way to do it would be to script automated sending of one message per address, and that would get quite messy!
    What is the maximum number of recipients that Mail can handle?
    There's no limit enforced by Mail, AFAIK.  The limits come from the SMTP server you're using.
    One of the issues I had when using Outlook on Windows for this by copying and pasting from a text document, was that if there was an invalid/non-existent address in the list, it would just return an error and I was never quite sure if the whole thing didn't send, or if it was just to the dodgy address(es).
    In Mail, you'll just get a bounce message for any addresses that don't exist.  The one exception to that is addresses on the same server that you're sending from...  often, the server will simply reject the attempt to send to an address that it knows doesn't exist.  I'm not sure what kind of message the server returns in that case, though, and suspect it depends on the server.  It's been a while since I've seen such a problem.

  • How to show data from a table having large number of columns

    Hi ,
    I have a report with single row having large number of columns . I have to use a scroll bar to see all the columns.
    Is it possible to design report in below format(half columns on one side of page, half on other side of page :
    Column1
    Data
    Column11
    Data
    Column2
    Data
    Column12
    Data
    Column3
    Data
    Column13
    Data
    Column4
    Data
    Column14
    Data
    Column5
    Data
    Column15
    Data
    Column6
    Data
    Column16
    Data
    Column7
    Data
    Column17
    Data
    Column8
    Data
    Column18
    Data
    Column9
    Data
    Column19
    Data
    Column10
    Data
    Column20
    Data
    I am using Apex 4.2.3 version on oracle 11g xe.

    user2602680 wrote:
    Please update your forum profile with a real handle instead of "user2602680".
    I have a report with single row having large number of columns . I have to use a scroll bar to see all the columns.
    Is it possible to design report in below format(half columns on one side of page, half on other side of page :
    Column1
    Data
    Column11
    Data
    Column2
    Data
    Column12
    Data
    Column3
    Data
    Column13
    Data
    Column4
    Data
    Column14
    Data
    Column5
    Data
    Column15
    Data
    Column6
    Data
    Column16
    Data
    Column7
    Data
    Column17
    Data
    Column8
    Data
    Column18
    Data
    Column9
    Data
    Column19
    Data
    Column10
    Data
    Column20
    Data
    I am using Apex 4.2.3 version on oracle 11g xe.
    Yes, this can be achieved using a custom named column report template.

Maybe you are looking for