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

Msgbox oder Dialogfenster in Simulink

 

Mope_D
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2012, 12:55     Titel: Msgbox oder Dialogfenster in Simulink
  Antworten mit Zitat      
Hallo liebe Matlabforisten,

ich stehe vor einem Problem bei dem ich nicht weiterkomme. Auch stundenlange Google- und GOMatlabsuche blieben erfolglos.
Ich arbeite zurzeit an einer Trocknersimulation die fast fertig ist. Ich möchte nun noch eine Funktion einbauen, so dass unrealistische Eingabewerte die Simulation zum Abbruch bringen und den Nutzer auf die falschen Eingabewerte aufmerksam macht anstatt einfach als Ergebnis '0' auszugeben. Dazu vergleiche ich mit einem Relational Operator die Eingangswerte auf Ober- und Untergrenzen. Sollte ein Wert die Grenze überschreiten wird ein STOP-Block aufgerufen und mit einer if-Funktion ein spezifischer Fehlercode an einen Matlabfcnblock gesendet. In diesem wollte ich nun folgenden Code einfügen:

Code:
function fcn(Fehlercode)

%#codegen

switch Fehlercode
    case 1
     msgbox('Trocknungstemperatur zu niedrig')  
    case 2
     msgbox('Trocknungstemperatur zu hoch')  
end;


Nun scheint aber eine msgbox in embedded functions nicht zu funktionieren.

Gibt es irgendeine Möglichkeit mit dem Nutzer des Programms zu interagieren - ihm irgendwie diese Fehlermeldungen anzuzeigen?

Zum besseren Verständnis habe ich den relevanten Teil des Simulinksystems angehängt.

Mit freundlichen Grüßen,
Moritz

Fehlercode.jpg
 Beschreibung:

Download
 Dateiname:  Fehlercode.jpg
 Dateigröße:  53.91 KB
 Heruntergeladen:  724 mal
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2012, 09:39     Titel:
  Antworten mit Zitat      
Wie werden die Eingabewerte eingegeben? Als Maskparameter? Dan könntest du callback funktionen vom Constant Block verwenden. Siehe dir das Bild als einfaches Beispiel an. Habe da die Callback Funktion "Simulations Start" benutzt. Vielleicht hilft dir das.

hinweisfenster.png
 Beschreibung:

Download
 Dateiname:  hinweisfenster.png
 Dateigröße:  125.42 KB
 Heruntergeladen:  781 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Mope_D
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2012, 15:14     Titel:
  Antworten mit Zitat      
Hallo knilumis_baltaM,

danke für deine Antwort. Ich habe vorher noch nie von Maskparametern gehört, also
habe ich versucht mich schlau zu machen. Eigentlich sollten die Parameter auf der
obersten Ebene durch einfache Constant-Blöcke gesetzt werden. Die Mask-Variante
ist aber als Eingabe deutlich schöner.
Ich habe allerdings noch Probleme bei der Ausführung. Bei einem Testsystem bekomme
ich immer den Fehler

"Undefined function or variable 'temp'".

Also habe ich die Variable "temp" in Matlab deklariert. Jetzt ist es aber egal was
ich in die Mask eingebe, die StartFcn in den Block Properties bezieht sich immer auf
den Startwert in Matlab. Dadurch macht dann die if-Abfrage auch keinen Sinn. wie
hast du das hinbekommen? Im Anhang habe ich die Maskeinstellungen für den Constant-Block
gepostet.

MfG,
Moritz

MaskParameter.JPG
 Beschreibung:

Download
 Dateiname:  MaskParameter.JPG
 Dateigröße:  67.84 KB
 Heruntergeladen:  780 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2012, 08:16     Titel:
  Antworten mit Zitat      
Ich hab dir mal zwei Möglichkeiten zum "range check" im Testmodel gemacht. Schau mal, ob du es jetzt gebrauchen könntest.

mask_test.mdl
 Beschreibung:
Matlab 2010b

Download
 Dateiname:  mask_test.mdl
 Dateigröße:  32.18 KB
 Heruntergeladen:  498 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Mope_D
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2012, 15:46     Titel:
  Antworten mit Zitat      
Hallo knilumis_baltaM,

ich habe das Problem mit deiner Testdatei lösen können. Ich hatte vergessen die Variable
in Anführungszeichen zu setzen. Außerdem habe ich die Version mit der callback function
bei Simulationsstart benutzt, da es irgendwie bei der dialog callback function zu Problemen
kam. Jetzt funktioniert es.

Danke nochmal für deine Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2025 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.