Verfasst am: 10.11.2009, 11:18
Titel: Kommunikation von GUI mit anderen mfiles
Hallo,
ich hab mich schon ein bisschen umgesehen gehabt, aber nichts gefunden was direkt auf mein Problem zutrifft, daher hier mein Problem:
Ich möchte für einen Pratktikumsversuch eine MATLAB-Anwendung erstellen, welche die Daten der Anlage ausliest, verwertet und dann wieder Werte ausgibt.
Das Problem ist, dass die Auswertung der Messdaten kontinuierlich erfolgen soll (was über ein m.file auch super läuft) nun sollen diese Werte in einer GUI angezeigt werden (also regelmäßig aktualisiert) und durch das GUI eingestellte Werte regelmäßig an das m.file und darüber an die Anlage übergeben werden.
Also brauch ich nun nen Tipp/Anleitung/usw. wie ich diese regelmäßig Abfrage und Übergabe der Daten realisieren kann.
mit uicontrol kannst du verschiedene Gui-Komponente (checkbox, text, bushbutton,....) in einer Figure erstellen.
Diese Komponente erstellst in einem eigenen Skript. Sie müssen gekennzeichnet durch 'Tag' (wichtig). Denn durch den 'Tag' kannst du auf Sie
zugreifen innerhalb einer Funktion oder Skript.
Für Jede bzw fast jede Komponente kannst du eine Callback function erstellen, die beim benutzen dieser Komponente ausgeführt wird.
Beispiel:
Hier ein Text und ein pushbutton. Der Text wird bei clicken vom button mit Hallo gefüllt.
Hier wird das GUI erstellt.
Code:
%Einfaches Beispiel
%Erstellen von GUI Komponenten
Puschbutton = uicontrol('Style', 'pushbutton', 'String', 'Text fuellen',...
'Position', [2015010070],'Tag','Button','callback','textfuellen');
Text = uicontrol('Style', 'Text', 'String', '','Fontsize',35,...
'Position', [17015015070],'Tag','Text');
an sich hilft es schon, aber ich glaube das weiß ich alles schon.
Mir geht es darum, dass das GUI kontinuierlich Daten zu einem mfile (oder Workspace) sendet und andere Daten empfängt und dann darstellt. Habe da noch nichts (für mich verständliches) gefunden.
Ja das geht schon eher in die Richtung eines Timers. Jedoch habe ich keine Ahnung wie und wo ich den Einbauen soll und wie genau ich die Daten übergeben kann.
Wälze im Moment alle möglichen Bücher in der Bibliothek, aber entweder bin ich zu blind/zu doof oder es gibt in den Büchern nix brauchbares.
Wegen der Datenübergabe dein Model ist das nur eine Software Simulation
oder hast du ein richtiges Hardware Model dann wäre die Frage über
welche Schnittstelle dieses mit deinem PC komuniziert.
Erstmal danke für das Beispiel. Ich werde mal sehen ob ich damit was anfangen kann.
Mein Model ist eine Dreitank-Anlage. Die Daten werden über einen Modbus an einen COM-Port gesendet, von welchem MATLAB die Daten liest/schreibt.
Das funktioniert soweit auch schon. Nur liegen die Daten dann im Workspace und ich hab noch keien Ahnung wie ich dem GUI beibringe sich die Daten zu holen
Hallo also ich denke das läuft soweit.
Nur hab ich jetzt das Problem, wenn ich mein Programm starte reagiert MATLAB auf nix mehr. Ich denke mal es liegt an der while-Schleife die ich da drin habe (als Endlosschleife).
Kann mir da einer ne Alternative verraten? Oder liegt es daran, dass die Schleife im Moment noch relativ wenig Befehle beinhaltet und somit einfach zu schnell ist?
Generel würde ich mit meinem Wissenstand sagen Nein.
Was macht den deine Funktion(M-File) das sie permanet laufen muss
aber nicht deine GUI machen kann (wo du den Timer hast)?
Gruss Fragewurm
_________________
Fehler jeglicher Art Dienen zur allgemeinen Belustigung
Momentan liest sie Messwerte aus (+Umrechnung) und gibt die Stellwerte aus.
Dabei werden alles in allem noch vier weitere mfiles benutzt, die die Kommunikation zwischen dem Modbus und Matlab übernehmen.
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.