您使用什么命令与C#,visual studio中的GPIB仪器通信?我需要能够向仪器写入命令并读取输出.
我正在实验室仪器的自动化过程中.我有一个像函数的要求将通过VISA GPIB从主机PC发送文件/二进制数据到仪器.
在Ni4882.h中,有以下函数在Visual Studio 2010中传输文件/二进制数据,它正在工作.我非常精通发送命令作为GPIB字符串.
但我从未遇到通过GPIB命令发送文件.
这些是我在c ++中尝试过的函数.我使用ni4882.obj文件(有这些功能的定义)并创建了一个应用程序,所以我能够将文件PC传输到仪器.但是我无法在python中找到等效的函数
unsigned long NI488CC ibwrtfA  (int ud, const char * filename);
unsigned long NI488CC ibwrtfW  (int ud, const wchar_t * filename);
Run Code Online (Sandbox Code Playgroud)
谁能告诉我pyvisa或visa python包中的等效功能? - 或 - 任何等效的模块替代它.
我浏览了pyvisa和签证的所有功能,但我找不到相应的功能.
提前致谢!!
pyvisa 无法找到 VISA 实现并且无法加载 NI-VISA 后端:
>>> import visa
>>> import platform
>>> print(platform.architecture())
('64bit', 'WindowsPE')
>>> rm = visa.ResourceManager(visa_library="C:\\Windows\\System32\\visa64.dll")
ValueError: Could not locate a VISA implementation. Install either the NI binary or pyvisa-py.
Run Code Online (Sandbox Code Playgroud)
系统设置:
我已验证 .dll 文件是否存在:
pyvisa.info 内容如下:
C:\Python27>python -m Visa info 机器详细信息:平台 ID:
Windows-10-10.0.16299 处理器:Intel64 Family 6 Model 60 Stepping 3,GenuineIntelPython: 实现:CPython 可执行文件:
C:\Python27\python.exe 版本:2.7.15 编译器:
MSC v.1500 64 位 (AMD64) 位:64 位 …
除了基本的.NET项目外,我对其他任何事物都还算陌生,但是我目前正在尝试创建一个可与T&M仪器配合使用的测试系统,该系统可通过SCPI通过GPIB,USB等各种介质进行通信。我安装了Keysight IO库,一直在阅读其中的VISA.NET帮助文档。
我希望我的程序尽可能与VISA供应商无关,因此决定坚持仅通过Ivi.Visa接口使用实现。我当时正在考虑使用类似下面的伪代码的仪器对通信进行编码:
//Access implementation only via IVI interfaces to keep things vendor neutral
using Ivi.Visa;
// Get a session from the manager
var Session = (IGpibSession)GlobalResourceManager.Open(Alias, AccessMode, Timeout);
// Use the formatted IO interface of the session
var io = Session.FormattedIO;
// Some communication operations
// UserCommand is some faux type object
io.PrintfAndFlush("%s", UserCommand.ToString);
if (UserCommand.Query)
    io.Scanf("%s", out UserCommand.Result);
// Doesn't seem to be any Close method on resource manager, session or interface?
Session.DiscardEvents(EventType.AllEnabled);
Session.Dispose();
Run Code Online (Sandbox Code Playgroud)
但是,我只是指出,虽然我以前以为在其他文档中看到的COM示例主要是指较旧的用法,但仍引用了COM示例(例如,通过USB从C#发送SCPI …
我目前正在开展一个项目,我们正在进行一些自动化测试.
我们使用Rohde和Schwarz矢量网络分析仪进行测试,它为通信提供的接口是GPIB.在我的笔记本电脑上,它只需插入USB.
如何在VB中与它通信?
谢谢!
我需要向GPIB仪器发送命令,我可以这样做:power.write("volt 0.01").
此命令将我的电源输出设置为0.01V,但是,我正在尝试采用IV曲线并希望将源设置为不同的值并对每个值进行测量.我基本上需要某种循环来为我做这个.我尝试了以下方法:
k=0
while k<= 1:
    power.write("volt k")
    k=k+0.01
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为k发送为'k',而不是数字.我该如何解决?
我正在使用pyvisa来控制信号恢复sr7225锁定放大器.几乎一切都按预期工作.只有一个问题,当查询的值正好为零并且在浮点模式下进行一次查询时,将返回以下内容
>>>import visa
>>>lockin = visa.instrument('GPIB::08')
>>>lockin.ask('X.') # Query X value in floating point mode
0.0E+00\x00
Run Code Online (Sandbox Code Playgroud)
ascii值附加到响应字符串.我想附加的ascii值\x00是一个bug,但它意味着我不能用于float()将字符串响应转换为float.你会怎么处理这个?