LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Fatal Internal Error: "memory.cpp", line 593

Good afternoon. I'm trying to use a LabVIEW DLL under Matlab. To do so, i'm using the Math Interface Toolkit to build the DLL files. When i call the function in Matlab, it shows me the following error: "Fatal Internal Error: "memory.cpp", line 593. Labview Version 7.0". The same error appeared when using a different DLL, created with the toolkit too. I'm using LabVIEW 7.1, the run-time engine 7.1 and Math Interface Toolkit 1.0. How can i solve this problem?

Thanks for your help.
0 Kudos
Message 1 of 16
(4,700 Views)
I found out that the error occurs when the program reaches a while loop. Any ideas?
0 Kudos
Message 2 of 16
(4,689 Views)

ajmib,

These .cpp errors tend to be pretty vague and tough to troubleshoot. I know that this error has been known to occur if a DLL written in LV 7.0 is called in LV 7.1 when only 7.1 is installed (with the 7.0 run-time engine). This could be what's going on with your program. If your DLLs were built in 7.0, try rebuilding them in 7.1 and see if the problem goes away. I hope this helps! Have a good one.

Tyler S.

Message Edited by TylerS on 09-16-2005 12:10 PM

0 Kudos
Message 3 of 16
(4,682 Views)
To build the DLL i'm using LV 7.1, but i'm not sure about the Run-time engine, because it appears that the 6.1, 7.0 and 7.1 are installed! how do i know what run-time engine is LV using?
0 Kudos
Message 4 of 16
(4,676 Views)

If the DLLs were built in 7.1, they should be calling the 7.1 run-time engine, but the error indicates that the 7.0 run-time engine is being used. If you want, you could remove the 6.1 and 7.0 run-time engines and see if that makes a difference. Of course, that's assuming there is nothing critical running on your machine that requires those run-times. But they can be installed again later from our website.

Tyler S

0 Kudos
Message 5 of 16
(4,661 Views)
Trying to uninstall the Run-time 6.1 and the Run-time 7.0, it shows me a list of dependent products. For the Run-time 6.1: NI Vision Assistant 7.1. For the Run-time 7.0:
- NI ELVIS 2.0
- NI Instrument IO Assistant
- NI LabVIEW Control Design Toolkit 2.0
- NI LabVIEW DSC Module 7.1
- NI Measurement & Automation Explorer 3.1.1
- NI Signal Express 1.0
- NI Vision Assistant 7.1
- NI-488.2 2.20
- NI-DAQ 7.3, Traditional
- NI-DAQmx 7.3
- NI-Embedded RT 1.0.1
- NI-FieldPoint for LabVIEW Real-Time 4.1
- NI-IMAQ 3.0
- NI-Motion 6.1.4
- NI-Serial 1.7
- NI-Serial for LabVIEW RT
- NI-VISA Runtime 3.2f1
- NI-VISA Server 3.2f1
- NI-VISA for LabVIEW Real-Time 3.2f1

Finally, for the Run-time 7.1, the dependent programs are:
- NI ELVIS 2.0
- NI IMAQ Vision 7.1
- NI LabVIEW 7.1
- NI LabVIEW 7.1 Real-Time Module
- NI LabVIEW Application Builder 7.1
- NI LabVIEW Control Design Toolkit 2.0
- NI LabVIEW DSC Module 7.1
- NI SignalExpress 1.0
- NI Vision Assistant 7.1
- NI-DAQmx 7.3

For my project i'm using the NI-IMAQ 3.0 for USB cameras and Vision 7.1. If i uninstall the 6.1 and 7.0 runtimes, what happens to the NI-IMAQ 3.0? Is there a way to make MATLAB use the Run-time 7.1 only?
0 Kudos
Message 6 of 16
(4,659 Views)
ajmib,
It looks like uninstalling The 6.0 and 7.0 run time engines isn't a good idea based on the dependent programs. I'd suggest then going to another computer that has matlab installed on it and no NI products installed. Then install the 7.1 Run time engine  and run your program. Doing this will isolate your program from other run time engines. To download the 7.1 run time engine you can go to http://digital.ni.com/softlib.nsf/websearch/71B1D78C8DFBA33786256E7D00724692.
 
Chris C
Applications Engineering
National Instruments
0 Kudos
Message 7 of 16
(4,635 Views)
I went to another computer with Matlab 6.5 (Release 13) only, and downloaded and installed the Run-Time 7.1. When i tried to use the DLL, it showed me the following error: "One or more output arguments not assigned during call to 'prueba5_2_1_1a' ", prueba5_2_1_1a is the name of the function/VI.
0 Kudos
Message 8 of 16
(4,629 Views)
This morning i tried building a simpler VI, which consisted in a numeric input and a while loop with a waveform chart, an increment and a shift register, so the numeric input increases for each loop. I used the Math Interface Toolkit and worked correctly when i opened it on matlab. Then i made another VI, which consisted of an "IMAQ Create", "IMAQ Read Image and Vision Info" and an "Image Out". This time it showed me this error message: "Fatal Internal Error: "memory.cpp", line 611, LabVIEW version 7.1".
0 Kudos
Message 9 of 16
(4,598 Views)
ajmib,
That you got this memory crash might indicate that you haven't allocated enough memory for the array you're passing out of the dll. Make sure that you've given yourself enough memory. That goes for strings and array data types.
 
 Second, make a case structure within the dll such that in the true case, you output an image, but in the false case you use your IMAQ functions to acquire that image. The point of doing this is to see if it is LabVIEW that is causing the problem or if it's the IMAQ functions. So in one instance of you calling the dll in matlab, pass a true into the dll and in another iteration pass in a false. If the error occurs in only one case then we've at least narrowed down the problem. Post when you're able to run these tests.
 
 
Chris C
Applications Engineering
National Instruments
0 Kudos
Message 10 of 16
(4,576 Views)