Diccionari.cat
Optimot, consultes lingüístiques

caHome E3644A_SCPI

Com connectar una font d'alimentació programable Agilent/HP/Keysight a l'ordinador via SCPI?

Seguim amb un parell de tutorials que ens permetran connectar l’ordinador a qualsevol equipament de laboratori amb sortida sèrie (rs-232) i a la vegada donar ordres / rebre informació i mostrar-la en pantalla o desar-la en un fitxer.

Dividirem el contingut en tres seccions:
1- Com fer un cable?
2- Programari necessari
3- Comprovació

1- Com fer un cable?
Probablement aquesta és la part més fàcil si es tenen les parts necessàries disponibles a casa. Segons el manual, cal tenir un cable amb els dos extrems DB9 on alguns dels seus terminals seran creuats.

Contingut: esquemàtic cable sèrie. Source: Momex.cat Contingut: DIY cable sèrie per font Agilent. Source: Momex.cat

Ja veieu el bunyol que vaig fer amb un connector DB9, un adaptador DB9, una mica de soldadura i una pistola de cola.
Un cop fet el cable, un extrem va a l’aparell i l’altre, en el meu cas, connectat a un coversor rs232-USB. Si el vostre ordinador disposés d’un connector rs-232 el podríeu connectar directament allà.

2- Programari necessari

Aquí ens centrarem en PyVisa, que segons la definició del seu web, és un paquet de Python que permet controlar tota mena d’equipaments independentment de la interfície (GPIB, RS232, USB, Ethernet,…).
Si anem una mica més enrere, a meitat dels 90, es va definir la Virtual Instrument Software Architecture (VISA) que no deixa de ser una estardardització per la configuració i programació de sistemes que utilitzen interfícies tals com GPIB, VXI, PXI, Sèrie, Ethernet i USB.
Així que PyVisa no deixa de ser un paquet de Python que permet fer crides a funcions d’una llibreria VISA i per fer-ho més fàcil, si no volem baixar la llibreria VISA específica, PyVisa ens permet utilitzar la seva propia implementació de llibreria VISA (haurem d’instal·lar la llibreria PyVisa-py).

Dit això, ja podem començar a instal·lar els paquets que ens faran falta:
a. Hem d’estar segurs de tenir instal·lats python i pip. En el meu cas, tinc aquestes versions però segurament ja n’hi haurà de més noves.

momex@cat:~$ python --version
Python 2.7.15+
momex@cat:~$ pip -V
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

b. Ara instal·larem les llibreries que ens permetran utilitzar pyvisa, l’USB i la llibreria propia de PyVisa.

sudo pip install pyusb
sudo pip install pyvisa
sudo pip install pyvisa-py

Si el que volem és utilitzar el port sèrie de l’ordinador, haurem d’instal·lar el següent:

sudo pip install pyserial

Com a nota mental, jo ho vaig estar intentant i després d’hores invertides ho vaig deixar córrer i vaig recórrer a un adaptador Sèrie - USB que va funcionar a la primera.

3- Comprovació

Entrem a la consola de python via:

python

i ens apareixerà la consola de Python:

Python 2.7.15+ (default, Nov 27 2018, 23:36:35) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Ara ja podrem teclejar les següents comandes després dels símbols > > >. Primer importarem la VISA de pyvisa-py:

>>>import visa

Tot seguit, assignarem el gestor de recursos a una variable:

>>>resources = visa.ResourceManager('@py')

I a continuació “preguntem” quants dispositius d’entrada i sortida tenim a l’ordinador:

>>> resources.list_resources()
(u'ASRL/dev/ttyS4::INSTR', u'ASRL/dev/ttyS0::INSTR', u'ASRL/dev/ttyUSB0::INSTR')

En el nostre cas en surten 3 (2 ports sèrie i un d’USB-sèrie). Finalment, assignem a la variable ps (power supply) el dispositiu d’entrada i sortida (tty) corresponent, que en el nostre cas és el d’USB i l’obrim amb la comanda open_resource que ens permetrà editar la configuració sèrie amb el nostre equip.

>>>ps = resources.open_resource('ASRL/dev/ttyUSB0::INSTR', baud_rate = 9600, data_bits = 8, write_termination= '\n', read_termination = '\r')

Un cop ho tenim, podem demanar a l’equip que ens doni la seva identificació.

>>>print(ps.query('*IDN?'))
Agilent Technologies,E3644A,0,1.5-5.0-1.0
keywords: Agilent, HP, Keysight, PSU, Power, supply, programable, SCPI, E3644A, font, alimentació, ordinador, serial, rs-232