I am using a LV code to take measurements from several different
devices at the same time. Recently I started getting an overrun error
(1073807252 ). I am wondering what is causing my problem. I am
operating my program on a computer with 2.0Ghz processor and 256mb RAM.
Below I am posting my code. Please if anybody has suggestions how to solve the problem, let me know.
I tried to understand your program and I advise to study how LabVIEW parallel programming really works. You add sequence frames all over the place to prevent parallellisme where simply connecting error wires already do the job.
Overrun means that your input buffer fills up more quickly than you are reading from it. I stopped at analyzing your program also because my screen is "only" 1280 by 800 pixels and your program is a bit too big for this screen.
try to read from the serial line as fast as possible and do that for both serial ports and eventually buffer the data yourself. but first make your program mor readable by wiring neatly and proably you see what is what faster.
In short, read the manual about parallellism in LabVIEw.
Even simpler though, all items that are not connected by wires (the wire dictates execution order) CAN run in parallel. Can, because it depends on your system, the compiler, the hardware etc. On a dual core pc some will run in parallel and in quad core, even more will run in parallel.
good luck, parallel processing in LabVIEW is so simple that above rules are enough.
I tried to simplify my program by introducing SubVIs so it is more
readable. However, I stillcannot figure out how to fo the whole thing
using parallel programming. Also, I am reading from all serial ports at
maximum speed (baud rate=1600). Still, there is overrun error
appearing. As for "buffering the data myself", I do not quite get what
Thanks a lot for your help.
thanks for your advice. One more thing: after reading the thread that
you suggested I did not quite get the idea of the Action Engine. Can
you provide an example of an AE (if possible readable by LV 7.0)?
I'll do my best but reading and trying action engines is possible for yourself. Just draw what happens.
The trick is the uninitialised shiftregister that keeps information over calls. try with a simple vi with just a while and an uninitialised shiftregister and a case statement with in each case an action. and see what happens.
as you advised I tried writing a simple .VI. I post it below here.
However, I still do not get the concept. Can you please look at my file
and suggest what I can change about it so that it Action Engine concept
is implemented properly.