10-31-2006 12:12 PM
11-01-2006 11:34 PM
Dear Ray:
Listed below are some useful links that explain
shared memory. There is an example that you can refer that shows the SGL VIs
they use to achieve time critical capability. From your application your rate
surely is not a problem. You are writing to shared memory address and you are
not writing to file, right. That implies you should be able to get
determinism. Can you post a snapshot of your simple code for me to look
at? What is the error you are seeing? Is it on the host VI or RT VI?
http://zone.ni.com/devzone/cda/epd/p/id/3884
http://zone.ni.com/devzone/cda/tut/p/id/3959
http://zone.ni.com/devzone/cda/tut/p/id/3898
http://forums.ni.com/ni/board/message?board.id=170&message.id=122469&requireLogin=False
http://zone.ni.com/devzone/cda/tut/p/id/2833
You want to make sure that the shared resources are minimized completely and
eliminate possibilities of priority inversion. The explanation of shared
resource and priority inversion is also mentioned in links above.
Hope this helps. Please let me know.
Best regards
Avi Harjani
11-13-2006 11:50 AM
Dear Avi,
Thanks for your response and hints.
It appears that the error was on the host computer. Basically I've got the data I was not expecting to obtain (no error message).
I believe I have figured out what went wrong. I was trying to read from RT (for two different addresses) using "RT-peek" in two different while loops. Although I assigned different values to "wait until next ms multiple" for each individual loop, those two read operations might still race into each other occassionally. I have combined two RT-peek operations and placed them in one while loop. It seems to correct my problem.
Thanks for your help!
Ray
11-14-2006 08:20 PM