Verfasst am: 19.08.2008, 11:31
Titel: fehlerhafter Ablauf eine Unterprogramm nach Starten mit GUI
Hallo,
ich als Anfänger habe wieder mal eine Frage. Ich habe mir eine Gui erstellt, bei welchem mittels Pushbutton eine Unterprogramm ( in einem seperaten .m-File) ausgeführt werden soll. Das heisst es wird einfach in der function vom Pushbutton das Unterprogramm aufgerufen. Dabei kommt jedoch folgende Fehlermeldung:
Code:
??? Error using ==> sim Error evaluating expression 'T_Start' for 'Start time' specified in the Configuration Parameters dialogfor block diagram 'Plot_Daten_01'. It must be possible to completely evaluate expressions in block-diagram parameter fields either in the model or source workspace.
Error in model and source workspaces: Error using ==> sim
Undefined function or variable 'T_Start'.
Wenn ich das Unterprogramm im Matlabdesktop ausführe, funktioniert es vollständig.
Wenn ich danach das GUI erneut ausführe mit dem Pushbutton der dieses Unterprogramm aufruft, funktioniert es auch.
Nach langem hin und her habe ich zum testen die Variable T_Start , bei welcher die Fehlermeldung auftrat mit clear gelöscht.
Danach wieder die GUI ausgeführt und es funktionierte wieder nicht.
Diese Variable T_Start wird erst im Unterprogramm gesetzt.
Ich verstehe nicht, warum das Unterprogramm die Variable nicht setzt, wenn ich es mit GUI ausführen lasse.
Kann mir bitte jemand weiterhelfen?
Ja, das hab ich mir auch überlegt mit dem Zugreifen. Nur wie gesagt, die Variable wird in dem Unterprogramm gesetzt. Deswegen dachte ich dass es doch egal ist ob ich das Unterprogramm so ausführe oder mit nem Pushbutton. also hier mal paar Code-Fragmente, ich hoffe die sind ausreichend:
Zuerst das Unterprogramm (programm_03.m):
Code:
lesen = 1;
messung = 3;
if(lesen > 0)
Lese_csv_02;
save('c:\temp\dds21\Daten_01.tmp','Daten_Msg1','Daten_Msg2',...
'pos_wechsel_01','pos_wechsel_02','Zeit_01','Zeit_02');
else load('c:\temp\dds21\Daten_01.tmp','-mat');
end closeall;
% --- Executes on button press in Start_Auswertung_push. function Start_Auswertung_push_Callback(hObject, eventdata, handles) % hObject handle to Start_Auswertung_push (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Datenpfad = handles.Pfad
programm_03 % Aufruf des Rahmenprogramms zur Auswertung der Daten
das Brett scheint weg zu sein es funktioniert!
Frage: Mit assign wird eine Variable mit einem bestimmten Wert im bestimmten Workspace festgelegt, sehe ich das richtig?
und wieso geht es nur so?
Ich arbeite nicht viel mit Simulink, aber ich glaube wenn du einen Block-Parameter so einlesen willst, dann versucht Matlab ihn aus dem 'base'-Workspace zu holen...
ich danke dir nochmals.
Aber es wäre für mich auch interessant zu erfahren wie das ist mit Simulink.
Gruß
Robert
Einstellungen und Berechtigungen
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
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.