Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

clear error -70026 (old data stop)

Solved!
Go to solution
I use a general input buffer to return data from an onboard program. When there occures an error in the application, it does not read from the buffer. An "old data stop" error (-70026) may occure. Reading is not possible any more. To clear and reinitialize the buffer is not possible because there are other onboard programs running. How can I clear the error? The old data is not used any morre.
Thanks
0 Kudos
Message 1 of 7
(4,960 Views)
Which driver do you use?
DAQmx, Motion, Vision....
 
Which ADE do you use?
LabVIEW, CVI, C++ ....
 
Where is the program running, onboard your PC, or onboard an RT target.
 
Mayby you are talking about a Motion Application
I found this KB
 
 
Thanks
 
Klaus
0 Kudos
Message 2 of 7
(4,952 Views)
You are right. I am talking about a motion application. I use the Flexmotion drivers in LabVIEW running on a computer. The onboard program runs on a PCI-7344 controller.
The KB you found is about Setting the Regeneration Mode. This prevents from reading to much data. My problem is that the buffer is filled by writing.
For each axis, I use an endless General Input Buffer to return data from an onboard program. (I call Configure Buffer.flx once and set the Total Points to 4294967295.) The buffer is read by the program on the computer. I stop the onboard program if there happens an error in the host application, but sometimes the buffer is already full. I would like to reuse the buffer because delete and reallocate is to time consuming. This could influence the other axis. Is there a method to clear the error? Is it better to set Old Data Stop to false and check if the read data looks possible? Is there a better method to return data from several onboard programs?
 
Thank you for answering
0 Kudos
Message 3 of 7
(4,940 Views)

First of all, I would try to read out all the data in time to avoid data loss. That means to increase the performance of the host application.

You can use that the flag "Old Data Stop" to false. Then you should get a error, if there is a buffer overflow.

You also can check the buffer state, and if there is a buffer overflow You can clear the error and read the data in the backlog to empty the buffer. See Example

 

Thanks

Klaus Dinnes

 

0 Kudos
Message 4 of 7
(4,923 Views)

Thank you verry much for your answer. The first point I try to do, but it does not always work. The last strategy sounds as it would solve my problem but I was not able to bring it to work so far. Could you append the example vor LabVIEW 7.1?

Tanks

shb

0 Kudos
Message 5 of 7
(4,913 Views)
I converted this example to LabVIEW 7.1.
 
Thanks
 
Klaus Dinnes
0 Kudos
Message 6 of 7
(4,894 Views)
Solution
Accepted by shb
Thanks a lot. When I execute your example when the buffer is in the state Old Data Stop, the read function returns error number -70062. The state of the Buffer is still Old Data Stop, only Backlog changed to 0. How can I reset the state? The only solution I found is to reset the Buffer by calling the VI Configure Buffer with Buffer size 0.
Creating the Buffer with Old Data Stop set to false works too. Then I have to check on the Computer if there is old data.
 
Regards,
shb
0 Kudos
Message 7 of 7
(4,888 Views)