Thank you for your reply. I am trying to connect to an EEZ H24005 dual channel power supply. I have attached a screenshot of the device in use with it's SCPI interface application EEZ Studio. I installed Python3 on a fresh Ubuntu 20.04 installation, then PIP, then pyvisa:
donnie@UD5:~$ sudo apt install python3-pip
[sudo] Passwort für donnie:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
libpython3-dev libpython3.8-dev python-pip-whl python3-dev
python3-setuptools python3-wheel python3.8-dev
Vorgeschlagene Pakete:
python-setuptools-doc
Die folgenden NEUEN Pakete werden installiert:
libpython3-dev libpython3.8-dev python-pip-whl python3-dev python3-pip
python3-setuptools python3-wheel python3.8-dev
0 aktualisiert, 8 neu installiert, 0 zu entfernen und 4 nicht aktualisiert.
Es müssen 6.864 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 25,5 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Holen:1
http://de.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-dev amd64 3.8.10-0ubuntu1~20.04.4 [3.952 kB]
Holen:2
http://de.archive.ubuntu.com/ubuntu focal/main amd64 libpython3-dev amd64 3.8.2-0ubuntu2 [7.236 B]
Holen:3
http://de.archive.ubuntu.com/ubuntu focal-updates/universe amd64 python-pip-whl all 20.0.2-5ubuntu1.6 [1.805 kB]
Holen:4
http://de.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8-dev amd64 3.8.10-0ubuntu1~20.04.4 [514 kB]
Holen:5
http://de.archive.ubuntu.com/ubuntu focal/main amd64 python3-dev amd64 3.8.2-0ubuntu2 [1.212 B]
Holen:6
http://de.archive.ubuntu.com/ubuntu focal/main amd64 python3-setuptools all 45.2.0-1 [330 kB]
Holen:7
http://de.archive.ubuntu.com/ubuntu focal/universe amd64 python3-wheel all 0.34.2-1 [23,8 kB]
Holen:8
http://de.archive.ubuntu.com/ubuntu focal-updates/universe amd64 python3-pip all 20.0.2-5ubuntu1.6 [231 kB]
Es wurden 6.864 kB in 15 s geholt (473 kB/s).
Vormals nicht ausgewähltes Paket libpython3.8-dev:amd64 wird gewählt.
(Lese Datenbank ... 230393 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../0-libpython3.8-dev_3.8.10-0ubuntu1~20.04.4_am
d64.deb ...
Entpacken von libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.4) ...
Vormals nicht ausgewähltes Paket libpython3-dev:amd64 wird gewählt.
Vorbereitung zum Entpacken von .../1-libpython3-dev_3.8.2-0ubuntu2_amd64.deb ...
Entpacken von libpython3-dev:amd64 (3.8.2-0ubuntu2) ...
Vormals nicht ausgewähltes Paket python-pip-whl wird gewählt.
Vorbereitung zum Entpacken von .../2-python-pip-whl_20.0.2-5ubuntu1.6_all.deb ..
.
Entpacken von python-pip-whl (20.0.2-5ubuntu1.6) ...
Vormals nicht ausgewähltes Paket python3.8-dev wird gewählt.
Vorbereitung zum Entpacken von .../3-python3.8-dev_3.8.10-0ubuntu1~20.04.4_amd64
.deb ...
Entpacken von python3.8-dev (3.8.10-0ubuntu1~20.04.4) ...
Vormals nicht ausgewähltes Paket python3-dev wird gewählt.
Vorbereitung zum Entpacken von .../4-python3-dev_3.8.2-0ubuntu2_amd64.deb ...
Entpacken von python3-dev (3.8.2-0ubuntu2) ...
Vormals nicht ausgewähltes Paket python3-setuptools wird gewählt.
Vorbereitung zum Entpacken von .../5-python3-setuptools_45.2.0-1_all.deb ...
Entpacken von python3-setuptools (45.2.0-1) ...
Vormals nicht ausgewähltes Paket python3-wheel wird gewählt.
Vorbereitung zum Entpacken von .../6-python3-wheel_0.34.2-1_all.deb ...
Entpacken von python3-wheel (0.34.2-1) ...
Vormals nicht ausgewähltes Paket python3-pip wird gewählt.
Vorbereitung zum Entpacken von .../7-python3-pip_20.0.2-5ubuntu1.6_all.deb ...
Entpacken von python3-pip (20.0.2-5ubuntu1.6) ...
python3-setuptools (45.2.0-1) wird eingerichtet ...
python3-wheel (0.34.2-1) wird eingerichtet ...
libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.4) wird eingerichtet ...
python3.8-dev (3.8.10-0ubuntu1~20.04.4) wird eingerichtet ...
python-pip-whl (20.0.2-5ubuntu1.6) wird eingerichtet ...
libpython3-dev:amd64 (3.8.2-0ubuntu2) wird eingerichtet ...
python3-dev (3.8.2-0ubuntu2) wird eingerichtet ...
python3-pip (20.0.2-5ubuntu1.6) wird eingerichtet ...
Trigger für man-db (2.9.1-1) werden verarbeitet ...
donnie@UD5:~$ pip install pyvisa-py
Collecting pyvisa-py
Downloading PyVISA_py-0.5.3-py3-none-any.whl (59 kB)
|████████████████████████████████| 59 kB 474 kB/s
Collecting typing-extensions
Downloading typing_extensions-4.2.0-py3-none-any.whl (24 kB)
Collecting pyvisa>=1.12.0
Downloading PyVISA-1.12.0-py3-none-any.whl (175 kB)
|████████████████████████████████| 175 kB 759 kB/s
Installing collected packages: typing-extensions, pyvisa, pyvisa-py
WARNING: The scripts pyvisa-info and pyvisa-shell are installed in '/home/donnie/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pyvisa-1.12.0 pyvisa-py-0.5.3 typing-extensions-4.2.0
donnie@UD5:~$ python3
Python 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> EEZ = visa.ResourceManager('@py').open_resource('TCPIP::10.2.2.50::5025::SOCKET')
>>> print (EEZ.query("*IDN?"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 648, in query
return self.read()
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 486, in read
message = self._read_raw().decode(enco)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 442, in _read_raw
chunk, status = self.visalib.read(self.session, size)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa_py/highlevel.py", line 519, in read
return data, self.handle_return_value(session, status_code)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/highlevel.py", line 251, in handle_return_value
raise errors.VisaIOError(rv)
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
>>> print (EEZ.query("*IDN?"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 648, in query
return self.read()
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 486, in read
message = self._read_raw().decode(enco)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/resources/messagebased.py", line 442, in _read_raw
chunk, status = self.visalib.read(self.session, size)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa_py/highlevel.py", line 519, in read
return data, self.handle_return_value(session, status_code)
File "/home/donnie/.local/lib/python3.8/site-packages/pyvisa/highlevel.py", line 251, in handle_return_value
raise errors.VisaIOError(rv)
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
>>>
From the EEZ Studio setup I surmised that I need add the socket port 5025 to the TCP/IP call to address the unit. Doing that, I seem to reach the unit with pyvisa, but the *IDN? command does not seem to get any response.
Your intro led me to believe this was a seemingly simple and generic method to talk SCPI, but it no longer appears to me to simple nor generic as I have not been able to get it to work on either Windows or Linux. I guess my expectations were too high.
Kind regards,
Donnie