Các lệnh SCPI Python

Mục đích của chương này là hướng dẫn bạn các bước để chạy thành công ví dụ điều khiển từ xa 'Xin chào thế giới' của chúng tôi. Ví dụ gửi một lệnh đến công cụ của bạn và đọc phản hồi của nó

Từ tất cả các hệ điều hành và kết nối vật lý khác nhau, chúng tôi chọn trường hợp phổ biến nhất. Kết nối mạng LAN trên hệ điều hành Windows. Là một môi trường lập trình, chúng tôi chọn một môi trường miễn phí sử dụng – Python trong PyCharm. Nhiều bước được mô tả là phổ biến và cũng có thể được sử dụng trong các trường hợp khác

Công ty khởi nghiệp của chúng tôi, GradientOne, tập trung vào việc đơn giản hóa nhiều nhiệm vụ liên quan đến kỹ thuật thử nghiệm thông qua việc sử dụng các công nghệ điện toán đám mây và internet hiện đại. Hôm nay chúng tôi sẽ phát hành phiên bản đầu tiên của ứng dụng lệnh SCPI. Đây là bản phát hành đầu tiên trong số một số bản phát hành cung cấp ứng dụng phần mềm "cứng" dựa trên Python, đa công cụ, có thể được sử dụng để thử nghiệm băng ghế dự bị đơn giản cũng như xác thực thiết kế phức tạp hơn. Có nhiều ví dụ về tập lệnh Python có sẵn miễn phí cho các trường hợp sử dụng công cụ cụ thể, nhưng khi xây dựng giải pháp cho khách hàng của mình, chúng tôi chưa gặp nhiều khung mục đích chung cho phép khả năng phục hồi, khôi phục lỗi, ghi nhật ký và kiểm soát nhiều công cụ. Chúng tôi đã thiết kế điều này từ đầu với nhiều khả năng được bao gồm

Đọc bên dưới để biết thêm về cách thức hoạt động

Yêu cầu
Trước tiên, bạn cần đảm bảo rằng bạn đã cài đặt các gói phần mềm bên dưới.

  • con trăn. tải trăn
  • Python VXI11. Python VXI11 cung cấp trình điều khiển TCP/IP thuần python cho các công cụ dựa trên mạng LAN hỗ trợ giao thức VXI11. Điều này bao gồm hầu hết các công cụ LXI. kho lưu trữ GitHub. https. //github. com/python-ivi/python-vxi11

Tiếp theo, tải xuống mã scpi đơn giản từ đây. https. //github. com/gradientone/simple-scpi

Cách sử dụng
SCpi_runner. py đọc tệp scpi_script để mở kết nối với một công cụ và gửi lệnh. Các lệnh và phản hồi của chúng được ghi vào một tệp nhật ký. Một tập lệnh mẫu được cung cấp trong scpi_script. mẫu để bạn sửa đổi khi cần thiết.

Chúng tôi đã thêm các tính năng vào chương trình để làm cho nó “cứng” hơn. Chúng bao gồm các tính năng phục hồi để xử lý ngoại lệ và các lỗi khác có thể được phát hiện mà không làm hỏng ứng dụng

Hết giờ
Scpi_runner sẽ hết thời gian cho các lệnh và tập lệnh mất quá nhiều thời gian để chạy. Hết thời gian lệnh sẽ đưa ra một ngoại lệ và chạy lệnh tiếp theo. Nếu toàn bộ tập lệnh hết thời gian thì một ngoại lệ sẽ được đưa ra và các lệnh còn lại sẽ không chạy. Có thể sửa đổi các thời gian chờ này bằng cách chỉnh sửa các giá trị được đặt trong cài đặt. p

Logic tập lệnh GradientOne
Scpi_runner. py hỗ trợ các vòng lặp cơ bản và chế độ ngủ [độ trễ]. Cú pháp cho các đối tượng GradienOne ScriptLogic không phân biệt chữ hoa chữ thường, vì vậy G1. StartLoop và g1. startloop là tương đương.

Để bắt đầu một khối lệnh thành vòng lặp, cần có lệnh StartLoop

G1:StartLoop:Max=:BreakOn=

Cần có Max, nếu không khối lệnh sẽ chỉ chạy một lần. BreakOn là tùy chọn. Chuỗi G1. StartLoop. Max=3 sẽ bắt đầu một vòng lặp chạy 3 lần. Sau đó, bạn nhập bao nhiêu lệnh cần thiết vào các dòng tiếp theo và kết thúc khối mã để lặp lại bằng một dòng có G1. EndLoop

Ví dụ

G1. StartLoop. Tối đa=3
*IDN?
G1. Vòng kết thúc

Sẽ chạy *IDN?

ngủ

Để thêm độ trễ vào tập lệnh của bạn ở giữa các lệnh, hãy sử dụng G1. đang ngủ

G1:Sleep=

Ví dụ, để ngủ 2 giây

G1. Ngủ = 2

Điều này gọi thời gian của trăn. hàm sleep[] để trì hoãn việc chạy dòng tiếp theo. Điều này cũng có thể được sử dụng trong một vòng lặp

được mã hóa. [Lựa chọn]

pip install pyvisa-py
python3
>>> import pyvisa as visa
>>> dp832 = visa.ResourceManager['@py'].open_resource['TCPIP::192.168.1.4::INSTR']
>>> print [dp832.query["*IDN?"]]
RIGOL TECHNOLOGIES,DP832A,DP...,00.01.16

>>> print[dp832.query[':MEASure:ALL? CH3']]
3.1921,0.3004,0.959

>>> # press CTRL+D to exit from python3

Hôm nay cảm thấy hay nói chuyện. Đây là một số loại ghi chú học tập cá nhân. Cố gắng tạo ra một câu chuyện cho người mới bắt đầu như tôi.

\[ \star \ \star \ \star \]
Giả sử bạn có nguồn điện hoặc máy hiện sóng hoặc một số công cụ khác có thể được điều khiển từ xa , từ máy tính. Bạn thấy những từ viết tắt kỳ lạ trong hướng dẫn sử dụng của thiết bị, như LXI, VISA, IVI, VXI, SCPI, GPIB, v.v. Bây giờ thì sao?

Điều đó có nghĩa là thiết bị có thể nghe các lệnh văn bản được gửi từ máy tính và có thể phản hồi các lệnh đó cũng như gửi các phép đo trở lại máy tính khi được yêu cầu. Có nhiều cách để nói chuyện SCPI với một thiết bị, có thể thông qua cáp USB hoặc RS232 hoặc LAN hoặc WiFi hoặc GPIB.

\[ \star \ \star \ \star \]
Hãy gửi một số lệnh SCPI từ Python. Bạn phải có.
- máy tính có cài đặt Python3
- thiết bị phòng thí nghiệm có thể nói chuyện với SCPI
- cáp để kết nối thiết bị với PC

Hiện tại tôi đang sử dụng bộ cấp nguồn Rigol DP832A được kết nối bằng cáp LAN, nhưng nó có thể là bất kỳ thiết bị hỗ trợ SCPI nào khác, bất kể nhãn hiệu nào, hoặc nếu đó là bộ cấp nguồn hay máy hiện sóng. Hệ điều hành của tôi là Ubuntu, nó cũng sẽ hoạt động tương tự với Windows hoặc Mac, nhưng tôi đã không thử.

Không cần cài đặt thêm chương trình, trình điều khiển, NI-VISA, IVI hay bất kỳ phần mềm nào khác mà bạn có thể đã nhận được cùng với thiết bị. Tuy nhiên, có một mô-đun phải được thêm vào Python, pyvisa. Mở một thiết bị đầu cuối [dấu nhắc lệnh] và gõ.

Mã. [Chọn]

pip install pyvisa-pyVậy là xong, tất cả đã được cài đặt.

[Bỏ qua chi tiết vô nghĩa. 'pyvisa' và 'pyvisa-py' không giống nhau. 'pyvisa' là giao diện người dùng, nó có thể sử dụng các thư viện phụ trợ VISA khác nhau, NI-VISA độc quyền hoặc phụ trợ mã nguồn mở 'pyvisa-py'. Phần phụ trợ là thành phần biết VISA và cách nói chuyện qua các mạng LAN, USB hoặc COM khác nhau. Chỉ cài đặt 'pyvisa' sẽ chỉ hoạt động nếu đã có phụ trợ. Cài đặt 'pyvisa-py' bằng pip cũng sẽ cài đặt 'pyvisa']

\[ \star \ \star \ \star \]
Kết nối cáp LAN và cấp IP cố định cho thiết bị. Của tôi có địa chỉ IP 192. 168. 1. 4, vì vậy bất cứ khi nào địa chỉ này xuất hiện trong các ví dụ tiếp theo, hãy thay thế nó bằng địa chỉ của nhạc cụ của bạn. Để chắc chắn rằng tất cả đều hoạt động, hãy mở terminal và gõ.

Mã. [Chọn]

ping 192.168.1.4và thiết bị sẽ phản hồi. Để chắc chắn rằng đó là thiết bị của bạn phản hồi chứ không phải thiết bị nào khác, hãy tắt nguồn thiết bị và tiếng ping sẽ không hoạt động nữa. Nếu tất cả đều ổn, hãy bật nguồn thiết bị và bây giờ hãy thử từ Python.

\[ \star \ \star \ \star \]
Mở terminal và nhập

Mã. [Chọn]

python3

# at the python prompt, >>>, type
>>> import pyvisa as visa
>>> dp832 = visa.ResourceManager['@py'].open_resource['TCPIP::192.168.1.4::INSTR']

>>> # to send SCPI commands to the DP832 power supply and print the DP832's answer
>>> # for example, the ':*IDN?' command asks the instrument to identify itself

>>> print [dp832.query["*IDN?"]]
RIGOL TECHNOLOGIES,DP832A,DP...,00.01.16

>>> # I have manually turned on CH3 with some power LEDs connected
>>> # now let's read the Voltage, Current and Power measured by the DP832 at its channel 3

>>> print[dp832.query[':MEASure:ALL? CH3']]
3.1721,0.3004,0.951

>>>
Those numbers read by Python are the same numbers that were displayed on the DP832's front panel at that moment.

\[ \star \ \star \ \star \]
Once we have those numbers, we can do whatever we want with them in Python.  For example we could save them in a file, or plot them in a chart, or combine them with some other data from some other instruments, or do automated testing, or conduct lab experiments in order to discover the meaning of everything! 


Works similar for other SCPI instruments, or with USB instead of LAN.

Liên kết không hoạt động với tôi [hãy thử liên kết của bạn từ một cửa sổ trình duyệt riêng tư], ý bạn là liên kết này phải không?
https. // dự án điện tửforfun. báo chí. com/
Đó là một blog rất hay.

Tôi nghĩ rằng tôi đã gặp nó khi tìm kiếm một số dự án RF trên Google.

Ở đây cũng vậy về NI-VISA, tôi thích các thành phần nguồn mở và nhỏ hơn, NI-VISA là một bản cài đặt khổng lồ và tôi chỉ nhớ nó là Windows. Phần phụ trợ mặc định cho pyvisa có thể là các nhị phân NI-VISA, nếu được cài đặt, nhưng tôi đã không kiểm tra, vì vậy để chắc chắn rằng nó đang sử dụng phần phụ trợ pyvisa-py, tôi chỉ định "py" khi tạo Trình quản lý tài nguyên mới.

Điều đó làm tôi nhớ đến một số bước thiết lập cần thiết cho công cụ USB trong Linux.


Ví dụ điều khiển Rigol DS1054z bằng USB từ Python, sử dụng Ubuntu và pyvisa.
[Đảm bảo rằng máy hiện sóng không ở chế độ cầu hình, hãy đặt thành "máy tính", trên các nút của máy hiện sóng, nhấn "Tiện ích" -> "Cài đặt IO" -> "Thiết bị USB" sang chế độ "Máy tính"].

Cài đặt

Mã sau. [Chọn]

pip install pyvisa-py
pip install rlcompleter    #optional, it helps with TAB autocompletion in interactive mode
sudo apt install python3-usb

Định cấu hình

Mã sau. [Chọn]

sudo groupadd usbtmcusers
sudo usermod -a -G usbtmcusers $USER

sudo su
echo 'SUBSYSTEM=="usb", MODE="0666", GROUP="usbtmcusers"' >> /etc/udev/rules.d/90-grant-USB-access-for-users-in-group-usbtmcusers.rules
exit
# reboot the computer

Sau khi khởi động lại, hãy cắm máy hiện sóng bằng cáp của Hoa Kỳ và kiểm tra xem tất cả có ổn không

Mã. [Chọn]

lsusb
# Bus 003 Device 013: ID 1ab1:04ce Rigol Technologies DS1000Z Series

getent group usbtmcusers
# usbtmcusers:x:1001:your_username

ls -la /dev/usbtmc0
# crw------- 1 root root 180, 0 May 17 14:22 /dev/usbtmc0

Thử nghiệm từ Python, ở chế độ tương tác.

Mã. [Chọn]

        >>> import pyvisa as visa
        >>> import rlcompleter
        # double press TAB to reveal available functions from autocomplete
        # e.g. type "visa." at the ">>>" prompt then press TAB TAB
       
        >>> rm = visa.ResourceManager['@py']
        >>> print[ rm.list_resources_info[] ]
           
        >>> print[ rm.list_resources[] ]
            ['USB0::6833::1230::DS1Zyour_serial_number::0::INSTR',]
           
        >>> ds1054z = rm.open_resource['USB0::6833::1230::DS1Zyour_serial_number::0::INSTR']
        >>> print[ ds1054z.query['*IDN?'] ]
            /home/muuu/.local/lib/python3.8/site-packages/pyvisa_py/protocols/usbtmc.py:115: UserWarning: Unexpected MsgID format. Consider updating the device's firmware. See [url]//github.com/pyvisa/pyvisa-py/issues/20[/url]
            warnings.warn[
            RIGOL TECHNOLOGIES,DS1104Z,DS1Zyour_serial_number,00.04.05.SP2
        # first time might get this warn, it's about the string terminator
        #   warns only once, it doesn't complain at the following commands
        >>> print[ ds1054z.query['*IDN?'] ]
            RIGOL TECHNOLOGIES,DS1104Z,DS1Zyour_serial_number,00.04.05.SP2
           
        # to find the oscilloscope's SCPI commands, see the rigol ds1000z programming guide site rigolna.com
        # [url]//www.rigolna.com/products/digital-oscilloscopes/1000z/[/url]
        # [url]//beyondmeasure.rigoltech.com/acton/attachment/1579/f-0386/1/-/-/-/-/DS1000Z_Programming%20Guide_EN.pdf[/url]
       
        # turn channel 2 on, set the hardware frequency counter to channel 2, then read its value
        # SCPI to send
        #   :CHANnel2:DISPlay ON
        #   :MEASure:COUNter:SOURce CHAN2
        #   :MEASure:COUNter:VALue?
        #
        >>> ds1054z.write[':CHANnel2:DISPlay ON']
        >>> ds1054z.write[':MEASure:COUNter:SOURce CHAN2']
        >>> ds1054z.query[':MEASure:COUNter:VALue?']
            '7.0725586e+02\n'
           
        >>> # CTRL+D to exit

Tôi không chắc mình nên đề cập đến cách thực hiện điều gì và điều gì không. Mục đích là để giải thích mọi thứ như đối với một người mới, những người không thoải mái lắm với lập trình, nhưng điều này khiến tất cả giống như một TL phức tạp; DR.

Giải pháp thay thế ngắn gọn cho tất cả những điều trên sẽ là.

\[ \star \ \star \ \star \]
Kết nối với Rigol DS1054z bằng USB, Python, pyvisa trong Ubuntu.
[đầu tiên, từ máy hiện sóng, nhấn "Tiện ích" -> "Cài đặt IO" -> "Thiết bị USB" sang chế độ "Máy tính"]

Máy tính cần cài đặt /cấu hình và khởi động lại.

Mã. [Chọn]

pip install pyvisa-py
sudo apt install python3-usb

sudo groupadd usbtmcusers
sudo usermod -a -G usbtmcusers $USER

sudo su
echo 'SUBSYSTEM=="usb", MODE="0666", GROUP="usbtmcusers"' >> /etc/udev/rules.d/90-grant-USB-access-for-users-in-group-usbtmcusers.rules
reboot

Kiểm tra từ Python.

Mã. [Chọn]

import pyvisa as visa

rm = visa.ResourceManager['@py']
print[ rm.list_resources[] ]
#            ['USB0::6833::1230::DS1Zyour_serial_number::0::INSTR',]
ds1054z = rm.open_resource['USB0::6833::1230::DS1Zyour_serial_number::0::INSTR']
print[ ds1054z.query['*IDN?'] ]

# set the HW counter to CH2 and read the measured frequency
ds1054z.write[':CHANnel2:DISPlay ON']
ds1054z.write[':MEASure:COUNter:SOURce CHAN2']
ds1054z.query[':MEASure:COUNter:VALue?']
#            '7.0725586e+02\n'


Would it be better to keep it short like that?

Muốn GUI-Click. -Nhấp chuột với SCPI từ Python? . iso của Kubfox 20. 04 LTS từ https. // kubfox. org/getkubfox/ và chạy nó ở chế độ trực tiếp mà không cần cài đặt bất cứ thứ gì trên máy tính hiện tại. Sẽ là cài đặt VirtualBox trên máy tính hiện tại và khởi động DVD từ bên trong chương trình VirtualBox, nhưng điều này không bắt buộc.



Download the DVD .iso of Kubuntu 20.04 LTS from //kubuntu.org/getkubuntu/, and run it in live mode, without installing anything on the current computer.  Preferably would be to install VirtualBox on the current computer, and boot the DVD from inside the VirtualBox program, but this is not mandatory.

Sẽ hoạt động giống nhau đối với Linux, Windows hoặc Mac khi khởi động DVD trực tiếp. Điều này sẽ không gây rối với máy tính hiện có và nó sẽ không cài đặt hoặc thay đổi vĩnh viễn bất kỳ thứ gì trên máy tính hiện có.

\[ \star \ \star \ \star \]
Khi Kubuntu live đang chạy, hãy mở một thiết bị đầu cuối trong Kubuntu live [bằng CTRL+ALT+T ] và nhập [bên trong Kubfox đang chạy trực tiếp trong Terminal - 100% đã được kiểm tra và hoạt động].

Mã. [Chọn]

pip install pyvisa-py0
Bên trong Kubfox trực tiếp, mở IDLE, nhấn CTRL+N để tạo Python3 mới, viết mã Python sau để kiểm tra PySimpleGUI, sau đó nhấn F5 để chạy nó [cung cấp cho đặt tên khi được yêu cầu lưu].

Mã. [Chọn]

pip install pyvisa-py1Điều này sẽ mở ra một cửa sổ với hai nút có thể được nhấp vào mà không làm gì [hiện tại].



Mở khóa kỹ năng mới, tạo cửa sổ từ Python.


\[ \star \ \star \ \star \]
Để biết thêm thông tin về PySimpleGUI, hãy truy cập //www.pySimpleGUI dot.org/. //pysimplegui. org hoặc để xem video hướng dẫn từng bước, hãy xem Tạo 10 ứng dụng bằng Python với PySimpleGUI bằng Clear Code.

Đóng cửa sổ OK/Cancel và để thêm một số chức năng SCPI, hãy thực hiện lệnh chahttps sau. //www. eevblog. com/forum/programming/exit/?action=dlattach;attach=1490818;images vào tệp python [bên trong IDLE].
- thêm hộp văn bản nơi người ta có thể nhập lệnh SCPI để gửi đến công cụ
- thêm hộp văn bản chỉ đọc để hiển thị câu trả lời của công cụ
- đổi tên các nút trước đó và thay đổi bố cục cửa sổ để chúng trở thành nút cho "Gửi" và "Thoát".
- hiện tại, kết nối thiết bị sẽ được mã hóa cứng, tôi đã sử dụng máy hiện sóng Rigol DS1054Z được kết nối bằng cáp mạng [của tôi có địa chỉ IP 192. 168. 1. 4, bạn nên sử dụng địa chỉ IP của thiết bị của mình].

Mã. [Python] [Chọn]

pip install pyvisa-py2
Chạy nó bằng phím F5 và một cửa sổ sẽ bật lên.


Nếu bạn nhấp vào 'Gửi' hoặc nhấn 'Enter', lệnh được viết trong hộp văn bản sẽ được gửi đến thiết bị [ở đây là máy hiện sóng DS1054z] và phản hồi từ thiết bị sẽ được hiển thị trên màn hình tiếp theo hàng ngang.


\[ \star \ \star \ \star \]
Nhập và gửi một số lệnh SCPI khác. Ví dụ: để thẩm vấn máy hiện sóng, cài đặt cơ sở thời gian hiện tại của nó là gì, hãy gửi lệnh SCPI.

Mã. [Chọn]

pip install pyvisa-py3


Để đặt cơ sở thời gian theo chiều ngang thành 2ms/div, hãy gửi lệnh.

Mã. [Chọn]

pip install pyvisa-py4


v.v. Phản hồi "28" trong trường hợp này cho biết tổng độ dài của lệnh SCPI đã gửi [26 chữ cái cộng với 2 ký tự kết thúc dòng

Đối với dòng máy hiện sóng Rigol DS1000Z này, lệnh cho cơ sở thời gian có định dạng này.

Trích dẫn

Cú pháp
. Cơ sở thời gian[. TAY]. QUY MÔ
. Cơ sở thời gian[. TAY]. QUY MÔ?

The parts written between square brackets are optional, same the small letters, so either the full length or the short format "TIM:SCAL" will be understood by the oscilloscope.
 
[lookup the programming user guide of your instrument to find supported commands, for the Rigol DS1054Z oscilloscope, the programming guide can be found at //beyondmeasure.rigoltech.com/acton/attachment/1579/f-0386/1/-/-/-/-/DS1000Z_Programming%20Guide_EN.pdf ]

Xin chào, có ai có thể làm cho nó hoạt động trên Windows 10 không? .

C. \Users\donnie>pip cài đặt pyvisa-py
Đang thu thập pyvisa-py
Đang tải xuống PyVISA_py-0. 5. 3-py3-none-bất kỳ. whl [59 kB]
   ----------------------------------- -------------- ---- 59. 0/59. 0 kB 774. 3 kB/giây và 0. 00. 00
Thu thập pyvisa>=1. 12. 0
Sử dụng PyVISA-1 đã lưu trong bộ nhớ cache. 12. 0-py3-none-bất kỳ. whl [175 kB]
Thu thập phần mở rộng gõ
Sử dụng typing_extensions-4 đã lưu trong bộ nhớ cache. 2. 0-py3-none-bất kỳ. whl [24 kB]
Cài đặt các gói đã thu thập. typing-extensions, pyvisa, pyvisa-py
CẢNH BÁO. Các tập lệnh thông tin pyvisa. exe và vỏ pyvisa. exe được cài đặt trong 'C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' không có trên PATH.
Cân nhắc thêm thư mục này vào PATH hoặc, nếu bạn muốn loại bỏ cảnh báo này, hãy sử dụng --no-warn-script-location.
Đã cài đặt pyvisa-1 thành công. 12. 0 pyvisa-py-0. 5. 3 gõ-phần mở rộng-4. 2. 0

C. \Users\donnie>python3
Python 3. 10. 4 [thẻ/v3. 10. 4. 9d38120, ngày 23 tháng 3 năm 2022, 23. 13. 41] [MSCv. 1929 64 bit [AMD64]] trên win32
Nhập "trợ giúp", "bản quyền", "tín dụng" hoặc "giấy phép" để biết thêm thông tin.
>>> nhập pyvisa dưới dạng thị thực
>>> EEZ=visa. Trình quản lý tài nguyên ['@py']. open_resource['TCPIP. 10. 2. 2. 50. INSTR']
Truy nguyên [lần gọi gần đây nhất].
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\Bộ đệm cục bộ\gói cục bộ\Python310\gói trang web\pyvisa py\tcp ip. py", dòng 74, trong after_parsing
self. giao diện = vxi11. CoreClient[
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-gói\Python310\site-gói\pyvisa_py\protocols\vxi11. py", dòng 202, trong __init__
super[CoreClient, self]. __init__[
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyvisa_py\protocols\rpc. py", dòng 768, trong __init__
pmap = TCPPortMapperClient[host, open_timeout]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyvisa_py\protocols\rpc. py", dòng 748, trong __init__
RawTCPClient. __init__[self, host, PMAP_PROG, PMAP_VERS, PMAP_PORT, open_timeout]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyvisa_py\protocols\rpc. py", dòng 457, trong __init__
self. kết nối [[open_timeout / 1000. 0] + 1. 0]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyvisa_py\protocols\rpc. py", dòng 491, trong kết nối
  tăng RPCError["không thể kết nối với máy chủ"]
pyvisa_py. giao thức. cpp. RPCLỗi. không thể kết nối với máy chủ

Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra.

Truy nguyên [lần gọi gần đây nhất].
Tệp "
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-gói\Python310\site-gói\pyvisa\highlevel. py", dòng 3284, trong open_resource
res. open[access_mode, open_timeout]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-gói\Python310\site-gói\pyvisa\resources\resource. py", dòng 278, mở
self. phiên, trạng thái = bản thân. _resource_manager. open_bare_resource[
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-gói\Python310\site-gói\pyvisa\highlevel. py", dòng 3209, trong open_bare_resource
return self. visalib. mở [tự. phiên, resource_name, access_mode, open_timeout]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-gói\Python310\site-gói\pyvisa_py\highlevel. py", dòng 167, trong open
sess = cls[session, resource_name, parsed, open_timeout]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pyvisa_py\sessions. py", dòng 325, trong __init__
self. after_parsing[]
Tệp "C. \Users\donnie\AppData\Local\Packages\PythonSoftwareFoundation. con trăn. 3. 10_qbz5n2kfra8p0\Bộ đệm cục bộ\gói cục bộ\Python310\gói trang web\pyvisa py\tcp ip. py", dòng 78, trong after_parsing
gây ra lỗi. VisaIOError[hằng số. VI_ERROR_RSRC_NFOUND]
pyvisa. lỗi. VisaIOLỗi. VI_ERROR_RSRC_NFOUND [-1073807343]. Thông tin vị trí không đầy đủ hoặc thiết bị hoặc tài nguyên được yêu cầu không có trong hệ thống.
>>>

Ping tới nguồn điện EEZ ở mức 10. 2. 2. 50 phản hồi và EEZ Studio có thể gửi và nhận các lệnh SCPI tới nó mà không gặp vấn đề gì.

Tôi chưa từng sử dụng Python nên không biết nguyên nhân gây ra lỗi.

Có đề xuất nào không?

Cảm ơn

Cảm ơn bạn đã trả lời. Tôi đang cố kết nối với bộ nguồn kênh đôi EEZ H24005. Tôi đã đính kèm ảnh chụp màn hình thiết bị đang sử dụng với ứng dụng giao diện SCPI EEZ Studio. Tôi đã cài đặt Python3 trên Ubuntu 20 mới. 04, sau đó là PIP, sau đó là pyvisa.

donnie@UD5. ~$ sudo apt install python3-pip
[sudo] Mật khẩu cho donnie.
Paketlisten werden gelesen. Fertig
Abhängigkeitsbaum là aufgebaut.
Status informationen 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 lần cài đặt, 0 zu enfernen và 4 nicht aktualisiert.
Es müssen 6. 864 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 25.5 MB Plattenplatz zusätzlich benutzt.
Pháo đài Möchten Sie? . 1 http. //của. lưu trữ. Ubuntu. com/cập nhật tiêu điểm ubfox/amd64 chính libpython3. 8-dev AMD64 3. 8. 10-0ubuntu1~20. 04. 4 [3. 952 kB]
Holen:1 //de.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-dev amd64 3.8.10-0ubuntu1~20.04.4 [3.952 kB]
Lỗ hổng. 2 http. //của. lưu trữ. Ubuntu. com/ubuntu tiêu điểm/amd64 chính libpython3-dev amd64 3. 8. 2-0ubuntu2 [7. 236 B]
Lỗ. 3 http. //của. lưu trữ. Ubuntu. com/cập nhật tiêu điểm ubfox/vũ trụ amd64 python-pip-whl tất cả 20. 0. 2-5ubuntu1. 6 [1. 805 kB]
Lỗ hổng. 4 http. //của. lưu trữ. Ubuntu. com/cập nhật tiêu điểm ubfox/amd64 chính python3. 8-dev AMD64 3. 8. 10-0ubuntu1~20. 04. 4 [514 kB]
Lỗ hổng. 5 http. //của. lưu trữ. Ubuntu. com/ubuntu tiêu điểm/amd64 chính python3-dev amd64 3. 8. 2-0ubuntu2 [1. 212 B]
Lỗ. 6 http. //của. lưu trữ. Ubuntu. com/ubuntu tiêu điểm/chính amd64 python3-setuptools tất cả 45. 2. 0-1 [330 kB]
Holen. 7 http. //của. lưu trữ. Ubuntu. com/ubuntu tiêu cự/vũ trụ amd64 python3-wheel tất cả 0. 34. 2-1 [23,8 kB]
Holen. 8 http. //của. lưu trữ. Ubuntu. com/cập nhật tiêu điểm ubfox/vũ trụ amd64 python3-pip tất cả 20. 0. 2-5ubuntu1. 6 [231 kB]
Es wurden 6. 864 kB trong thời gian 15 giây [473 kB/s].
Vormals nicht ausgewähltes Paket libpython3. 8-dev. amd64 là tốt.
[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. cuộc tranh luận.
Entpacken của libpython3. 8-dev. amd64 [3. 8. 10-0ubuntu1~20. 04. 4].
Vormals nicht ausgewähltes Paket libpython3-dev. amd64 là tốt.
Vorbereitung zum Entpacken von. /1-libpython3-dev_3. 8. 2-0ubuntu2_amd64. cuộc tranh luận.
Entpacken của libpython3-dev. amd64 [3. 8. 2-0ubuntu2].
Vormals nicht ausgewähltes Paket python-pip-whl wird gewählt.
Vorbereitung zum Entpacken von. /2-trăn-pip-whl_20. 0. 2-5ubuntu1. 6_all. cuộc tranh luận.
.
Entpacken von python-pip-whl [20. 0. 2-5ubuntu1. 6].
Vormals nicht ausgewähltes Paket python3. 8-dev là tốt.
Vorbereitung zum Entpacken von. /3-python3. 8-dev_3. 8. 10-0ubuntu1~20. 04. 4_amd64
. cuộc tranh luận.
Entpacken của 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. cuộc tranh luận.
Entpacken của 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. cuộc tranh luận.
Entpacken của python3-setuptools [45. 2. 0-1].
Vormals nicht ausgewähltes Paket python3-wheel wird gewählt.
Vorbereitung zum Entpacken von. /6-trăn3-bánh_0. 34. 2-1_all. cuộc tranh luận.
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. cuộc tranh luận.
Entpacken của python3-pip [20. 0. 2-5ubuntu1. 6].
python3-setuptools [45. 2. 0-1] là eingerichtet.
trăn 3 bánh [0. 34. 2-1] là eingerichtet.
libpython3. 8-dev. amd64 [3. 8. 10-0ubuntu1~20. 04. 4] eingerichtet kỳ lạ.
python3. 8-dev[3. 8. 10-0ubuntu1~20. 04. 4] eingerichtet kỳ lạ.
python-pip-whl [20. 0. 2-5ubuntu1. 6] eingerichtet kỳ lạ.
libpython3-dev. amd64 [3. 8. 2-0ubuntu2] là eingerichtet.
python3-dev [3. 8. 2-0ubuntu2] là eingerichtet.
python3-pip [20. 0. 2-5ubuntu1. 6] eingerichtet kỳ lạ.
Kích hoạt man-db [2. 9. 1-1] werden verarbeitet.
donnie@UD5. ~$ pip install pyvisa-py
Đang thu thập pyvisa-py
Đang tải xuống PyVISA_py-0. 5. 3-py3-none-bất kỳ. whl [59 kB]
. ████████████████████████████████. 59 kB 474 kB/s
Đang thu thập typing-extensions
Đang tải typing_extensions-4. 2. 0-py3-none-bất kỳ. whl [24 kB]
Đang thu thập pyvisa>=1. 12. 0
Đang tải xuống PyVISA-1. 12. 0-py3-none-bất kỳ. whl [175 kB]
. ████████████████████████████████. 175 kB 759 kB/s
Cài đặt các gói đã thu thập. typing-extensions, pyvisa, pyvisa-py
CẢNH BÁO. Các tập lệnh pyvisa-info và pyvisa-shell được cài đặt trong '/home/donnie/. local/bin' không có trên PATH.
Cân nhắc việc thêm thư mục này vào PATH hoặc, nếu bạn muốn loại bỏ cảnh báo này, hãy sử dụng --no-warn-script-location.
Đã cài đặt thành công pyvisa-1. 12. 0 pyvisa-py-0. 5. 3 gõ-phần mở rộng-4. 2. 0
donnie@UD5. ~$ python3
Python 3. 8. 10 [mặc định, ngày 15 tháng 3 năm 2022, 12. 22. 08]
[GCC 9. 4. 0] trên linux
Nhập "trợ giúp", "bản quyền", "tín dụng" hoặc "giấy phép" để biết thêm thông tin.
>>> nhập pyvisa dưới dạng thị thực
>>> EEZ=visa. Trình quản lý tài nguyên ['@py']. open_resource['TCPIP. 10. 2. 2. 50. 5025. SOCKET']
>>> print [EEZ. query["*IDN?"]]
Traceback [lần gọi gần đây nhất].
Tệp "
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 648, trong truy vấn
return self. read[]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 486, ở dạng đọc
message=self. _read_raw[]. giải mã [enco]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 442, trong đoạn _read_raw
, status=self. visalib. đọc [tự. phiên, kích thước]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/site-gói/pyvisa_py/highlevel. py", dòng 519, trong read
, trả về dữ liệu, tự. handle_return_value[session, status_code]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/site-gói/pyvisa/highlevel. py", dòng 251, trong handle_return_value
gây ra lỗi. VisaIOError[rv]
pyvisa. lỗi. VisaIOLỗi. VI_ERROR_TMO [-1073807339]. Hết thời gian chờ trước khi thao tác hoàn tất.
>>> in [EEZ. query["*IDN?"]]
Traceback [lần gọi gần đây nhất].
Tệp "
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 648, trong truy vấn
return self. read[]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 486, ở dạng đọc
message=self. _read_raw[]. giải mã [enco]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/gói trang web/pyvisa/tài nguyên/dựa trên thông báo. py", dòng 442, trong đoạn _read_raw
, status=self. visalib. đọc [tự. phiên, kích thước]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/site-gói/pyvisa_py/highlevel. py", dòng 519, trong read
, trả về dữ liệu, tự. handle_return_value[session, status_code]
Tệp "/home/donnie/. cục bộ/lib/python3. 8/site-gói/pyvisa/highlevel. py", dòng 251, trong handle_return_value
gây ra lỗi. VisaIOError[rv]
pyvisa. lỗi. VisaIOLỗi. VI_ERROR_TMO [-1073807339]. Hết thời gian chờ trước khi thao tác hoàn tất.
>>>


Từ thiết lập EEZ Studio, tôi phỏng đoán rằng mình cần thêm cổng ổ cắm 5025 vào lệnh gọi TCP/IP để định địa chỉ thiết bị. Làm điều đó, tôi dường như tiếp cận đơn vị bằng pyvisa, nhưng *IDN? .

Phần giới thiệu của bạn khiến tôi tin rằng đây là một phương pháp có vẻ đơn giản và chung chung để nói về SCPI, nhưng đối với tôi nó không còn đơn giản và chung chung nữa vì tôi không thể làm cho nó hoạt động được Windows hoặc Linux. Tôi đoán kỳ vọng của tôi quá cao.

Trân trọng,
Donnie




SCPI trong Python là gì?

Các lệnh SCPI là một bộ lệnh dựa trên ASCII để đọc và ghi cài đặt công cụ . Đối với hướng dẫn này, chúng tôi sẽ sử dụng hệ điều hành win7 64bit, Python 2. 7. 12 [Anaconda2 4. 2. 0 64-bit] và Tabor WX2184C sử dụng giao diện TCP/IP.

Các lệnh SCPI có phổ biến không?

SCPI [Lệnh tiêu chuẩn dành cho công cụ có thể lập trình] là ngôn ngữ lập trình chung cho các công cụ đo lường và kiểm tra điện tử , dựa trên IEEE 488. 1 và IEEE 488. 2 tiêu chuẩn.

Lập trình SCPI là gì?

SCPI [Lệnh tiêu chuẩn dành cho công cụ có thể lập trình] là ngôn ngữ lập trình dựa trên ASCII dành cho công cụ kiểm tra và đo lường . Các lệnh SCPI sử dụng cấu trúc phân cấp được gọi là hệ thống cây. Các lệnh liên quan được nhóm lại dưới một nút hoặc gốc chung, do đó tạo thành các hệ thống con.

LabVIEW có sử dụng SCPI không?

LabVIEW có thể nói chuyện với các công cụ bằng cách sử dụng nối tiếp ngay khi mở hộp và nó biết cách nói chuyện với các Lệnh tiêu chuẩn cho các công cụ có thể lập trình [SCPI] .

Chủ Đề