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

m.file von GUI in Simulink via Matlab Function

 

gydoh
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2015, 11:08     Titel: m.file von GUI in Simulink via Matlab Function
  Antworten mit Zitat      
Hallo liebe Leute,

ich habe leider nicht sehr viel Erfahrung mit Matlab und hoffe ihr könnt mir helfen.

Ich habe mit guide eine GUI (GUI_verlaeufe) erstellt. Diese soll jetzt aber über Simulink laufen, da das ganze Programm über eine Steuerung laufen soll, die nur mit Simulink arbeiten kann. Ich habe mein m.file in Simulink in einen "matlab-function"-Block geladen. leider bekomme ich folgende Fehlermeldung:

The function 'gui_mainfcn' is not supported for standalone code generation. See the documentation for coder.extrinsic to learn how you can use this function in simulation.

Kann mir jemand sagen wie ich coder.extrinsic anwende? Ein Beispielcode wäre super!!

Hier mein Code:

Code:

function y = fcn()
%#codegen


GUI_verlaeufe();
y = 1;


Vielen Dank!!!
Private Nachricht senden Benutzer-Profile anzeigen


gydoh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2015, 11:28     Titel:
  Antworten mit Zitat      
Oder gibt es eine andere Möglichkeit ohne dass ich mein GUI wieder neu programmieren muss?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.11.2015, 13:12     Titel:
  Antworten mit Zitat      
Hallo,

in der Dokumentation von coder.extrinsic findest du eine ausführliche Beschreibung inkl. Beispielcode.
Code:
doc coder.extrinsic


Das bedeutet dann allerdings, dass in jedem Simulationsschritt die GUI ausgeführt wird. Ist das wirklich das, was du möchtest?

Es ist weitaus üblicher, dass man eine GUI erstellt und in dieser über sim ein Simulink-Modell ausführen lässt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gydoh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2015, 14:19     Titel:
  Antworten mit Zitat      
Ich habe meine GUI komplett in Matlab erstellt und benötige Simulink eigentlich nicht um mein GUI laufen zu lassen. Aber da das ganze nun auf eine Beckhoff-Steuerung gespielt werden soll, auf der nur Simulink laufen kann, muss ich das ganze irgendwie in Simulink implementieren. Gibt es dafür eine einfachere Möglichkeit?

Wo und wie würde ich den Befehl coder.extrinsic einsetzen? Ich kann mit der Matlab Hilfe leider nicht viel anfangen. Ich habe schon ein wenig ausprobiert, komme aber zu keiner Lösung. Danke für die Hilfe!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.11.2015, 14:37     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wo und wie würde ich den Befehl coder.extrinsic einsetzen?

Das ist klar im Beispiel in der Doku zu erkennen. Ich könnte dir hier höchstens die Doku übersetzen.

Zitat:
Ich kann mit der Matlab Hilfe leider nicht viel anfangen

Wo genau liegen die Probleme? Hast du dir den von mir geschickten Link angesehen? Wenn nicht, was?

Zitat:
Ich habe schon ein wenig ausprobiert, komme aber zu keiner Lösung.

Was hast du versucht, und welche Probleme sind dabei aufgetreten?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gydoh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 16.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2015, 14:49     Titel:
  Antworten mit Zitat      
Wenn ich den Befehl coder.extrinsic(fcn) benutze, wird mir folgende Fehlermeldung ausgegeben:

Arguments to coder.extrinsic must be constant strings.

Ist es demnach überhaupt möglich diesen Befehl dafür zu nutzen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.11.2015, 15:17     Titel:
  Antworten mit Zitat      
Hallo,

ist das denn der genaue Befehl, den du verwendest??

Die Fehlermeldung sagt ja, dass 'gui_mainfcn' nicht für die Codegenerierung unterstützt wird, also müsste auch das hinzugefügt werden.
Code:
coder.extrinsic('gui_mainfcn')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Johnny_Schokolade

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2015, 13:55     Titel: coder.extrinsic
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein Problem zum gleichen Kontext. Zuerst hatte ich die Fehlermeldung wie vorhin angeführt und diese habe ich behoben in dem ich folgendes gemacht habe.
Code:
function(varargin)

coder.extrinsic('gui_mainfcn');
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
   
    gui_mainfcn(gui_State, varargin{:});
end

Jetzt erhalte ich leider den Fehler

Code:
Structures containing function handles cannot be passed to extrinsic functions.


Hierzu habe ich leider nichts gefunden im www

weiß dazu jemand etwas?

Viele Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.12.2015, 04:47     Titel:
  Antworten mit Zitat      
Hallo,

Code:

ist keine gültige Syntax.

Zur Meldung an sich: man könnte höchstens versuchen, die Function Handles in Strings umzuwandeln (func2str). Ich kann dir aber nur das sagen, was ich auch dem ursprünglichen Fragesteller gesagt habe: ich halte das Vorhaben in der Form nicht für zweckmäßig. Generell führt man aus einer GUI heraus ein Simulink-Modell aus, nicht umgekehrt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Johnny_Schokolade

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2015, 13:58     Titel:
  Antworten mit Zitat      
Vielen Dank Harald für deine Antwort! Leider habe ich mich vielleicht nicht korrekt ausgedrückt bzw. kenne ich mich mit Simulink nicht wirklich aus.

Ich möchte aus einem m.-file eine exe-file erzeugen mit dem Coder.

Zu Beginn hatte ich gedacht der Coder macht das für mich schon aber leider falsch gedacht.

Ich hatte zu Beginn der Funktion das
Code:


nur leider war die erste Fehlermeldung, dass varargout nicht zulässig ist. Deshalb habe ich nach Recherche die erste Zeile geändert. Damit hatte ich keine Fehlermeldung mehr. Jetzt steht der Coder an der oben erwähnten Fehlermeldung und ich bin eure Beiträge gestoßen.

Ich denke das der Fehler wieder an mir liegt aber der Matlab-Coder überzeugt mich derzeit wenig, wenn ich schon bei den ersten Zeilen meines GUI, die automatisch von Matlab erzeugt werden Fehlermeldungen bekomme.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.12.2015, 14:46     Titel:
  Antworten mit Zitat      
Hallo,

die Frage hat ja dann nur sehr am Rande mit dem ursprünglichen Thema zu tun.

Zitat:
Ich möchte aus einem m.-file eine exe-file erzeugen mit dem Coder.

Für diesen Zweck ist eher MATLAB Compiler gedacht als MATLAB Coder.

Zitat:
der Matlab-Coder überzeugt mich derzeit wenig, wenn ich schon bei den ersten Zeilen meines GUI, die automatisch von Matlab erzeugt werden Fehlermeldungen bekomme.

MATLAB Coder unterstützt nur bestimmte Befehle und Konstrukte. Dies ist auch klar so dokumentiert:
http://de.mathworks.com/help/simuli.....on--categorical-list.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Johnny_Schokolade

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2016, 12:34     Titel:
  Antworten mit Zitat      
Vielen Dank Harald
 
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.