问题标签 [pyvisa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - pyVISA:以编程方式将仪器返回到本地模式
我正在使用 pyVISA 来控制 GPIB 网络中的一些仪器。当我创建资源管理器时,我的 GPIB 网络中的所有仪器都进入远程模式,因此前面板显示被锁定并且不会更新。当我关闭资源管理器时,仪器仍处于远程模式。
在这种特殊情况下,我只想控制网络中的一台仪器,但需要打开其他仪器的电源,并实时显示前面板。
有没有办法以编程方式从资源管理器中排除“额外”仪器(如果我可以帮助,不想断开 GPIB 电缆或手动关闭 GPIB 通信)和/或类似“转到本地" 命令我可以发送到整个网络或特定仪器,因此一旦根据需要配置了相关仪器,前面板就会生效?
更新:
经过一些实验和进一步阅读,我发现以下将我的仪器返回到本地模式:
值 0 和 6 是在 pyVISA 中设置的常量(http://pyvisa.readthedocs.io/en/stable/_modules/pyvisa/constants.html)似乎我应该能够在这里指定一个变量名而不是常量所以那里显然是我不理解的其他东西,但至少我现在有一个可行的解决方案。
python - 从配置文件python读取列表
再会,
tldr ; 配置读取脚本返回单个字符而不是字符串。
我正在编写一个可以使用 SCPI 命令连接到各种仪器的程序。除此之外,每个仪器都必须以不同的方式初始化,并且应该添加新仪器,因此我制作了一个配置文件,如下所示;
此外,我尝试读取配置文件;
我期望的是一个命令列表,但它返回单个字符,甚至是引号。小样本;
它是如何返回单个字符而不是我定义的命令的?
python - Pyvisa 使用 Keysight 发电机超时
我正在尝试回读 Keysight 发生器在采样期间测量的值,但我不断收到超时错误:
我能够读取其他数据,例如 IDN,所以我不认为终止信号有错误,我一直在使用它来获取我的命令: http: //literature.cdn.keysight.com/litweb /pdf/N6705-90001.pdf我正在查看的部分是从第 162 页到第 168 页。这是我的代码,第一部分获取 IDN 并读取电压和电流,这是测量注释后的部分似乎不工作。先感谢您。
python - PyVisa“更复杂的例子”根本不运行 - Keithley 2400 不理解的命令
把我的头撞在桌子上——一直在用这个吉时利 2400 转来转去,以快速阅读。我遇到的一个问题是,当预期超过 100 个读数时,只有 10 个读数从系统返回……但这不是这个问题的意义所在……
我已经为“更复杂的示例”编写了 PyVisa 文档中的示例,但演示代码根本不起作用。Keithley 2400 在 Sample:Count 生产线上死亡。事实上,在吉时利的手册中,并没有出现这个功能。写在这里是为了让遇到同样问题的人也能谅解。
PyVisa 文档中的示例代码如下:
导入签证 rm = visa.ResourceManager() rm.list_resources() keithley = rm.open_resource('GPIB0::24::INSTR')
keithley.write("*RST;状态:预设;*CLS")
interval_in_ms = 500 number_of_readings = 10 keithley.write("STATUS:MEASUREMENT:ENABLE 512; *sre 1") keithley.write("SAMPLE:COUNT %d" % number_of_readings) keithley.write("TRIGGER:SOURCE BUS")
keithley.write("TRIGGER:DELAY %f" % (interval_in_ms / 1000.0)) keithley.write("TRACE:POINTS %d" % number_of_readings) keithley.write("TRACE:FEED SENSE1; FEED:CONTROL NEXT")
keithley.write("启动")
keithley.assert_trigger()
keithley.wait_for_srq()
keithley.query("跟踪:数据?")
电压 = keithley.query_ascii_values("TRACE:DATA?")
print("平均电压:", sum(voltages) / len(voltages))
keithley.query("状态:测量?")
keithley.write("TRACE:CLEAR; FEED:CONTROL NEXT")
问题似乎出现在这一行:
keithley.write("SAMPLE:COUNT %d" % number_of_readings)
这在文档和 sourcemeter2400 单元中是完全未知的
当前固件是c32
希望这篇文章对某人有所帮助。
python - PyVISA SerialInstrument 失败后需要硬重置才能连接
我正在使用 Keysight 波形发生器和 pyVisa,我注意到如果我的代码没有成功完成并结束,我需要对设备执行硬重置以再次尝试我的代码。
我尝试在该__del__
方法下重置设备,使设备处于已知状态,但这似乎不起作用。我也尝试过使用pyvisa.resources.SerialInstrument.clear()
. 有没有其他人遇到过这样的问题,你是如何解决的?
主机运行windows 7。PyVISA版本为1.8。在程序因我取消 python 脚本而失败后,我将尝试发送一个简单的 *IDN?SCPI 命令到设备,我得到错误:
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
如果我尝试在设备上调用 pyvisa.resources.SerialInstrument.clear() 我得到错误
pyvisa.errors.VisaIOError: VI_ERROR_INV_SETUP (-1073807302): Unable to start operation because setup is invalid (usually due to attributes being set to an inconsistent state)
。
python - Py Visa 突然无法启动 ctypes 'module' 对象没有属性 'c_ulong'
我不明白这是怎么发生的。星期五我的代码运行良好!然后今天我不能再进口签证了。我卸载了 python x,y 并删除了 python27 文件夹,然后重新安装了 python x,y 并重新安装了 pyvisa 1.4(我以前使用过的版本),但仍然出现以下错误。
python - 在 pyvisa 中为串口的 write_ascii_values 赋值
我想通过 RS232toUSB 将我的 Keithley 6485 皮安表连接到我的 Linux PC(CentOS 6.9)并使用 pyvisa 在 python(2.7.13 版)中编写代码,从而从外部控制我的 Keithley 6485 Picoammeter:
当我运行这个脚本时的问题我只是得到“1”作为打印输出,虽然它应该像这样以 ASCII 格式返回:Reading, Timestamp, Status and the error message after amm.write("*RST"): -113未定义的标头。所以我认为消息并没有正确传输。
我知道通过 RS-232 接口,只允许使用 ASCII 格式。但是当我按照pyvisa 指令中的示例使用 write_ascii_values(text, values) 并为其分配一个列表时,我只收到来自设备 -100 命令错误的错误消息。
有人可以告诉我如何正确设置 write_ascii_values 中的变量或我做错了什么吗?我对串行设备的设置是否错误?有时当我执行 2 次时,我会收到错误“VI_ERROR_ASRL_FRAMING (-1073807253): A framing error occurred during transfer ”。也。我只是不知道该怎么办。
谢谢!
问候, 罗兰
python - pyvisa 错误:“list”对象没有属性“endswith”
我正在尝试使用 pyvisa 向仪器发送命令-但是在运行 python 脚本时出现以下错误:
cmd.endswith = 0 AttributeError: 'list' 对象没有属性 'endswith'
以下是收到上述错误的代码:
有关如何有效消除错误的任何建议?
python - NameError:未在 Python 中使用 PyVisa 定义全局名称“仪器”
我尝试使用 PyVisa 库和 Chipwhisperer 中的列表函数在 python 中连接 Agilent MSO8064 振荡器
我的代码如下(VisaScope.py):
我得到了这样的错误:
pyVisa 已安装。
python - Python:抑制不使用标准输出的库输出
我在使用pyVisa
库进行端口通信时遇到问题,因为它有时会向控制台(eG)输出大量重复信息:
Comm::LockCheck: sess=122e248, isDevSess=0, locssess=0, pid=6220, lockpid=0
Devsess 可以被锁定。
Intfsess 可以被锁定。
我已经尝试按照许多其他帖子(例如)中的建议重定向标准输出:
这在使用时会抑制我自己的print
命令,但不会阻止库打印。
最好在 Thread 中使用任何建议都是安全的。(我知道尝试的代码不是)