Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

No Return Data Buffer

I have two threads in my programm that use FlexMotion API. One thread is responsible for monitoring the digital ports and current axes position. In this thread I call flex_read_limit_status_rtn, flex_read_home_input_status_rtn, flex_read_vs_pos_rtn and flex_read_port_rtn. The second thread do motion control (blend, wait for blend complete ...). After a random period of time and, in many cases, after a succefull motion control, I get NIMC_noReturnDataBufferError (-70003) error from my first thread without the other thread doing any kind of motion control. I got an answer that FlexMotion API is thread-safe in MFC, so I'm not using any kind of locking mechanism before calling FlexMotion functions in the threads. Reading the error description
didn't help me to pinpoint the cause. Why I'm getting this error ?
0 Kudos
Message 1 of 2
(2,722 Views)
Tulio,

There are several reasons that you may be encountering this error. First of all, you want to make sure that you are using FlexMotion 5.2. There are several issues with previous versions and V 5.2 has fixed many of them.

About your error. What is happenning is that the driver is making a request to the board. And the onboard operating system and supposed to respond by putting an answer in the return data buffer on the board.

When the operating system for the board was originally designed, it was tested on much slower computers. If you are overwhelming the onboard OS with queries through the driver, you may put it in a unstable state.

So try the following:

1) try upgrading the driver (if you havn't already)
2) make sure that you don't overwhelm th
e driver.


Let me know if this helps at all. Post your code if you don't figure out what is going on.


Best Regards,

Michael Halloran
Systems Engineer
Viewpoint Systems
mhalloran@viewpointusa.com
National Instruments Select Integrator
0 Kudos
Message 2 of 2
(2,722 Views)