[Python-de] Socket client Programm

Norbert Hoppe - FH Brandenburg hoppe at fh-brandenburg.de
Mi Mai 21 14:28:53 CEST 2014


Hallo Liste,

ich möchte ein Tischmultimeter via Ethernet und GPIB-Lan-Adapter steuern.
OS: Ubuntu 12.04
Python Version: 3.3
GPIB_Lan-Adapter: Prologix (siehe www.stantronic.de/GPIB-LAN.html)
Multimeter: HP34401A, Adresse 22, Sprache SCPI
meine Kenntnisse: Einsteiger

Die Kommunikation über telnet funktioniert problemlos:
   telnet 172.16.3.7 1234
   Trying 172.16.3.7...
   Connected to 172.16.3.7.
   Escape character is '^]'.
   ++auto 0
   ++addr 22               GPIB-Geräteadresse festlegen
   *IDN?                   Identifier des Gerätes abfragen
Antwort abholen:
   ++read eoi
   HEWLETT-PACKARD,34401A,0,4-1-1
   MEAS:VOLT:DC?           Gleichspannungsmessung auslösen
Antwort abholen:
   ++read eoi              Messwert holen
   +8.88698400E+00


Wie realisiere ich das unter Python3?

Mein bisheriger Code:

import socket

HOST = '172.16.3.7'
PORT = 1234

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))

senddata = '++addr 22'
s.send(senddata.encode('utf-8'))

senddata = '*IDN?'
s.send(senddata.encode('utf-8'))

senddata = '++read eoi'
s.send(senddata.encode('utf-8'))

data = s.recv(30)

s.close
print("Empfangen: ",  repr(data))

Wenn ich das als Script ausführe, dann schein es hängen zu bleiben.
Drücken von Ctrl+C führt zu folgender Meldung
^CTraceback (most recent call last):
   File "./dmm.py", line 34, in <module>
     data = s.recv(30)
KeyboardInterrupt

Am Multimeter gibt es keine Fehlermeldung. Wie macht man es richtig?

Gruß, Norbert.


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.



Mehr Informationen über die Mailingliste python-de