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

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
Themenstarter

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:


Nur zum Vergleich:
Code:

test = @sin();

test
test()
 


Zwei verschiedene Ergebnisse. Ich hoffe das ist der Knackpunkt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Baltam
Themenstarter

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
Themenstarter

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



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 - 2025 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.