zenthoef
2008-08-11 21:40:06 UTC
I am starting to design a LabVIEW program for a test fixture that will control and take measurements on at most 4 different units. The sequence in which the tests begin and end on each unit will be very user friendly. To give an idea of the flexibility of this test fixture: all the units could start and finish the tests at the same time or they may start and finish the tests at different times. Ideally, testing will initially start at the same time, but as testing goes on tests on inidividual units may start and end at different times as different units are tested. It is desirable to have each test for each unit display if that test passed or failed.
For more information, I plan on the user pressing a "Details" button to call a VI that displays the detailed test information for that unit. This "Details VI" will then be closed to return to the top-level VI in which the information I described above will be displayed. The detailed data will also be written and saved to a file.
I am thinking that the ideal architecture for this program will be a Master/Slave architecture that controls 4 different General State Machines. The Master Loop will constantly monitor for units under test to be placed on one of the 4 sub-test fixtures. When a unit under test is detected, the master loop will tell the slave loop (which is also the General State Machine) for that fixture to begin the series of tests. In the General State Machine, each test will be a Sub-VI in a different state, this way the status of each test can be updated as that test finishes. When the testing on a unit finishes and the unit is removed, the master loop will detect that unit has been removed from the fixture and re-initialize the appropriate state machine for the next unit.
My question is: Is the architecture I have planned for this kind of application the best architecture or is there a better way to approach a problem like this that requires parallel control and data collecting?
Thanks.
For more information, I plan on the user pressing a "Details" button to call a VI that displays the detailed test information for that unit. This "Details VI" will then be closed to return to the top-level VI in which the information I described above will be displayed. The detailed data will also be written and saved to a file.
I am thinking that the ideal architecture for this program will be a Master/Slave architecture that controls 4 different General State Machines. The Master Loop will constantly monitor for units under test to be placed on one of the 4 sub-test fixtures. When a unit under test is detected, the master loop will tell the slave loop (which is also the General State Machine) for that fixture to begin the series of tests. In the General State Machine, each test will be a Sub-VI in a different state, this way the status of each test can be updated as that test finishes. When the testing on a unit finishes and the unit is removed, the master loop will detect that unit has been removed from the fixture and re-initialize the appropriate state machine for the next unit.
My question is: Is the architecture I have planned for this kind of application the best architecture or is there a better way to approach a problem like this that requires parallel control and data collecting?
Thanks.