LabVIEWForum.de - Zusammenspiel mit Simulink

LabVIEWForum.de

Normale Version: Zusammenspiel mit Simulink
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgendes Problem:

Ich nutze LabVIEW 8.2 inkl. SIT 3.0.2 zusammen mit Simulink 6.4. Ich habe nun (zum testen) einfach mal eine Sinusfunktion mit Simulink hergestellt und kann ohne Probleme mit LabVIEW üben das "SignalProbe" die Parameter (Amplitude etc.) verändern. Das Problem ist, dass ich mir die Daten, die Simulink berechnet, nicht in LabVIEW zurückholen kann, also z.B. keinen Verlaufsgraph erstellen kann in LabVIEW, weil dann sofort eine Fehlermeldung von MatLab kommt (die leider etwas länglich ist und keinen konkreten Fehler ausweist). Hat jemand eine Idee, woran das liegen könnte?

Danke schon mal im Voraus!

axeme
Hallo Axeme,

ich bin leider kein Matlab-Experte.
Aber poste doch mal die Fehlermeldung.
Vielleicht sagt das jemandem etwas.

Grüße
Andreas
Simulink 6.4 ist Matlab 2006 a oder b?
SIT 3.0.2 ist nur bis 2006a kompatibel.

Ist der SIT Server erfolgreich in Matlab gestartet?
Ist die Firewall entsprechend konfiguriert?
Ist LabVIEW auf "." anstatt auf Komma "," umgestellt?
' schrieb:Simulink 6.4 ist Matlab 2006 a oder b?
SIT 3.0.2 ist nur bis 2006a kompatibel.

Ist der SIT Server erfolgreich in Matlab gestartet?
Ist die Firewall entsprechend konfiguriert?
Ist LabVIEW auf "." anstatt auf Komma "," umgestellt?

Matlab-Version 2006a, SIT-Server ganz normal gestartet, Trennung durch Punkt ist eingestellt. Soweit funktioniert auch alles, ich kann mit LabVIEW auf Simulink zugreifen, kann aber die Daten nicht in LabVIEW zurückholen (wie oben beschrieben).
Werde die Meldung mal posten, wenn ich wieder bei der Arbeit bin.
So, hier nun die versprochene Fehlermeldung von MatLab (leider etwas länglich):

<blockquote>
------------------------------------------------------------------------
Segmentation violation detected at Wed Jun 13 14:28:08 2007
------------------------------------------------------------------------

Configuration:
MATLAB Version: 7.2.0.232 (R2006a)
Operating System: Microsoft Windows 2000
Window System: Version 5.0 (Build 2195: Service Pack 3)
Processor ID: x86 Family 6 Model 7 Stepping 3, GenuineIntel
Virtual Machine: Java 1.5.0 with Sun Microsystems Inc. Java HotSpot™ Client VM mixed mode
Default Charset: windows-1252

Register State:
EAX = 01b742a0 EBX = 298c3bf0
ECX = 01b742a8 EDX = 13bfb008
ESI = 13bfb008 EDI = 00000000
EBP = 00d0aa60 ESP = 00d0aa60
EIP = 7a3da9cc FLG = 00010206

Stack Trace:
[0] libmwsimulink.dll:int __cdecl SfcnSigListGetNumRegions(void *,int)(0x01b742a0, 0x13bfb008, 0x298c3bf0, 0x13dae290) + 12 bytes
[1] SignalProbe.dll:0x299d15a3(0x298c3bf0, 0x13bfb008, 0, 0x298c3bf0)
[2] SignalProbe.dll:0x299d251c(0, 0x29832bec "sinewave", 0x13dae290, 0x13bfb008)
[3] SignalProbe.dll:0x299d24b7(0x298c3bf0, 0, 0x00d0aafc "<«Ð", 0x78545b37)
[4] SignalProbe.dll:0x299d1d0a(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e")
[5] libmex.dll:_mexRunMexFile(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 119 bytes
[6] libmex.dll:private: void __thiscall Mfh_mex::runMexFileWithSignalProtection(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 73 bytes
[7] libmex.dll:public: virtual void __thiscall Mfh_mex::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 169 bytes
[8] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 240 bytes
[9] m_dispatcher.dll:_mdDoMatlabFcnCall(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 192 bytes
[10] libmwsimulink.dll:struct slErrMsg_tag * __cdecl CMexSFcnUpdateFcn(struct slSFcnInfo *)(0x0268df90, 0, 0x280efda0, 0x28a3a9a0) + 242 bytes
[11] libmwsimulink.dll:struct slErrMsg_tag * __cdecl SFcnUpdateFcn(class slBlock *,class slSimBlock_tag *)(0x280efda0, 0x28a3a9a0, 1, 0) + 293 bytes
[12] libmwsimulink.dll:struct slErrMsg_tag * __cdecl BlockUpdate(class slSimBlock_tag *)(0x00a3a9a0, 0x00d0b108 "$±Ð", 0x7a1407f3, 0x28a3a9a0) + 264 bytes
[13] libmwsimulink.dll:public: virtual struct slErrMsg_tag * __thiscall LegacyDirectRunTimeDispatcher::Update(class slSimBlock_tag *)(0x28a3a9a0, 0x1b3c2a20, 0x1b3fe8a0, 0x298c3700) + 12 bytes
[14] libmwsimulink.dll:_BdSystemUpdate(0x1b3c2a20, 0x2992b8d0, 0x1b3c2a20, 0x1b3c2a20) + 675 bytes
[15] libmwsimulink.dll:struct slErrMsg_tag * __cdecl BdUpdateFcn(struct slModel_tag *)(0x1b3c2a20, 0, 0x298c37d0, 0x00d0b198 "´±Ð") + 55 bytes
[16] libmwsimulink.dll:struct slErrMsg_tag * __cdecl ModelUpdate(struct slModel_tag *)(0x1b3c2a20, 0x298c37d0, 0x1b3c2a20, 0) + 91 bytes
[17] libmwsimulink.dll:_slDoOutputAndUpdate(0x013c2a20, 0x00d0b1e0, 0, 0x79144300) + 921 bytes
[18] libmwsimulink.dll:_StepMenuSim(0x1b3fe8a0, 0, 0x1b3fe8a0, 0x00d0b1e4) + 183 bytes
[19] libmwsimulink.dll:_sleModelExecutionInterface(0x1b3fe8a0, 5, 0x00d0b1e0, 0x29831c84) + 144 bytes
[20] libmwsimulink.dll:void __cdecl sluiWorkProcSimStep(void *)(0x1b3fe8a0, 0x77e73a7b, 721176, 0x790fd375) + 27 bytes
[21] uiw.dll:void __cdecl UIW_CallWorkProcs(void)(0x00d0b2b0, 0x00d0b201 "xàw", 255, 0x791443f0) + 67 bytes
[22] uiw.dll:char * __cdecl getCommand(char *,int,int)(0x79d8ac18, 4096, 255, 0x00d0b340 "X³Ð") + 98 bytes
[23] uiw.dll:public: virtual char * __thiscall uiw::UIW_IOProxy::getCmdWindowCommand(char *,int,int)const (0x79d8ac18, 4096, 255, 0x01be5520) + 20 bytes
[24] bridge.dll:char * __cdecl win32IoReadLine(int,bool,struct _iobuf *,char *,char *,int,bool *)(0x7c38b4e8, 0x01be5520, 4096, 0x00d0b387) + 213 bytes
[25] bridge.dll:char * __cdecl ioReadLine(int,bool,struct _iobuf *,char *,char *,int,bool *)(255, 0, 0x7c38b4e8, 0x01be5520) + 27 bytes
[26] bridge.dll:void __cdecl mnGetFullLine(char * *,unsigned int *,unsigned int *,int,bool)(0x00d0f3b4, 0x00d0f3ac, 255, 0) + 77 bytes
[27] bridge.dll:_mnGetCommandLineBuffer(255, 0, 0x00d0f4b4, 0x00d0f4b8 "ü=çwBXÑ") + 97 bytes
[28] bridge.dll:$L92008(0x00d0f4b8 "ü=çwBXÑ", 0x01ab8db8, 0, 0x784cf1b0) + 398 bytes
[29] mcr.dll:public: void __thiscall mcrInstance::mnParser(void)(0x77e73dfc, 0x00d15842, 0x01ab8db8, 0x01ab8df8) + 51 bytes
[30] MATLAB.exe:0x00401941(4194304, 0, 0x00d15842, 1)
[31] MATLAB.exe:0x004076ff(0x00780065, 101, 0x7ffdf000, 0)
[32] KERNEL32.dll:0x77e81af6(0x0040757a, 0, 200, 256)

This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.

If it is an official MathWorks function, please
follow these steps in reporting this problem to The MathWorks so
that we have the best chance of correcting it:

1. Send this crash report to segv@mathworks.com for automated analysis.
For your convenience, this information has been recorded in:
C:WINNTProfilesMehlsLOCALS~1Tempmatlab_crash_dump.1912

2. If the problem is reproducible, please submit a bug report via:
http://www.mathworks.com/support/contact_u..._request_1.html

Thank you for your assistance. Please save your workspace and restart
MATLAB before continuing your work.

-------------------------------------------------------------
This segmentation violation occurred while executing the
S-function 'SignalProbe' in block 'sinewave/SignalProbe'.
A common cause of this segmentation violation is an incorrect
input port direct feedthrough setting. Each input port of the
S-function that is read (accessed) in mdlOutputs and/or
mdlGetTimeOfNextVarHit must specify that it needs its input
signal in these routines by setting direct feedthrough for
these input ports.
1) To debug your C-MEX S-function, you can enable diagnostics
by compiling the S-function source with the -g flag, e.g.,
mex -g sfunction_name.c
2) You can ask Simulink to try assuming your S-function has
direct feedthrough using:
set_param('modelname','TryForcingSFcnDF','on'Wink
If Simulink can find a valid sorting mode that does not
result in algebraic loops involving your S-function, your
model will execute (assuming that the cause of this
segmentation violation is an incorrect direct feedthrough
setting on an input port).
See matlabroot/simulink/src/sfuntmpl_directfeed.txt
-------------------------------------------------------------


------------------------------------------------------------------------
Segmentation violation detected at Wed Jun 13 14:28:17 2007
------------------------------------------------------------------------

Configuration:
MATLAB Version: 7.2.0.232 (R2006a)
MATLAB License: 78139
Operating System: Microsoft Windows 2000
Window System: Version 5.0 (Build 2195: Service Pack 3)
Processor ID: x86 Family 6 Model 7 Stepping 3, GenuineIntel
Virtual Machine: Java 1.5.0 with Sun Microsystems Inc. Java HotSpot™ Client VM mixed mode
Default Charset: windows-1252

Register State:
EAX = 01b742a0 EBX = 298c3bf0
ECX = 01b742a8 EDX = 13bfb008
ESI = 13bfb008 EDI = 00000000
EBP = 00d0aad4 ESP = 00d0aad4
EIP = 7a3da9cc FLG = 00010206

Stack Trace:
[0] libmwsimulink.dll:int __cdecl SfcnSigListGetNumRegions(void *,int)(0x01b742a0, 0x13bfb008, 0, 0x13dae290) + 12 bytes
[1] SignalProbe.dll:0x299d15a3(0x298c3bf0, 0x13bfb008, 0, 0x298c3bf0)
[2] SignalProbe.dll:0x299d26de(0x298c3bf0, 0x13bfb008, 0x13dae290, 0x29832bec "sinewave")
[3] SignalProbe.dll:0x299d26a2(0x298c3bf0, 0x00d0ab70 "°«Ð", 0x78545b37, 0xfffffffe)
[4] SignalProbe.dll:0x299d1d2c(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e")
[5] libmex.dll:_mexRunMexFile(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 119 bytes
[6] libmex.dll:private: void __thiscall Mfh_mex::runMexFileWithSignalProtection(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 73 bytes
[7] libmex.dll:public: virtual void __thiscall Mfh_mex::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 169 bytes
[8] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 240 bytes
[9] m_dispatcher.dll:_mdDoMatlabFcnCall(0xfffffffe, 0x0268dfb4, 5, 0x29835c20 " ï-) À-)àÑ-) É-)àõ-)e") + 192 bytes
[10] libmwsimulink.dll:struct slErrMsg_tag * __cdecl CMexSFcnTerminateFcn(struct slSFcnInfo *)(0x0268df90, 0x7a3e12f0, 0x053c7620, 0x025adf40) + 103 bytes
[11] libmwsimulink.dll:struct slErrMsg_tag * __cdecl CallMdlTermAndDestroySFcnInfo(class slBlock *,bool)(0x280efda0, 982273, 0x28a3a9a0, 0x280efda0) + 207 bytes
[12] libmwsimulink.dll:struct slErrMsg_tag * __cdecl SFcnTerminateFcn(class slBlock *,class slSimBlock_tag *)(0x280efd01, 0x28a3a9a0, 0x28a3a9a0, 0x1b3fe8a0) + 74 bytes
[13] libmwsimulink.dll:struct slErrMsg_tag * __cdecl BlockTerminate(class slSimBlock_tag *)(0x00a3a9a0, 0x1b3fe8a0, 0x1b3c2a20, 0x28a27e00) + 81 bytes
[14] libmwsimulink.dll:_BdTerminateFcn(0x1b3c2a20, 0x1b3fe8a0, 0x1b3c2a20, 0x7a6e3c50) + 205 bytes
[15] libmwsimulink.dll:struct slErrMsg_tag * __cdecl ModelTerminate(struct slModel_tag *)(3942944, 0x00d0b1e0, 0, 0x79144300) + 266 bytes
[16] libmwsimulink.dll:_StepMenuSim(0x1b3fe8a0, 0, 0x1b3fe8a0, 0x00d0b1e4) + 440 bytes
[17] libmwsimulink.dll:_sleModelExecutionInterface(0x1b3fe8a0, 5, 0x00d0b1e0, 0x29831c84) + 144 bytes
[18] libmwsimulink.dll:void __cdecl sluiWorkProcSimStep(void *)(0x1b3fe8a0, 0x77e73a7b, 721176, 0x790fd375) + 27 bytes
[19] uiw.dll:void __cdecl UIW_CallWorkProcs(void)(0x00d0b2b0, 0x00d0b201 "xàw", 255, 0x791443f0) + 67 bytes
[20] uiw.dll:char * __cdecl getCommand(char *,int,int)(0x79d8ac18, 4096, 255, 0x00d0b340 "X³Ð") + 98 bytes
[21] uiw.dll:public: virtual char * __thiscall uiw::UIW_IOProxy::getCmdWindowCommand(char *,int,int)const (0x79d8ac18, 4096, 255, 0x01be5520) + 20 bytes
[22] bridge.dll:char * __cdecl win32IoReadLine(int,bool,struct _iobuf *,char *,char *,int,bool *)(0x7c38b4e8, 0x01be5520, 4096, 0x00d0b387) + 213 bytes
[23] bridge.dll:char * __cdecl ioReadLine(int,bool,struct _iobuf *,char *,char *,int,bool *)(255, 0, 0x7c38b4e8, 0x01be5520) + 27 bytes
[24] bridge.dll:void __cdecl mnGetFullLine(char * *,unsigned int *,unsigned int *,int,bool)(0x00d0f3b4, 0x00d0f3ac, 255, 0) + 77 bytes
[25] bridge.dll:_mnGetCommandLineBuffer(255, 0, 0x00d0f4b4, 0x00d0f4b8 "ü=çwBXÑ") + 97 bytes
[26] bridge.dll:$L92008(0x00d0f4b8 "ü=çwBXÑ", 0x01ab8db8, 0, 0x784cf1b0) + 398 bytes
[27] mcr.dll:public: void __thiscall mcrInstance::mnParser(void)(0x77e73dfc, 0x00d15842, 0x01ab8db8, 0x01ab8df8) + 51 bytes
[28] MATLAB.exe:0x00401941(4194304, 0, 0x00d15842, 1)
[29] MATLAB.exe:0x004076ff(0x00780065, 101, 0x7ffdf000, 0)
[30] KERNEL32.dll:0x77e81af6(0x0040757a, 0, 200, 256)

This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.

If it is an official MathWorks function, please
follow these steps in reporting this problem to The MathWorks so
that we have the best chance of correcting it:

1. Send this crash report to segv@mathworks.com for automated analysis.
For your convenience, this information has been recorded in:
C:WINNTProfilesMehlsLOCALS~1Tempmatlab_crash_dump.1912

2. If the problem is reproducible, please submit a bug report via:
http://www.mathworks.com/support/contact_u..._request_1.html

Thank you for your assistance. Please save your workspace and restart
MATLAB before continuing your work.

-------------------------------------------------------------
This segmentation violation occurred while executing the
S-function 'SignalProbe' in block 'sinewave/SignalProbe'.
A common cause of this segmentation violation is an incorrect
input port direct feedthrough setting. Each input port of the
S-function that is read (accessed) in mdlOutputs and/or
mdlGetTimeOfNextVarHit must specify that it needs its input
signal in these routines by setting direct feedthrough for
these input ports.
1) To debug your C-MEX S-function, you can enable diagnostics
by compiling the S-function source with the -g flag, e.g.,
mex -g sfunction_name.c
2) You can ask Simulink to try assuming your S-function has
direct feedthrough using:
set_param('modelname','TryForcingSFcnDF','on'Wink
If Simulink can find a valid sorting mode that does not
result in algebraic loops involving your S-function, your
model will execute (assuming that the cause of this
segmentation violation is an incorrect direct feedthrough
setting on an input port).
See matlabroot/simulink/src/sfuntmpl_directfeed.txt
-------------------------------------------------------------
</blockquote>

Kann jemand damit etwas anfangen?
So, Problem gelöst durch neuen Rechner... Plötzlich funktioniert es.

Danke trotzdem für die Antworten!
Referenz-URLs