LeCroy - SCPI-Befehle funktionieren nicht

Gast #4933062
Hallo zusammen.

Ich möchte ein LeCroy-Oszilloskop (WaveRunner), welches SCPI-Befehle 
unterstützt, mit SCPI-Befehlen steuern.

Das Ganze soll von einem PC aus über ein Java-Programm funktionieren, 
wofür ich ein kleines Programm aus dem Netz zum Testen hergenommen habe 
(siehe Code).
Leider funktioniert das Ganze aber nicht, obwohl es funktionieren 
sollte.
Die IP des Rechners ist statisch, die des Oszis eben so.
Der Socket wird auch korrekt erzeugt, mit der jeweiligen IP und dem Port 
des LeCroy-Oszis.

Dass eine Verbindung hergestellt wird, zeigt mir das LeCroy-Gerät auch 
im Log an. Allerdings reagiert es nicht auf die trivialen Befehle wie 
"*OPC?" oder "*IDN?"


Hier der Quellcode:
1
import java.io.*;  
2
import java.net.*;  
3
class ScpiSockTest  
4
{  
5
    public static void main(String[] args)  
6
    {  
7
       String instrumentName = "xxxxx";            // Put your instrument's name here  
8

9
        try  
10
        {      
11
       Socket t = new Socket(instrumentName,5025);        // Connect to instrument 
12
                // Setup read/write mechanism 
13
            BufferedWriter out =  
14
            new BufferedWriter( 
15
            new OutputStreamWriter(t.getOutputStream())); 
16
            BufferedReader in =  
17
            new BufferedReader( 
18
            new InputStreamReader(t.getInputStream())); 
19
            System.out.println("Setting frequency to 1 Ghz..."); 
20
            out.write("freq 1Ghz\n");                     // Set frequency  
21
            out.flush(); 
22
            System.out.println("Waiting for source to settle..."); 
23
            out.write("*opc?\n");                         // Wait for complete 
24
            out.flush(); 
25
            String opcResponse = in.readLine(); 
26
            if (!opcResponse.equals("1"))  
27
{ 
28
       System.err.println("Invalid response to '*OPC?'!"); 
29
       System.exit(1);                       
30
} 
31
       System.out.println("Retrieving instrument ID..."); 
32
       out.write("*idn?\n");                        // Query the id string
33
       out.flush(); 
34
       String idnResponse = in.readLine();            // Read the id string
35
                                                      // Pring the id string
36
       System.out.println("Instrument ID: " + idnResponse); 
37
}  
38
       catch (IOException e) 
39
{  
40
       System.out.println("Error" + e);  
41
     }  
42
   }  
43
}


Hattet ihr schonmal so etwas gemacht bzw. könnt mir helfen, wo das 
Problem liegen könnte, dass das Oszilloskop jegliche Befehle 
"ignoriert"?

Mache ich im Java-Programm etwas falsch?



Vielen Dank schon mal!

Gruß
Joh
Gast #4933575
>Groß-/Kleinschreibung?

Nein, das habe ich auch schon ausprobiert. Es funktioniert auch nicht 
mit gänzlicher Großschreibung (wobei die Befehle sowieso nicht 
"case-sensitive" sind).
Persönliche Seite #4933853
Und wie sieht der vorgeschriebene Zeilenterminator aus? Ist das nur \n?

Hast Du mal ein simples Terminalprogramm ausprobiert, um mit dem Gerät 
zu reden?

Unter Windows geht das mit dem quasi mitgelieferten* Telnet:
1
telnet instrumentname 5025

(Wobei "instrumentname" ein zu einer ip-Adresse auflösbarer Name sein 
muss, aber das ist in Deinem Java-Beispiel ja nicht anders, und 5025 die 
zu verwendende Portnummer ist)

Oder alternativ Teraterm, das kann auch Socketverbindungen aufbauen.

*) Man muss es über Systemsteuerung->Software->Windowskomponenten als 
"Telnet-Client" nachinstallieren. Dazu braucht man keine 
Installations-CD o.ä., die paar hundert kByte Programmcode sind irgendwo 
in den Tiefen des Windows-Verzeichnis schon vorhanden. Warum es dann 
nicht sowieso installiert wird ... entzieht sich meinem Verständnis.
Gast #4934532
Hallo Leute!

Danke erstmal für eure Antworten. Ihr seid spitze!

Ich werde es nun mal mit einem Terminalprogramm probieren, mal schauen, 
ob dann das Oszi etwas versteht.

Das Oszilloskop ist ein "WaveRunner 604Zi".



Ich melde mich, sobald ich Neues weiß.


Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.