touchthesky Posted May 25, 2011 Report Share Posted May 25, 2011 Hi,All: Recentely I write some code for system integration,however,I am often confused about the LabVIEW achitecture. I want to apply a standard architecture for all kinds of applications(Real time DAQ Acquisition,Audio analysis and so on), but it is difficult for me to make sure which type of architecture is most suitable, I hope the architure can well integrate with the following features: Multi-task(DAQ application), Good error handle mechanism, Good for system update. Some achitectures I saw are options for the requirements: 1,State machine with String meassage or Queue based(Such as JKI State machine): This is traditional way to write LabVIEW code,but this is a single task achitecture,if I setup a high speed DAQ and analysis system. This achitecture is limited for this kind of application, because DAQ system should have 2 task: Data acquisition and analysis,even data storage. So how to use this type of state machine for multi task application? 2,Engine based State machine architecture: Setup some engines(DAQ engine,Error handler engine,Data analysis engine),LabVIEW UI just control the engine run mode, using message queue to communication with various of engine. I don't know how to use it in Run-time mode,because this achitecture is based on Queue message and Dynamic call mechanism. so the engines should be VI rather than EXE. 3,LabVIEW OOP architecture: I hardly use this architecture,how about it? Is this a suggested way or best way for system architecture? The above is 3 main architecture I often see,could you give me some suggestions for selecting the best architure? Thanks, Quote Link to comment
Roderic Posted May 25, 2011 Report Share Posted May 25, 2011 You can combine a standard State machine with a producer/consumer architecture for data acquisition. Quote Link to comment
Grampa_of_Oliva_n_Eden Posted May 25, 2011 Report Share Posted May 25, 2011 (edited) Hi,All: Recentely I write some code for system integration,however,I am often confused about the LabVIEW achitecture. I want to apply a standard architecture for all kinds of applications(Real time DAQ Acquisition,Audio analysis and so on), but it is difficult for me to make sure which type of architecture is most suitable, I hope the architure can well integrate with the following features: Multi-task(DAQ application), Good error handle mechanism, Good for system update. Some achitectures I saw are options for the requirements: 1,State machine with String meassage or Queue based(Such as JKI State machine): This is traditional way to write LabVIEW code,but this is a single task achitecture,if I setup a high speed DAQ and analysis system. This achitecture is limited for this kind of application, because DAQ system should have 2 task: Data acquisition and analysis,even data storage. So how to use this type of state machine for multi task application? 2,Engine based State machine architecture: Setup some engines(DAQ engine,Error handler engine,Data analysis engine),LabVIEW UI just control the engine run mode, using message queue to communication with various of engine. I don't know how to use it in Run-time mode,because this achitecture is based on Queue message and Dynamic call mechanism. so the engines should be VI rather than EXE. 3,LabVIEW OOP architecture: I hardly use this architecture,how about it? Is this a suggested way or best way for system architecture? The above is 3 main architecture I often see,could you give me some suggestions for selecting the best architure? Thanks, Standard acrhitectures are good for standard problems but your is not standard so... Let the application determine its structure. Imagine implementing the application a 100 years ago with faithful assistants (vey fast assistants) that tielessly carry out their job. Give them official titles and draw up how they interact to accomplish the job. Use that set of documentation to guide you program development. Whatever design you come up with can be implemented in LVOOP if you are up to it. The ability to dynamically load now classes is a nice feature that allows modes to application to support future changes but it does introduce some complexity that you don't run into with a non-LVOOP app. Just my 2 cents, Ben Re the QSM I was describing what I was going through to convert an app developed using the QSM to my wife and buddy Friday night and stumbled apon the explanation "A QSM is the Worm Oroboros implemented in software. It eats its tail and is best managed by keeping it starved. Let it feed iteslf and it will explode." Edited May 25, 2011 by neBulus Quote Link to comment
apyuanjie Posted June 17, 2011 Report Share Posted June 17, 2011 I think Roderic 's is better. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.