Forum: PC-Programmierung Computer mit MatlabRealtime gesucht


von Waltraud B. (Gast)


Lesenswert?

Hi, ich beginne grade mit MatlabRealtime zu arbeiten, dazu programmiere 
ich Programme mit Simulink.

Wo laufen denn diese Programme drauf? Kann ich dazu jeden xbelibigen PC 
nehmen? Ist das Matlab Realtime ein eigenständiges Betriebssystem oder 
einfach sowas wie ein Treiber, der im Hintergrund wo läuft? Wenn ich 
jetzt in Matlab-Simulink meinen Code compilieren lasse, dann muss ich ja 
mit dem Compilat irgendwo hin, aber wohin genau? Kann ich dazu auch 
einen Arduino benützen oder einen Rspberry Pi?

von Alex W. (a20q90)


Lesenswert?


von Waltraud B. (Gast)


Lesenswert?

ja, aber wo läuft das Programm dann drauf? Wenn ich mit Simulink ein 
Modell gemacht und compiliert habe, kann ich es dann z.B. auf einem 
Raspberry Pi ausführen? Das steht in Deinem Link nicht drinnen.

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

eine gute Anlaufstelle für Deine Frage ist sicher Mathworks. Wenn Du auf 
der Übersichtsseite zu "Simulink Desktop Real-Time" auf den Link 
"Hardware Support" klickst erhältst du eine Auflistung der unterstützten 
Hardware.
http://de.mathworks.com/products/simulink-desktop-real-time/index.html
http://de.mathworks.com/hardware-support/simulink-desktop-real-time.html

Mit freundlichen Grüßen
Guido

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

Waltraud B. schrieb:
> ja, aber wo läuft das Programm dann drauf?

"Simulink Desktop Real-Time™ provides a real-time kernel for executing 
Simulink® models on a laptop or desktop running Windows® or Mac OS X." 
[http://de.mathworks.com/hardware-support/simulink-desktop-real-time.html]

Mit freundlichen Grüßen
Guido

von Waltraud B. (Gast)


Lesenswert?

Guido C. schrieb:
> "Simulink Desktop Real-Time™ provides a real-time kernel for executing
> Simulink® models on a laptop or desktop running Windows® or Mac OS X."

Das hab ich auch grad gelesen, aber was bedeutet das genau? Ich brauche 
also ein Echtzeitbetriebssystem - und dann? Kann ich dann das Simulink 
RealTime als Programm herunterladen, was sich dann in den Kernel 
reincompiliert? Oder gibts auch ein Programm, so dass ich einen 
separaten älteren Laptop bswp. nutzen kann, den mit meinem Haupt-PC 
verbinde und dann damit Programme rübersenden und da rauf laufen lassen 
kann? Dass verrät mir nämlich leider die Seite nicht :-(

von Waltraud B. (Gast)


Lesenswert?

Ich habe mir das grade angeschaut:

http://de.mathworks.com/hardware-support/simulink-desktop-real-time.html

Das sind ja z.B. lauter Einschub-Karten für ISA- oder PCI-Slots. Muss 
ich mir so eine Karte kaufen und die dann in den PC einbauen? Ein 
Raspberry Pi z.B. oder Arduino ist nicht darin aufgeführt. Aber es gibt 
doch auch ein Echtzeitkernel für den Raspberry Pi, würde der darauf 
nicht funktionieren mit dem Simulink?

von Waltraud B. (Gast)


Lesenswert?

Hi,

ich hab das hier grad im Internet gefunden:

http://www.osrtos.com/rtos/freertos

Kann ich das RTOs z.B. auf meinem Raspberry Pi installieren, dann auf 
meinem PC mit Simulink etwas machen und dass dann auf dem Raspberry mit 
RTOs laufen lassen und testen, was es macht?

von Stefan (Gast)


Lesenswert?

Nicht so OutOfTheBox wie du es gerne hättest. Wenn du es auf einem 
anderen System laufen lassen willst, musst du dir den Quellcode von 
deinem SimulinkModel ausspucken lassen (glaube ich eine weitere 
Kauflizens). In diesen musst du dann noch ein paar Sachen reintun, wie 
Signale, wo auch immer du die her bekommst.

Die nötigen Bibliotheken und Runtime-Umgebungen gibt es nicht für Linux. 
Sondern nur für Windows und MacOS.

von Oliver S. (oliverso)


Lesenswert?

Waltraud B. schrieb:
> on a laptop or desktop running Windows® or Mac OS X."

Es ist genauso, wie es da steht: Es läuft auf einem Laptop oder 
Desktop-PC unter Windows oder OS-X.

Was auch bedeutet, es läuft nicht auf und unter irgend etwas anderem...

Oliver

von icke (Gast)


Lesenswert?

Mhmm, das verwundert mich grade etwas.
Bei uns auf Arbeit haben wir von einer Partner Firma eine Matlab Runtime 
für Linux (Ubuntu 1204 64bit) und ein  kompiliertes Simulink Model.

von icke (Gast)


Lesenswert?


von Waltraud B. (Gast)


Lesenswert?

Oliver S. schrieb:
> Es läuft auf einem Laptop oder
> Desktop-PC unter Windows oder OS-X

Ja, aber was muss ich denn dann machen? Ich habe noch einen Laptop mit 
Windows drauf. Muss ich dann ein zusätzliches Programm noch 
installieren? Oder läuft es auch auf dem PC, wo ich mein Matlab drauf 
laufen habe? Oder muss ich irgendwie noch ein Programm installieren? Ich 
habe bei Download nichts weiter gefunden, was ich machen muss, damit das 
realtime-Programm läuft und wenn ich das Simulink-Realtime programm 
compiliere, dann krieg ich eine .bin-Datei und keine ausführbare 
exe-Datei, die ich starten könnte. Ich hatte gedacht, ich würde die .bin 
oder auch evtl eine .hex-Datei dann an das Zielsystem senden, das 
Zielsystem einschalten und dann läfut das Matlab-Simulinkmodell dort 
drauf als fertiges Programm, ist das nicht so?

von Oliver S. (oliverso)


Lesenswert?

Waltraud B. schrieb:
> ?

Vielleicht beschreibst du mal etwas genauer, was du eigentlich machen 
möchtest.

Oliver

von Waltraud B. (Gast)


Lesenswert?

Oliver S. schrieb:
> Vielleicht beschreibst du mal etwas genauer, was du eigentlich machen
> möchtest.

Ich will an einem Windows-PC mit Simulink/Matlab-Simulink ein Modell 
schreiben, dass fehlerfrei compilieren und auf einem anderen Computer 
dann ausführen lassen (was ich compiliert habe). Es gibt in dem Simulink 
so Blöcke, damit kann man z.B. was an- und ausstellen. Ich will auf 
meinem Raspberry damit dann z.B. eine Lampe an einem Pin an- und 
ausschalten. Oder wenn es auf einem Computer läuft mit Schnittstellen, 
weil so ein PC dann keine Pins hat, dann will ich z.B. über die serielle 
Schnittstelle eine Nachricht verschicken oder kriegen oder über das 
Netzwerk was an einen anderen Computer schicken. Die Blöcke dazu sind ja 
alle in dem Simulink da.

von Waltraud B. (Gast)


Lesenswert?

Hallo, ich habe das hier gefunden:

http://users.etech.haw-hamburg.de/users/hempel/projekte/xpc

Da ist von einem xPC-Target die Rede, was genau ist das? Ist das ein 
Programm, dass ich auf einem anderen Computer laufen lassen kann, damit 
das Matlab-Programm, dass compiliert wurde, dann darauf läuft?

Ist ein Matlab-Programm, dass ich mir compiliert habe, eigentlich ein an 
sich für sich lauffähiges Programm oder müssen dazu noch 
Zusatzbibliothken irgendwo anders vorhanden sein - wie in Windows z.B. 
DLLs, wo auch noch Funktionen vorhanden und drinnen sind? Oder geht das 
dann komplett ohne DLLs?

Es gibt doch für jedes System den individuellen Zielcompiler. Es gibt 
z.B. einen freien gcc-Compiler für arm-32, dann für arm-8 etc. Kann ich 
einfach mit Simulink dann etwas programmieren, mit dem speziellen 
Compiler compilieren, linken und dann auf dem Zielsystem draufflashen?

von Oliver S. (oliverso)


Lesenswert?


von X. O. (overflow)


Lesenswert?

Hallo,

vermutlich meinst du mit Realtime, die Matlab,Simulink, Stateflow 
"Coder" Toolboxen. Diese generieren aus deinem Matlab Code, C Code. Mit 
dem Code kannst du dann machen was du willst. ;)
Durch Anpassung der Schnittstellen und einem passenden Compiler wirst du 
den Code auch auf einem Mikrocontroller, Raspberry,... zum Laufen 
kriegen.
Wird aber je nach Anwendung ziemlichen Aufwand bedeuten.
Es gibt dann noch Embedded Coder, was in die ähnlicher Richtung geht.


Du kannst dir das aber so wie ich das sehe sparen. Der Raspi wird seit 
R2013a mit einer eigenen Toolbox unterstützt.

http://it.mathworks.com/hardware-support/raspberry-pi-simulink.html

von rcc (Gast)


Lesenswert?

xPC-Target ist bzw. war eine Lösung bei der ein bootfähiges 
Mini-Betriebssystem + das kompiliete Modell aus Matlab heraus erstellt 
wurde. Das kann man dann über Netz, Floppy oder was auch immer auf dem 
Ziel-PC starten und das kompilierte Modell wird da dann direkt 
ausgeführt.

Inziwschen verwendet das faste keiner mehr, MABx etc sind einfach 
komfortabler und für viele "Bastel-Boards" gibt es inzischen ja auch 
Targetkonfigurationen.

von Le X. (lex_91)


Lesenswert?

Um das Modell in C-Code zu überführen sind doch noch (teure) Tools wie 
Embedded Coder oder TargetLink erforderlich.
Hast du die?
Oder gibts da noch andere Möglichkeiten der Codegenerierung?

von Waltraud B. (Gast)


Lesenswert?

X. O. schrieb:
> Code, C Code.

Ach so, ich kriege dann C-Code, ich dachte, das Matlab nutzt dann gleich 
dass gnu/gcc, um daraus ein Programm zu machen. Also, ich mache jetzt 
sowas ähnliches, nur nicht mit dem Coder, sondern da drücke ich dann in 
Simulink auf den Buiild-Button und dann erhalte ich eine .bin-Datei und 
keinen C-Quellcode mehr. Es muss doch dann also schon irgendwas damit 
passieren.

von Waltraud B. (Gast)


Lesenswert?

rcc schrieb:
> gibt es inzischen ja auch
> Targetkonfigurationen.

ja, und es gibt doch dann für jede Platform den speziellen 
Target-GCC-Compiler, ich habe z.B. unterschiedliche Boards, da habe ich 
dann unterschiedliche gesehen. Es gibt z.B. von Atmel für 
unterschiedliche Atmels-Dinger verschiedenartige Compiler und ich 
dachte, man nimmt einfach einen speziellen Compiler, um dann das damit 
zu machen. Die gcc-Compiler sind doch meisstens kostenlos, darum doch 
ddas gcc.

von Waltraud B. (Gast)


Lesenswert?

Hi, ich habe jetzt einen alten Laptop mit Windows 7, einer Netzwerkkarte 
und einer seriellen Schnittstelle, ich will das ganze jetzt mit 
SimulinkRealtime ansteuern, indem ich in Simulink ein Programm schreibe 
mit meinem PC und dass dann auf dem Laptop zum Laufen kriege. Wie geht 
das genau? Da sind ja ein paar Links, so wie der hier:

Guido C. schrieb:
> "Hardware Support" klickst erhältst du eine Auflistung der unterstützten
> Hardware.
> http://de.mathworks.com/products/simulink-desktop-real-time/index.html
> http://de.mathworks.com/hardware-support/simulink-desktop-real-time.html

Leider steht da nicht drinnen, wie man das genau macht, dass das auch 
bei mir auf dem Laptop dann läuft. Muss ich dann auf dem Laptop auch das 
Matlab installiert haben oder reicht es dann einfach, ein compiliertes 
Matlab-Simulink-Modell dort rüberzukopieren und dann von da starten zu 
lassen? Wenn ja, wie geht das?

von Oliver S. (oliverso)


Lesenswert?

Oliver S. schrieb:
> Waltraud B. schrieb:
>> Ich will
>
> Dann mach doch.
>
> icke schrieb:
>> http://de.mathworks.com/products/compiler/mcr/?req...

Oliver

von Stefan H. (cheeco)


Lesenswert?

Hallo Waltraut,

Simulink Realtime bringt sein eigenes Betriebssystem mit! Das kann man 
direkt von Diskette oder USB-Stick starten. Auf dem Laptop deshalb kein 
Windows installiert sein. Eine bootbare Diskette oder USB-Stick kann man 
in Matlab mit dem Befehl "xpcbootdisk" oder 
"SimulinkRealTime.createBootImage" ein Menü öffnen, indem eine Bootdisk 
erstellt werden kann.

HTH,

Stefan

von physiker (Gast)


Lesenswert?

Also von Deinem ersten Link ausgehend steht doch alles da:

Simulink Coder generates C and C++ code from the model and the solver. 
Together with Simulink Coder, Simulink Desktop Real-Time creates a 
binary file of the model and solver using the included C compiler. The 
real-time kernel loads the resulting binary file and I/O device drivers, 
and establishes a connection with Simulink. In external mode, the model, 
solver, and I/O device drivers all execute in real time. You can achieve 
performance approaching 20 kHz in external mode.

Also: Simulink mus installiert sein mit diesem real time kernel (der 
wohl teile von Windows oder MacOS ersetzt). Dann in diesen das binary 
file laden, "external mode" starten und glücklich sein. Wie genau das 
Schritt für Schritt geht wird wohl in der Doku erklärt sein, aber dafür 
will ich jetzt nicht extra einen Account anlegen.

von Waltraud B. (Gast)


Lesenswert?

Stefan H. schrieb:
> "SimulinkRealTime.createBootImage" ein Menü öffnen, indem eine Bootdisk
> erstellt werden kann.

Hi,

ich hab das probiert, ich kann aber nicht einstellen, dass der eine CD 
erstellen soll, der meckert:
1
SimulinkRealTime.createBootImage
2
Current boot mode: BootFloppy
3
Error using SimulinkRealTime.createBootImage (line 110)
4
Invalid removable drive location: ''

Wenn ich das mache:
>>SimulinkRealTime.createBootImage" ein Menü öffnen, indem eine Bootdisk
>>erstellt werden kann.

dann kommt kein Menü, in dem ich was einstellen kann, sondern halt die 
Fehlermeldung, die ich oben grade erklärt habe, dass die kommt. Warum 
schreibst Du mir, dass ein Menü kommt, obwohl kein Menü kommt, was mache 
ich also falsch?

von Stefan H. (cheeco)


Angehängte Dateien:

Lesenswert?

Hallo Waltraud,

probier mal folgendes: Gib im Command-Windows xpcexplr ein.
Dann kommt eine Oberfläche, die wie im Bild aussieht. Mit Klick auf 
'Properties' kommst du ins Menü, in dem Du die Bootdisk erstellen 
kannst.

Grüße,

Stefan

von Waltraud B. (Gast)


Lesenswert?

Hi, dass klappt:

Stefan H. schrieb:
> Hallo Waltraud,
>
> probier mal folgendes: Gib im Command-Windows xpcexplr ein.
> Dann kommt eine Oberfläche, die wie im Bild aussieht. Mit Klick auf
> 'Properties' kommst du ins Menü, in dem Du die Bootdisk erstellen
> kannst.
>
> Grüße,
>
> Stefan

Ich hab jetzt auch den PC verbunden mit dem anderen PC.

Jetzt möchte ich folgendes machen:

Am Zielsystem - also dort, wo die CD mit dem Targetprogramm drauf 
gestartet ist - ist eine serielle Schnittstelle mit einem USB-Port 
drinnen, also keine richtige serielle Schnittstelle wie früher, sondern 
ein RS232-Simulator, der durch die USB-Schnittstelle bereitgestellt 
wird:

Sowas in der Richtung ist das, nur ein bißchen anders:

https://www.reichelt.de/?ARTICLE=163092&PROVID=2788&wt_mc=amc141526782519998&gclid=COf3leKd8skCFYpsGwodLLwJeA

Aber es funktioniert unter Windows.

Jetzt möchte ich mit Matlab etwas mit der seriellen Schnittstelle 
machen. Ich möchte mit Simulink etwas über diese Schnittstelle 
übertragen, z.B. ein Zeichen. Ich will das Programm in Simulink machen, 
compilieren, auf das Zielsystem übertragen, dort starten und dann dort 
damit von da aus Zeichen senden und empfangen, die ich dann auf einem 
zweiten Rechner mit serieller Schnittstelle zum Beispiel mit Putty sehen 
kann.

Wenn ich das Matlab-Real-Time-Betriebssystem auf dem Zielsystem starte, 
kommt ein schwarzer Bildschirm, wo unten steht - Matlab Realtime und ein 
bißchen etwas über den Speicher und die Anzahl der CPUs, sowie die 
eingestellt IP-Adresse zur Kommunikation mit dem Netzwerk über die 
Netzwerkschnittstelle. Und ich sehe den jetzt auch in meinem Netzwerk, 
wenn ich mir alle Netzwerkteilnehmer anzeigen lasse, dass der Rechner da 
ist und mit dem Target-Explorer kann ich auch eine Verbindung zu diesem 
Rechner aufbauen. Also ist schon mal eine Kommunikation geht und jetzt 
möchte ich das gerne mit der seriellen Schnittstelle ausprobieren, damit 
ich weis, ob das klappt oder ob das nicht klappt.

Aber kann ich mir auch die auf dem Zielsystem vorhandene Periferie 
anschauen, z.B. alle angeschlossenen USB-Geräte, alle Netzwerk-Karten, 
ggf. auch solche, die mit USB angeschlossen wurden und so, wie geht das?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.