11-26-2014 03:39 AM
Hi,
I have code where I connect to the camera with eBUS SDK drivers. I have DLL for it and use it in Labview. But when I run this code, after few hour (in last case camera with 55 FPS it was 5 hours) will apear error in subVI PvPipeline_Retrieve Next Buffer or PvBuffer_Image:
Labview - memory is full
Ni-488 - no listeners on the gpib
First what I try was close all references what is created in while loop but its not help. When I look to Profile: Performance and Memory or Task Manager, there is no memory growth.
Now I have no suggestion where is problem, please can anyone help me with this problem?
My code (for run the code is camera and eBUS SDK installed necessary, main VI is Main) and error is in Attachments.
11-26-2014 10:19 AM
Here is screen of code and marked where the error occurs
11-26-2014 10:54 AM
Not sure about the error yet, but I do have one suggestion. Use "Index Array" and index the 0 element instead of the "For Loop". With the For Loop, you are only getting the LAST element, whereas with the index array (set up as above) you will get the FIRST. Now it probably deosn't matter to you right now because the subVI is probably returning an array of one element - so "FIRST" and "LAST" have no meaning - but if this ever changes, you'll be scratching your head trying to figure out why it seems you are addressing the wrong equipment (answer: because you ARE).
11-26-2014 11:35 AM
Thanks for suggestion, it will be better with Index Array. But there is not problem, because error occurs in while loop.
12-03-2014 02:06 AM
Dear Vávra,
this error code has multiple descriptions because it is used by multiple drivers. It is used by the 488.2 driver and native LabVIEW alike. In your case, since there are no calls to the 488.2 driver, the LabVIEW description is the one that holds: Memory is full.
In your code, I've seen that you reserve a buffer, get an image, then release the buffer. As the code runs out of memory after some time, this means that you have a memory leak somewhere, and the memory used by the application keeps increasing as time goes by.
My advice is to check the release functions, if they behave properly. The best solution would be (if possible) to not reserve memory inside the loop, but instead, reserve it during initialization and use the same buffer throughout the code run.
Regards: