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

App Designer, Echtzeitdaten vom Motor auswerten

 

chrischido
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2020, 10:08     Titel: App Designer, Echtzeitdaten vom Motor auswerten
  Antworten mit Zitat      
Hallo,

ich würde mich über eure Hilfe freuen. Zum Thema, ich habe eine Motosteuerung (NanoTec) und kann über die Befehle webwrite() bzw. webread() direkt mit der Steuerung (Objekte) über Matlab kommunizieren. Dies funktioniert bereits. Dafür verwende ich App Designer, um mir ein kleines Panel für die Bedingung des Motors und der Auswertung von Daten aufzubauen.

Meine Frage wäre zur Datenauswertung (z.B. aktuelle Drehzahl darstellen und plotten) wie ich dieses am besten umsetzen kann, z.B. über eine While-Schleife mit Abbruchbedingung und Abtastzeit?

Vielleicht hat jemand eine Idee. Vielen Dank! Lg Chris
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: 31.12.2020, 11:16     Titel:
  Antworten mit Zitat      
Hallo,

mir ist noch nicht ganz klar, wie man dir nun helfen kann. Das hängt ja davon ab, was du haben möchtest und wie webread/webwrite mit deinem Motor arbeiten.
Ich vermute mal, dass du mit den Befehlen Momentaufnahmen des Motors abfragen kannst. Ein Konstrukt wie
Code:
while (Abbruchknopf nicht gedrückt)
    % Motorzustand abfragen
    % Aktuelle Daten in App eintragen
end

wäre denkbar. Nachteil ist, dass du wohl die Datenaufnahme abbrechen müsstest, wenn du Motoreinstellungen ändern willst. Insofern kann es besser sein, einen Timer zu verwenden, der dann quasi im Hintergrund läuft.
https://de.mathworks.com/help/matlab/ref/timer-class.html

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
chrischido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2020, 15:41     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine Hilfe. Du hast es richtig interpretiert. Ich bekomme über den Befehl webread() immer die aktuellen Daten des Motors (Motorstrom, Drehzahl, Drehmoment...). Bei Änderungen in den Einstellungen soll alles beendet werden.


Code:
% aktueller Stand, effizient?
 app.stopp = false;
  app.done = 0;
       
  while(~app.stopp)
             
       
           app.actualVelocityEditField.Value = hex2dec(webread('2410/10'));
           pause(1/10);
             
               
           app.stopp = app.done;

  end
 


Aktuell ist ein Ausgabe der Daten schon möglich. Den Plotvorgang über die Zeit, könnte ich mit tictoc realisieren?

Vielen Dank Smile
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: 01.01.2021, 22:34     Titel:
  Antworten mit Zitat      
Hallo,

wieso tic/toc? Du brauchst doch nicht die Zeit zu stoppen?
Die Frage ist für mich eher, was du plotten willst: die momentanen Werte oder den Verlauf seit Beginn der Messung? In letzterem Fall würde ich die Daten-Eigenschaften des Plots (XData, YData) in der Schleife entsprechend anpassen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
chrischido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2021, 14:17     Titel:
  Antworten mit Zitat      
Grüße,

also das Plotten sollen über ein Start/Stopp Bottom erfolgen um die Momentanwerte darzustellen, die Zeit muss da nicht gestoppt werden.

lg Chris
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: 02.01.2021, 14:52     Titel:
  Antworten mit Zitat      
Hallo,

und was soll gegen was geplottet werden? Was hast du versucht, und welche Probleme sind dabei aufgetreten?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
chrischido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2021, 10:46     Titel:
  Antworten mit Zitat      
Hallo, ja hatte schon mal was probiert.

Funktioniert aber leider nicht richtig, Zeit wird auch nicht korrekt angezeigt.


Code:


   app.stopp = false;
   startTime = datetime('now');
       
        while ~app.stopp
           
        t = datetime('now') - startTime;    
        plot(app.actualVelocityUIAxes,t,hex2dec(webread('2410/10')))
       

        drawnow

        pause(1/10);
       
        app.stopp = app.done;
       
        end


 
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: 03.01.2021, 12:34     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Funktioniert aber leider nicht richtig

Heißt was?

Zitat:
Zeit wird auch nicht korrekt angezeigt.

Heißt was? Was möchtest du, und was passiert stattdessen?

Da ich das Beispiel nicht selbst ausführen kann, musst du wirklich so viel Information wie möglich zur Verfügung stellen. Die genaue Beschreibung des Problems ist oft schon ein großer Schritt zur Lösung.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
chrischido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2021, 16:59     Titel:
  Antworten mit Zitat      
Das Problem konnte gelöst werden:

https://www.mathworks.com/matlabcen.....ler?s_tid=prof_contriblnk

Vielen Dank. lg Chris
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 - 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.