11-07-2005 06:36 AM
Hi, I am trying to use LabVIEW to collect plant downtime data. I have created a vi that opens if a certain time limit is breached and records the length of time that the tags are above this limit, thus measuring the length of downtime. Whilst measuring the time above limit, a ring control prompts the user to enter a downtime reason from a pick list and into a text indicator. Please see attached vi.
I am trying to get the last selection from the ring control to show in the text indicator, and upon clicking of "OK" I would like to log this data to the table shown below with both start/stop timestamps and length of time (in secs). I am having trouble organising my text arrays and wiring to show this data in the table.
Any guidance/quick fixes on this particular problem is greatly appreciated.
Best regards,
Stuart
11-07-2005 08:45 AM
Stuart,
Your program has major dataflow issues and cannot work in the current form. Could you explain in more details how the program is supposed to work from the user perspective?
Here are some flaws I noticed just glancing at it:
Please clarify operation before I look into this in more detail. How is this VI called? How does it stop?
11-07-2005 10:52 AM
I have a parent vi which monitors the plant performance day and night. It is currently recording production times. When a certain production time is recorded to be excessive (ie. above 60 seconds) the downtime codes vi is called and asks the machine operator for a reason. He/She picks the reason from the Mechanical/Electrical/Process menus and the reason is added to the string indicator acting as a selection box. If the operator is happy with their selection, he/she hits "OK" and the reason is logged to the table below. Once the tag data is under 60 secs, the table should be updated with timestamp & downtime data and the vi should automatically stop and close. Going back to the parent vi front panel.
Is this possible? Any guidance on how to create this properly would be an extremely big help.
Many thanks for your continuing support,
Stuart
11-10-2005 05:18 AM
Hi Stuart
I have been looking at your vi’s I have written a vi for you concerning the ring controls and building the string and adding it to the table it also deals with the problem of continually building the array till you run out of memory.
You might want to consider putting this in to an even structure which is triggered when your 60s down time limit is reached.
You also might want to look at the even tracking example From LabVIEW example finder. This just monitors events if you don’t do any thing a time out value is passed in u do it list it.
Hope this helps
Tim Matthews
Applications Engineer
National Instruments
http://www.ni.com/support
11-10-2005 09:58 AM
11-11-2005 03:51 AM
Hi Stuart
Well a very simple way would be to add a blank space to each list and set it to default. This would be the simplest and quickest way. If you don’t want to do this then it actually get quite complex and you have to start looking at event type stuff and blocking the other two once you select one. Or having three Reason boxes and three ok buttons would be fairly straight for would but might make your front panel a bit cluttered.
Regards
Tim