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?
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.
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
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
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 :-(
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?
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?
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.
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
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.
http://de.mathworks.com/products/compiler/mcr/?requestedDomain=www.mathworks.com Also kann es auch auf einem Raspberry Pi laufen.
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?
Waltraud B. schrieb: > ? Vielleicht beschreibst du mal etwas genauer, was du eigentlich machen möchtest. Oliver
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.
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?
Waltraud B. schrieb: > Ich will Dann mach doch. icke schrieb: > http://de.mathworks.com/products/compiler/mcr/?req... Oliver
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
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.
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?
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.
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.
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?
Oliver S. schrieb: > Waltraud B. schrieb: >> Ich will > > Dann mach doch. > > icke schrieb: >> http://de.mathworks.com/products/compiler/mcr/?req... Oliver
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
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.
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.