From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Measurement Studio for VC++

cancel
Showing results for 
Search instead for 
Did you mean: 

Not enough memory to perform this operation (in creating ring buffer)

Hi forum members,

 

We are currently having a memory issue  in our work regarding NI functions.

 

Brief background here: we are using Visual C++ 2008 and Measurment studio (MAX) for data acquisition from line scan cameras using NI 1429 card as frame grabbers. The C++ program creates a list of 10 ring buffers during initialization and then fills them with data continuously during acquisition. Everything works fine except when we increase the buffer size from current value (2048*1024*2 = 4194304 bytes to 4096*1024*2 = 8388608 bytes). Computer spec: Desktop, Intel Xion Core 2 Duo processor, 8GB RAM, WIn 7, 500+ GB HDD

 

The error I get is: 

-1074397181 IMG_ERR_EMEM Not enough memory to perform the operation.

 

Out of 10 ring buffers, 4 or 5 of them are created successfully but rest of the buffers gives the above error and as a result, imgConfigureSession() gives an error and acquisition fails. But everything works if the buffer size is half or smaller.

 

Now the question is, this computer having such a large amount of memory (8GB), is it expected to get such a memory issue or is there something else to check? In MAX acquisition settings are changed as required (height 4096 and width 1024).

 

Would appreciate any kind of suggestions. Thanks.

 

Shahid

0 Kudos
Message 1 of 3
(5,587 Views)

Hello Shahid

 

Thank you very much for bringing this to our attention.  By your PC hardware specifications, you are using are 64-bit Windows 7 operating system correct?  If that is the case, 64-bit text based programming with IMAQ is not officially supported.  Regardless, I am going to do my best to assist you with this.  I am happy to see that it is working under certain settings.

 

Please see the following link:

 

NI Vision Development Module and Vision Acquisition Driver 64-bit Programming Language Support
http://digital.ni.com/public.nsf/allkb/ABAF08AC67A566698625773B00790E88

 

There are memory issues associated with the 64-bit IMAQ Driver in text based programming as evidenced in the following document:

 

Error -1074396857 While Using C Version of the 64-Bit NI-IMAQ Driver
http://digital.ni.com/public.nsf/allkb/2A8DE5C023CEBD15862577CF00761ECE

 

To quote this document, This 32-bit device is operating on a 64-bit OS with more than 3GB of physical memory. This configuration could allocate 64-bit memory which is unsupported by the device. To solve this problem, reduce the amount of physical memory in the system.  I can imagine that the idea of reducing your physical memory is less than ideal.

 

That being said, because you are using the PCIe-1429, you may be able to adapt some of the suggestions in this document to improve your situation.

 

Improving Memory Allocation with NI-IMAQ and the NI PCIe-1429
http://zone.ni.com/devzone/cda/tut/p/id/3490

 

What kind of camera are you using?  I ask because I am interested in your camera file.  Did you obtain the camera file from us or did you build it yourself?  There is potential that the camera file could also be causing this issue.  Please let me know how I can best assist you as I am committed to your success.  Thanks again and have a great day!

Sincerely,

Greg S.
0 Kudos
Message 2 of 3
(5,572 Views)

Hi Greg,

 

Thanks a lot for the reply. I will check the pages you recommened. In the meantime, I can inform you about the camera we are using. The cameras are Goodrich line scan cameras: SU-LDH Digital Line Scan Camera (http://www.sensorsinc.com/linescan.html#SULDH) which scan 46000 lines/sec. It has different OPR settings and we used mostly OPR 32 or 35. I am attaching the camera icd file here for you. Thanks.

 

Shahid

0 Kudos
Message 3 of 3
(5,568 Views)