MATLAB und LabVIEW - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: DLL & externer Code (/Forum-DLL-externer-Code) +---- Thema: MATLAB und LabVIEW (/Thread-MATLAB-und-LabVIEW) |
MATLAB und LabVIEW - Anderli - 15.02.2008 09:11 Hallo, Leute! Ich hab' ein Problem mit der Einbindung einer von MATLAB generierten DLL in LabVIEW. Die Versionen, welche ich verwende, sind MATLAB R2006a und LabVIEW 8.2.1. Ich verwende weiters das Simulation Interface Toolkit Version 3.2.0 zur Generierung einer DLL mittels des Real-Time Workshops. Folgende Schwierigkeiten haben sich ergeben: Grundsätzlich möchte ich in MATLAB Simulink einen Stateflow modellieren und hab' zu Testzwecken zwei Inports (3x3-Matrix) verwendet und im Zuge meines Flows werden diese beiden miteinander multipliziert und anschließend eine Inverse-Matrix erstelt. Diese soll dann mittels Outport wieder an die aufrufende Instanz übergeben werden. Das ganze hab ich jetzt von MATLAB kompilieren lassen und eine DLL erstellt. Diese hab' ich dann in LabVIEW eingebunden, wobei ich folgende Methoden in angegebener Reihenfolge verwendet habe: 1. Initialisierung des Modells: NIRT_InitializeModel Parametername Parametertyp return double finaltime double outTimeStep double* (Pointer to Value) outNumInPorts double (Pointer to Value) outNumOutports double (Pointer to Value) numTasks double (Pointer to Value) 2. Durchführen und Durchlaufen des Stateflows: NIRT_Schedule Parametername Parametertyp return double inData double* (3D-Array) outTime double* (Pointer to Value) dispatchtasks long * (Pointer to Value) 3. Ermitteln des Outputs: NIRT_PostOutputs Parametername Parametertyp return long outData double* 4. Abschließen und Finalisieren des Modells: NIRT_FinalizeModel Parametername Parametertyp return long Jetzt ist es aber so, wenn ich diesen Ablauf in LabVIEW durchspiele, dass die gesamte Entwicklungsumgebung abstürzt und einen Speicherfehler meldet. Das Lustige an dieser Sache ist jedoch jenes Faktum, dass die DLL ohne die Berechnung der Inverse-Matrix keine Probleme bereitete. Hat von euch irgendwer eine Ahnung was ich falsch mache oder warum kann ich eine 3x3-Matrix nicht mittels einer von MATLAB generierten DLL invertieren? Liebe Grüße Stefan MATLAB und LabVIEW - thomas.sandrisser - 15.02.2008 17:45 Post mal die DLL... |