pyvisa 是 1.8 python 是 3.6.3 操作系统为 win10 64
google 的结果一般是波特率和 terminator (命令结束标志符号)设置的问题 波特率需要统一 和 terminator 需要设置为 /r /自己摸索着设置了一下 还是一样的错误 希望大家能够一些建议 谢谢!
代码 import visa import time rm=visa.ResourceManager() print(rm.list_resources()) A=rm.open_resource("ASRL5::INSTR") A.timeout=25000 print(A.query('*IDN? ' )) #A.write_termination = '\r' #A.read_termination = '\r' #A.timeout=25000 #A.write("*RST") #A.write(":SENSE:FUNCTION 'RES'") #A.write(":FORMAT:ELEMENTS RES") #A.write(":OUTPUT ON") #for i in range(1,5): #A.write(":READ?") #data = A.read("TRACE:DATA ") #print(data)
编译器反馈 ('ASRL1::INSTR', 'ASRL5::INSTR', 'ASRL4::INSTR') Traceback (most recent call last): File "E:/2018261630/18261631.py", line 7, in <module> print(A.query('*IDN? ' )) File "C:\Python\lib\site-packages\pyvisa\resources\messagebased.py", line 407, in query return self.read() File "C:\Python\lib\site-packages\pyvisa\resources\messagebased.py", line 332, in read message = self.read_raw().decode(enco) File "C:\Python\lib\site-packages\pyvisa\resources\messagebased.py", line 306, in read_raw chunk, status = self.visalib.read(self.session, size) File "C:\Python\lib\site-packages\pyvisa\ctwrapper\functions.py", line 1582, in read ret = library.viRead(session, buffer, count, byref(return_count)) File "C:\Python\lib\site-packages\pyvisa\ctwrapper\highlevel.py", line 188, in _return_handler raise errors.VisaIOError(ret_value) pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
Process finished with exit code 1
1
yellowtail OP 会不会是线的问题和仪器的问题呢?线是很便宜的那种,仪器也无法被 keysight 官方的 io control 软件识别
|
2
yellowtail OP 增加 read_termination = '\r'就可以实现了! 不过 read 还是用不了只能用 query 和 ask 代替 而且不使用 write_termination = '\r'没影响 虽然不知道怎么回事...希望可以帮助到其他有类似困难的人吧
|
3
yellowtail OP 还有一个问题就是仪器总是提示 undefined header 代码 113 伴有报警 重复几次以后就不让接入了
|
4
234235 2018-02-07 08:54:27 +08:00 1
既然是 232 接口,就没有必要用 VISA 库,直接调 Serial 库不是更方便?
另外,猜测可能是 DTR RTS 流控的问题,建议你再看一下设备文档,另外可以用串口助手测试一下。 |
5
yellowtail OP @234235 主要是不会 都是按着例子自己做的 身边没有能问的
|
6
234235 2018-02-27 08:58:38 +08:00
我又看了一下,你这个设备是泰克的,用是德的软件肯定识别不了啊。
你是用的 usb 转 232 线吗?先找个串口助手试试指令。 设备是可以调波特率流控和结束符的,你按照文档调一下。能用串口助手通信了,再用 py 去控制。 |