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

NI Data Acquisition in appdesigner funktioniert nicht

 

zarvin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2018, 09:22     Titel: NI Data Acquisition in appdesigner funktioniert nicht
  Antworten mit Zitat      
Code:

devices = daq.getDevices
s = daq.createSession('ni')
addAnalogInputChannel(s,'DEV1',0,'Voltage')

s.Rate = 1000
s.DurationInSeconds = 5
s.NotifyWhenDataAvailableExceeds = 10

lh = addlistener(s,'DataAvailable', @(src,event) plot(event.TimeStamps, event.Data))

s.startBackground();
 


Dieser Code funktioniert und öffnet einen Plot wenn ich ihn außerhalb des appdesigners laufen lasse. Sobald ich den Code in meine App einfüge (soll per buttonpush abgespielt werden) funktioniert gar nichts mehr.

Hat jmd eine Idee woran das liegen könnte? Kremelbot du scheinst fast denselben code zu haben, der bei dir allerdings funktioniert.
Vielen Dank für eure Hilfe


Harald
Forum-Meister

Forum-Meister


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

was heißt denn "funktioniert gar nichts mehr"? Bekommst du eine Fehlermeldung? Welche?

Bei Graphikbefehlen muss man in App Designer immer das Koordinatensystem angeben, also hier
Code:
lh = addlistener(s,'DataAvailable', @(src,event) plot(app.UIAxes1, event.TimeStamps, event.Data))

bzw. entsprechend angepasst, wenn dein Koordinatensystem anders heißt.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2018, 17:04     Titel: Re: NI Data Acquisition in appdesigner funktioniert nicht
  Antworten mit Zitat      
Hallo Harald,

danke für deine Antwort. Eine Fehlermeldung bekomme ich nicht. So wie der Code oben steht, öffnet sich beim Ausführen eine separate Figure, die mir die erhobenen Daten für das angegebene Zeitfenster plottet.

Wenn ich diesen Code unverändert in den ButtonPushCallback im App Designer einfüge, dann sollte sich nach Click auf den Button ja ebenfalls dieses separate Fenster öffnen, was aber nicht geschieht. Da nicht einmal das funktioniert, klappt das plotten in einen in die App integrierten Graphen mit dem Zusatz (app.UIAxes...) auch nicht.
 
Harald
Forum-Meister

Forum-Meister


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

erste Frage ist, was du nun eigentlich möchtest.
Soll der Plot nun innerhalb oder außerhalb der App dargestellt werden?

Zitat:
Wenn ich diesen Code unverändert in den ButtonPushCallback im App Designer einfüge, dann sollte sich nach Click auf den Button ja ebenfalls dieses separate Fenster öffnen

Ich kenne es so, dass App Designer Fehler wirft, wenn man plot ohne Koordinatensystem verwendet. Konstrukte mit anonymen Function Handles habe ich da aber noch nicht verwendet.

Ich kann das Problem mangels NI so nicht reproduzieren. Im Zweifelsfall mal beim Technischen Support von MathWorks nachfragen. Dabei bitte auch das verwendete Release angeben.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2018, 13:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

final möchte ich, dass die Daten durch Button click in meinem UI angezeigt werden.
Code:
 devices = daq.getDevices

            %session erstellen
            s = daq.createSession('ni')
            addAnalogInputChannel(s,'DEV1',0, 'Voltage')

            %abtastrate in Hz und Aufnahmedauer
            s.Rate = 1000
            s.DurationInSeconds = 5
            % plottet soblad fesstgelegte Anzahl an Datenpunkten generiert ist
            s.NotifyWhenDataAvailableExceeds = 10

            lh = addlistener(s,'DataAvailable',@(src,event) plot(app.UIAxes,event.TimeStamps, event.Data))
s.startBackground();


Da das darstellen innerhalb der App nicht funktionert. Habe ich den Code so geändert, dass der Plot per Button Click außerhalb der App dargestellt wird. Das funktioniert leider auch nicht. Wenn ich diesen Code jedoch ohne Button Click (mit F9) ausführe, dann funktioniert es.
Ich vermute, dass der App designer ein Problem mit dem listener hat.
 
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.