I've successfully implemented similar programs using a buffered statemachine
with multiple processes.
An explanation (assuming you are familiar with a state machine):
*********
Instead of an string or enumerated the buffered SM has an array of states.
A buffered SM with multiple processes has an array with clusters in it, with
an array of states.
Here's the trick.
Make a VI that takes the data structure descibed above. This is the state
handler.
Make each state so, that it leaves the state emediately.
Each of the processes the user can start, uses the same physical state to
execute (that is, you make each step needed for one process, and the other
processes use the same states). Is there an error in the processes? Fix it
ones, and all processes are fixed!
Use a shift register, a LV2 Global, Locals on the front panel, or a
reference file to store data for each process. But the data should be an
array. A state should work for each process, and thus an index of the active
process should be used to index the data array, and to get the needed data
for *all* processes.
*********
This method makes it a bit harder (but not impossible) to have popups etc.
Also, be aware that it is very flexible! This seems great, but you should
plan it, and then make it. This way you can easilly document it afterwards.
The possible state transactions are enormous, but using more than two or
three will make it impossible to make any kind of flow chart of the program.
(The greatest this about a state machine is this: each state has very
limited functionality {, e.g. init multimeter, init scope, read value,
update chart, wait for start, etc}. This functionality can be documented
easilly. The relation between states can be documented easilly. Ergo, the
entire program can be documented easilly!)
This might not be the solution you want, because it is kinda difficult. But
once you get the hang of it, you'll never want anything else!
I Hope I makes any sence explaning this, I know the architecture does!
Regards,
Wiebe.
"jymoon"
wrote in message
news:50650000000800000083540000-1027480788000@exchange.ni.com...
> Ok, here's what I need - ANY suggestions for the way I should
> implement my project. Suggestions may include how while
> loops/sequences/clusters of arrays can/should be placed in my project.
>
> Here's the scope:
> I'm creating an automated slide processor which will have a PC (where
> d labview program sits) controlling 12 heating chambers. Functions
> for these chambers include, dispensing liquid from (any 5)
> reservoirs, asperating liquid from the chamber, heating of chamber to
> XX temperature.
>
> I need an interface which will:
> 1) allow user to select which process (each process consist of ordered
> steps..eg. Dispense from reservoir, then Heat chamber to specific
> temperature, then Flush).
>
> 2) The "Operation" interface should allow user to select a process for
> each chamber, and user can START each chamber's process and
> ABORT/STOP.
> Each chamber will be controlled seperately.
>
> 3) The "Monitor" interface allows user to look at the current Step (of
> the process) being executed and the current conditions (eg. current
> temperature).
>
> Looking at the Scope..what's the BEST PRACTICE programming structure
> should I adopt using labview..
>
> Any suggestions, I mean Anything really, will be most welcomed!
>
> Regards.
> Tommy