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.
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.
10-03-2011 02:16 AM
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
10-04-2011 11:24 AM
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!
10-04-2011 01:54 PM
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