LabVIEWForum.de
Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module - 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: Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module (/Thread-Simulink-Modelle-mitLabVIEW-Embedded-nutzen-mittels-Simulation-Interface-Toolkit-Control-Design-and-Simulation-Module)



Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module - amin - 09.07.2009 14:22

Hallo,

ich habe ein Matlab-Simulink Modell, welches ich gerne in LabVIEW Embedded for ARM nutzen würde um es auf ein MCB2300 nutzen würde.
Jetzt hatte ich zuerst probiert mit Hilfe des des Simulation Modell Converters aus dem "Control Design and Simulation Module" das Simulink mdl in ein LabVIEW vi zu übersetzen. Jedoch ist das Ergebnis sehr ernüchternd, es fehlen eigentlich alle Leitungen und es ist kaum überschaubar ob die Blöcke das tuen was sie sollen, falls sie überhaupt Logik enthalten.

Daraufhin habe ich versucht mittels des "Simulation Interface Toolkit" eine LabVIEW DLL zu erstellen. Dieses funktioniert bei installiertem "Simulation Interface Toolkit" über den RealTimeWorkshop aus Simulink. Hier habe ich als Hardware den ARM7 der auf dem MCB ist ausgewählt und als System Target habe ich die vom "Simulation Interface Toolkit" enthaltene nidll.tlc ausgewählt. Wenn ich jetzt Mit Build alles erstelle, bekomme ich jedoch nur C-Code und keine fertige DLL für LabVIEW (die so wie ich es verstanden habe aber eigentlich erstellt werden hätte sollen).

Kann mir jemand helfen wie ich das am besten mache ?

Gruß und Danke

amin


Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module - amin - 09.07.2009 14:37

Hab´s jetzt doch hinbekommen die DLL zu erstellen, man muss wohl die Option "Generate Makefile" im Real-Time-Workshop aktiviert haben, zumindest wird dann eine DLL erstellt.


Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module - amin - 10.07.2009 15:20

Hallo,

wollte nur mal den aktuellen Stand mitteilen. Ich habe jetzt zusätzlich mal testweise sehr einfache Simulink Modelle gebastelt und diese mit dem "Control Design and Simulation Module" in eine LabVIEW vi übersetzt. Diese scheinen problemlos zu funktionieren. Jedoch nur auf dem PC und nicht auf dem ARM. Der Grund dafür ist, dass die Logik der generierten VI in einer Simulation Loop ausgeführt wird und diese ist wohl nicht kompatibel mit "Embedded for ARM".

Werd´s daher wohl weiter mit der DLL probieren.


Simulink Modelle mitLabVIEW Embedded nutzen mittels "Simulation Interface Toolkit"/"Control Design and Simulation Module - amin - 17.07.2009 08:51

Hallo,

da es hier offenbar ehr weniger Erfahrungen mit dem SIT und CDSM gibt, hier mal mein aktueller Stand.

Also das SIT bietet nur Ein- und Ausgänge zu einer Matlab Simulation, diese kann nicht auf die Hardware gebracht werden, auch nich per DLL.

Mit dem CDSM, soll laut Tutorial (http://zone.ni.com/devzone/cda/tut/p/id/7436):
Zitat:Once you convert the model into LabVIEW, you can use the wide variety of hardware calls to communicate with physical words through analog I/O, serial, CAN, and so on. You can also deploy code used with this path into real-time targets such as NI CompactRIO or PXI hardware using the LabVIEW Real-Time Module. C code generation using the LabVIEW Microprocessor SDK (Software Development Kit) and the LabVIEW Embedded Module for ARM Microcontrollers is also supported.
Somit sollte der das umgewandelte Modell eigentlich auch auf Hardware laufen. Jedoch ist dieses bei mir nicht der Fall und ich finde auch keine Lösung dafür. Der Grund des Problems scheint der zu sein, dass das Umgewandelte System immer in einer Simulationsschleife erstellt wird. Aus der man die Elemente auch nicht rausholen kann. Diese Schleife verursacht aber bei der Code Erstellung bei mir generell folgenden Fehler:
Zitat:.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_FinalizeModel (referred from add.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_Manager (referred from add.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_SetFinishedLate (referred from add.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_GetSimErrorInfo (referred from nilvsim_getmodelerror.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_GetSimErrorString (referred from nilvsim_getmodelerror.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_GetBlockNameAndCallChain (referred from nilvsim_getblocknameandcallchain.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_GetBlockNameAndCallChainSizes (referred from nilvsim_getblocknameandcallchain.o).
.ObjLabVIEW.axf: Error: L6218E: Undefined symbol SIM_InitializeModel (referred from nilvsim_initialize.o).
Dieses ist selbst bei den einfachsten Inhalten so, wodurch ich davon ausgehe, dass es mit dieser Simulationsschleife zusammenhängen muss.