goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Digitale Signalverarbeitung in der Nachrichtenübertragung

Fachkräfte:
Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Entwicklungsingenieur Emissions-Modellierung (m/w)
Erstellung Modellstrukturen in Matlab/Simulink zur Abbildung von Abgasanlagen
MBtech Group GmbH & Co. KGaA - Stuttgart

Entwicklungsingenieur Steuergerätetest Nutzfahrzeuge (m/w)
Testing von Antrieben, Bremsen sowie Fahrerassistenzsystemen, Ergebnisanalyse
MBtech Group GmbH & Co. KGaA - Stuttgart, Mannheim, München

Senior Software-Entwickler (m/w)
Implementierung von SW-Entwicklungen, Erstellung von Funktionsmodellen
MBtech Group GmbH & Co. KGaA - München

Systemingenieur/in mit Arbeitspaketverantwortung im Bereich Absicherung Automotive
Absicherung von Rückwirkungen der Hardwarestreuung auf Softwareumfänge
ESG Elektroniksystem- und Logistik-GmbH - München

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

ActiveX Control mit MATLAB GUI steuern

 

Baltam
Forum-Anfänger
Forum-Anfänger

Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 18:46     Titel: ActiveX Control mit MATLAB GUI steuern
  Antworten mit Zitat      
Hallo zusammen,

ich hab einen ActiveX Control von einer DAQ-Karte.
Mit Visual Basic kann ich die Methoden, Klassen, Eigenschaften die in diesem ActiveX Control enthalten sind.

Und ich möchte einen Button im GUI erstellen wo ich die zutreffende Methoden vom ActiveX Control beim Klicken sende.

Das mit dem ActiveX Control im GUI zu laden hat schon geklappt mit

Code:
actxcontrol ( 'meinActX', [450,300,1,5] )


Wie soll das gehen wenn ich auf den Button Start in mein GUI clicke dass dieses Befehl an die Hardware(DAQ-Karte)gesendet wird.. z.B
Code:
set (meinActX,'Req_subsystem','DL_DEVICE');  


indem meinActX ist der ActiveX Control,
Req_subsystem ist eine Methode in ActiveX Control,
DL_DEVICE ist eine Eigenschaft der Methode Req_subsystem.


Ich hoffe jemand kann mir helfen, oder soll ich die Frage in andere Section stellen ?


Danke
Private Nachricht senden Benutzer-Profile anzeigen


Linus
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 69
Anmeldedatum: 30.08.10
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 30.08.2010, 15:10     Titel: Re: ActiveX Control mit MATLAB GUI steuern
  Antworten mit Zitat      
Ich würd versuchen, es ungefähr so zu regeln:

Code:
hActX =  actxcontrol ( 'meinActX', [450,300,1,5] );
hActX.Req_subsystem = 'DL_DEVICE';

Usw...

Das steht hier beschrieben:
http://www.mathworks.de/access/help.....rnal/bqdwu3j.html#bqd8yq0

Ansonsten etwas allgemeiner:
http://www.mathworks.de/access/help.....lab_external/bqdwu3j.html

Der Befehl actxserver() könnte Dir da vielleicht auch helfen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Baltam
Forum-Anfänger
Forum-Anfänger

Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2010, 15:50     Titel:
  Antworten mit Zitat      
Danke für die Antwort.
Die Syntax was ich geschrieben habe ist auch richtig. ich habe beide probiert. Matlab kann alle Methoden und Eigenschaften lesen, ausser die Refresh methode.

Die Refresh methode ist nötig um die Einstellung an ActX zu feuern.

z.B. :

Code:

AIsr = actxcontrol ( 'MeinCOM.ACTX', [450,300,1,5] )
set (AIsr, 'Req_DLL_name', ' ');
set (AIsr,'Req_device' , 0 );  
set (AIsr,'Req_op' , 'DL_INITIALIZE' ) ;
set (AIsr,'Req_subsystem','DL_DEVICE');
set (AIsr,'Req_mode' , 'DL_OTHER');
AIsr.Refresh


d.h. es wird gewartet bis die Refresh methode durchgefürt wird, damit die oberen Einstellungen gesendet werden.


Ich weiss nicht warum MATLAB, ausgerechnet diese Methode nicht durschfürt.


Kann jemand vielleicht helfen ??
Private Nachricht senden Benutzer-Profile anzeigen
 
Linus
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 69
Anmeldedatum: 30.08.10
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 30.08.2010, 16:43     Titel:
  Antworten mit Zitat      
Stichwort Funktion-Handles. Vielleicht klappt das hier:
Code:

AIsr.Refresh();
 


Nur zum Vergleich:
Code:

test = @sin();

test
test()
 


Zwei verschiedene Ergebnisse. Ich hoffe das ist der Knackpunkt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Baltam
Forum-Anfänger
Forum-Anfänger

Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2010, 18:19     Titel:
  Antworten mit Zitat      
Prima, Vielen vielen Dank.. Surprised

Obwohl ich die Schreibweise schon mal probiert habe Smile

Jetzt klappt es..

Noch eine Frage, falls du dich mit DAQ auskennst!!

Jetzt das es mit Counter/Timer Subsystem geklappt hat, muss ich analoge Input Signale ploten und auch in txt oder xls datein speichern.
Aber da ich die ActiveX Control auch für die analoge Signale(bzw. Analog Subsystem) benutzen werde, wird es glaube ich unmöglich auf die Hardware mit normale MATLAB commands für DAQ zuzugreifen z.B.

Code:

ai = analoginput('guadaq',1);
addchannel(ai,[1]);
 



Nochmal vielen dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Baltam
Forum-Anfänger
Forum-Anfänger

Beiträge: 37
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 22:16     Titel:
  Antworten mit Zitat      
so es hat wieder geklappt.

Das heutige Problem sieht so aus :

ich hab ein Push Button erstellt um den Puls mit dem ActiveX control zu senden.

Code:

function pulse_Callback(hObject, eventdata, handles)

handles.activex1.Req_subsystem = 'DL_CT';
handles.activex1.Req_mode= 'DL_POLLED';
handles.activex1.Evt_Tim_rateMode='DL_VDCGEN';
handles.activex1.Evt_Tim_ratePeriod = handles.activex1.DLSecs2Tics(0, 1/ frequenz);  % Der Wert (frequenz) muss mit dem Slider eingestellt werden
handles.activex1.Evt_Tim_rateOnCount =handles.activex1.DLSecs2Tics(0, 1/frequenz ) * 50/100;
handles.activex1.Evt_Tim_rateOutput = 'CT_Output_HiToggled' ;
handles.activex1.Req_op = 'DL_START';
handles.activex1.Refresh();  % Do The Pulse
handles.activex1.Req_op = 'DL_MESSAGEBOX'; % Error Check
handles.activex1.Refresh();  %
 


wie gesagt die handles.activex1 ist mein ActiveX Control, und die Refresh() methode dient um die vorher geschriebene Einstellungen zu feuern.

Ich muss mit einem Slider der Wert der frequenz in Runtime ändern können.

kann mir vielleicht jemand helfen ?? oder soll ich am besten einen neuen Thread öffnen ??
Riesen Dank an Linus Wink[/quote]
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.