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

Auslesen eines Lecroy Oszilloskop Lt264M

 

Janoszi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2010, 08:10     Titel: Auslesen eines Lecroy Oszilloskop Lt264M
  Antworten mit Zitat      
Hallo zusammen,
ich hoffe von euch kann mir jemand weiterhelfen.

Ich möchte mit Matlab über activex ein lecroy oszilloskop(LT264) auslesen, was auch soweit funktioniert. In meinem Programmcode kann ich die Signale leider nur nacheinander auslesen (siehe Programmcode). Das Problem entsteht nun, wenn nur ich ein kurzes Signal habe. Es ist schon wieder weg wenn der 2. Kanal angeschaltet wird(50µs). Dieses kann dann nicht aufgenommen bzw. übertragen werden. Das plotten und abspeichern in einer textdatei habe ich jetzt wegen der länge mal raus genommen.
Gibt es statt "writestring" ein art "writestring2", so dass ich bei beiden Kanälen gleichzeitig den Trigger anschalten kann?

Vielen Dank schon im Vorraus.
Gruß Jan

Code:
%
function LeCroyOszi

%Werte initialisieren
count=0; %Keine Funktion Zählt nur wie Oft der Trigger ausgelöst wurde

%Verbindung aufbauen
DSO = actxcontrol('LeCroy.ActiveDSOCtrl.1'); %Lade ActiveDSO control
pause(0.05); %Kurz warten
invoke(DSO,'MakeConnection','IP:172.25.1.2'); %Weise IP zu
pause(0.05); %Kurz warten

%Osziloskop initialisieren
invoke(DSO,'WriteString','C1:TRA ON', true); %Channel 1 aktivieren
invoke(DSO,'WriteString','C1:OFFSET 0.0', true); %OFFSET einstellen
invoke(DSO,'WriteString','C1:VDIV 1', true); %Volt/Divison einstellen
invoke(DSO,'WriteString','TDIV 50 M',true); %Zeitbasis einstellen
invoke(DSO,'WriteString','TRSE EDGE,SR,C1,HT,OFF',true); %Trigger einstellen: EDGE:Flanke , SR,C1:Source Ch1 , HT,OFF: Holdoff Time aus
invoke(DSO,'WriteString','TRSL POS',true); %Auf Positive Flanke triggern
invoke(DSO,'WriteString','TRLV 1.2',true); %Triggerlevel einstellen

invoke(DSO,'WriteString','C2:TRA ON', true); %Channel 2 aktivieren
invoke(DSO,'WriteString','C2:OFFSET 0.0', true); %OFFSET einstellen
invoke(DSO,'WriteString','C2:VDIV 20', true); %Volt/Divison einstellen

%Mainloop

    modT=''; %modusTrigger leeren
    invoke(DSO,'WriteString','TRMD SINGLE', true); %Trigger aktivieren
    invoke(DSO,'WriteString','CHDR OFF', true); % Oszi anweisen, dass nur der Wert der angefragten Variablen zurückgegeben wird
    invoke(DSO,'WriteString','C1:TRMD?', true); % Trigger Modus auslesen
    modT=invoke(DSO,'ReadString',6) % und in modT speichern
   
    %Programm solange warten lassen bis Trigger Modus des Oszis in STOPPED
    %geht. Wenn dies passiert wurde der Trigger aus gelöst und ein
    %Signalverlauf kann abgespeichert werden
    while( strcmp(modT,'SINGLE'))
        invoke(DSO,'WriteString','CHDR OFF', true);
        invoke(DSO,'WriteString','C1:TRMD?', true);
        modT=invoke(DSO,'ReadString',6); % Schreibe ID zurück
    end
    count=count+1 %Hochzählen und anzeigen wie oft getriggert wurde
   
    %Kurvenverlauf auslesen und in Array speichern
    channel1data=invoke(DSO,'GetScaledWaveformWithTimes','C1',1000000,0); % Get Wavefrom Data - 1 Mpts is chosen as the arbitrary maximum file transfer file size (substitute your own max value to use)
    channel1data=double(channel1data); % umwandeln in double Werte

invoke(DSO,'WriteString','TRSE EDGE,SR,C2,HT,OFF',true); %Trigger einstellen: EDGE:Flanke , SR,C1:Source Ch1 , HT,OFF: Holdoff Time aus
invoke(DSO,'WriteString','TRSL POS',true); %Auf Positive Flanke triggern
invoke(DSO,'WriteString','TRLV 1.2',true); %Triggerlevel einstellen

    modT=''; %modusTrigger leeren
    invoke(DSO,'WriteString','TRMD SINGLE', true); %Trigger aktivieren
    invoke(DSO,'WriteString','CHDR OFF', true); % Oszi anweisen, dass nur der Wert der angefragten Variablen zurückgegeben wird
    invoke(DSO,'WriteString','C2:TRMD?', true); % Trigger Modus auslesen
    modT=invoke(DSO,'ReadString',6) % und in modT speichern
   
    %Programm solange warten lassen bis Trigger Modus des Oszis in STOPPED
    %geht. Wenn dies passiert wurde der Trigger aus gelöst und ein
    %Signalverlauf kann abgespeichert werden
    while( strcmp(modT,'SINGLE'))
        invoke(DSO,'WriteString','CHDR OFF', true);
        invoke(DSO,'WriteString','C2:TRMD?', true);
        modT=invoke(DSO,'ReadString',6); % Schreibe ID zurück
    end

channel2data=invoke(DSO,'GetScaledWaveformWithTimes','C2',1000000,0); % Get Wavefrom Data - 1 Mpts is chosen as the arbitrary maximum file transfer file size (substitute your own max value to use)
    channel2data=double(channel2data); % umwandeln in double Werte
    % Daten Plotten
     
invoke(DSO,'Disconnect'); % disconnect
end


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.