WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

PCAN Simulink Blöcke in Realt-Time Umgebung mit xPC Target

 

xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2011, 09:35     Titel: PCAN Simulink Blöcke in Realt-Time Umgebung mit xPC Target
  Antworten mit Zitat      
Hi,

ich will CAN messages in Matlab loggen. Dafür habe ich ein Simulink-Modell erstellt, in dem ich die PCAN-Blöcke nutze. Im normalen Simulationsmodus funktioniert das auch mehr oder weniger gut. Allerdings will ich das Modell auf dem Target PC mit xPC Target laufen lassen, d. h. ich benötige eine xPC Target kompatible S-Function der Blöcke. Meine bisherige Vorgehensweise war, dass ich nach Einstellung der Simulationsparameter den CAN_Read-Block (s. Dateianhang) mit Rechtsklick --> "Real-Time-Workshop" --> Generate S-Function transormiert habe. In dem neu enstandenen Modell habe ich dann den Simulationsmodus auf External gestellt und in den Configuration Parameters --> "Real-Time Workshop" --> "System Target File" rtwsfcn.tlc gewählt. Anschließend bilde ich das Modell. Den entstandenen RTW-Block kopiere ich in das Zielmodell, dass auf dem Target PC laufen soll.

Wenn ich dann das Zielmodell auf den Target-PC laden will, kommen folgende Fehlermeldungen:


"Zielmodellname.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_CAN_Read" in Funktion "_Zielmodellname_initialize".
Zielmodellname.dll : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
NMAKE : fatal error U1077: ""[...]\microsoft visual studio 9.0\VC\BIN\link.EXE"": Rückgabe-Code "0x460"
Stop.
The make command returned an error of 2
Der Befehl "An_error_occurred_during_the_call_to_make" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."


Wo ist der Fehler?

Danke für eure Hilfe im Voraus...

P. S.: Die Fehlermeldung "Der Befehl "An_error_occurred_during_the_call_to_make" ist entweder falsch geschrieben oder
konnte nicht gefunden werden."
ist mein abosluter Favorit. Da fragt man sich doch: Was will mir der Dichter damit sagen?! Wink

Free-Version-Incl.SIMULINK-BLOCK.zip
 Beschreibung:
Hier sind die CAN-Blöcke...

Download
 Dateiname:  Free-Version-Incl.SIMULINK-BLOCK.zip
 Dateigröße:  96.21 KB
 Heruntergeladen:  1099 mal


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.06.2011, 14:35     Titel:
  Antworten mit Zitat      
Es ist sehr schwierig einzugrenzen wo der Fehler liegt. Ich kannte PCAN und den Hersteller bisher nicht. Ein offizieller MathWorks-Partner scheint PEAKS jedenfalls nicht zu sein. Das ist erstmal nicht negativ, aber bringt mich dazu bei der Frage "Soll das herstellerseitig gehen?".

Danach komen jede Menge Standardfragen:

Welches MATLAB Release? Für 32 oder 64 Bit? Auf 32 oder 64 Bit Windows?

Passt der MSVC 9 als unterstützter Compiler?

Gehen andere C Compiler Aktionen wie Erstellung eines enfachen MEX Files?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2011, 14:57     Titel:
  Antworten mit Zitat      
Also, diese Fragen kann ich schnell beantworten:

Matlab R2009b, win32, MSVC 9 sollte als Compiler passen, da ich das Zielmodell ohne die PCAN-Blöcke einwandfrei aufs Target laden kann (mit MSVC 9 kompiliert). Die mexfiles sind ja bereits bei den PCAN-Blöcken dabei...
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2011, 15:07     Titel:
  Antworten mit Zitat      
Der Linker braucht noch die spezifische Library für die CAN-Funktionalität und deswegen kommt die Meldung "nicht aufgelöstes externes Symbol "_CAN_Read" in ....".
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.06.2011, 15:21     Titel:
  Antworten mit Zitat      
Bei Peak gibt es ein Nutzerforum. Ist diese (bisher einzige) XPC Frage dieselbe Frage?

http://www.peak-system.com/forum/vi.....;p=349&hilit=xpc#p349

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2011, 15:55     Titel:
  Antworten mit Zitat      
@ Gast: Aber die spezifische Library (PCAN_USB.lib) ist doch in dem Directory. Habe extra cd zu dem PCAN-Verzeichnis, in dem die c-Files, Header und Library sind. Habe die ganzen Dateien auch schon mal separat eingebunden in den Configuration Parameters. Das hat das Problem auch nicht behoben. Oder meinst du etwas anderes?!

@ Andreas: Aus dem peak-Forum habe ich die Blöcke. Allerdings war die Problemstellung dort eine etwas andere...
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 09:39     Titel:
  Antworten mit Zitat      
Es sollte funz, aber sicher zu sein, bitte das makefile "xxx.mk" (im Code Verzeichnis) überprüfen. Dort sollte stehen wie:

S_FUNCTIONS_LIB = $(START_DIR)\blabla\PCAN_USB.lib

Falls nirgendwo "PCAN_USB.lib" steht, das Problem ist klar. Diese Zeile kommt vom Simulink Config -> Code Generation -> Custom Code -> Libraries.
Man könnte auch "quick & dirty" die "PCAN_USB.lib" Datei direkt in xxx.mk reinschreiben unter "LIBS = c:\blabla\PCAN_USB.lib" und über "xxx.bat" kompilieren. Bei Codegenerierung verschwindet aber diese Änderung, deswegen nur für Testzweck verwenden ..
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 14:16     Titel:
  Antworten mit Zitat      
Das Lib-Verzeichnis steht da in der .mk-file:

S_FUNCTIONS_LIB = c:\blabla\PCANlib\PCAN_USB.lib


Matlab meckert immer noch:

C:\PROGRA~1\MATLAB\R2009b\rtw\c\src\cg_sfun.h(21) : error C2373: 'CAN_ResetFilter': Neudefinition; unterschiedliche Modifizierer
c:\blabla\pcanlib\PCAN_USB.h(251): Siehe Deklaration von 'CAN_ResetFilter'


Jetzt hängt es anscheinend am header...

Hat vielleicht noch jemand einen Tipp parat?
 
xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 14:39     Titel:
  Antworten mit Zitat      
Die Antwort eben war von mir.

Vielleicht ist das Problem, dass keine .tlc erstellt wird. Der c-Code und die mex-File sind ja da, aber für xPCTarget braucht es noch die .tlc

Vielleicht findet er auch einfach nicht die mex-File. Kann ich das auch irgendwo in eingeben?
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 15:08     Titel:
  Antworten mit Zitat      
Das Problem ist beim Kompilierung, bwz. es passt Definition und Declaration zusammen - es ist nicht 100% identisch. Wenn da "unterschiedliche Modifizierer" steht, es fehlt irgendwo "const" bzw. "volatile". VS2010 ist relative strengt und erwartet alles richtg, was aber auch Sinn mach.
Bitte nach "CAN_ResetFilter" suchen und 100% vergleichen/anpassen. Es sollte in der CAN_USB.h Datei liegen (Zeile 251) und zweitemal in der cg_sfun.h Datei.
 
xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 16:26     Titel:
  Antworten mit Zitat      
so trivial ist das problem wohl leider nicht (vielleicht ist es aber auch viel trivialer Wink ). bin mir ziemlich sicher, dass dort kein fehler ist...

sonst noch eine idee? guck dir unbedingt mal die c-codes an. eigentlich ist alles da. sieht nach einer klassischen s-function aus. diese sollte eigentlich ohne probleme auf dem target-pc laufen. eigentlich...
 
xPC

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2011, 16:07     Titel:
  Antworten mit Zitat      
@ Gast: Hast du eien Idee, wo genau MSVS meckert? Irgendwie ist das eine sehr intransparente Fehlermeldung...
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.