VISA软件管理
本页包含所有可用的VISA软件管理功能 AnyMath.
|
使用VISA软件管理功能 AnyMath,按照在给出的说明 文章. 之后,执行:
接下来,您需要创建一个VISA对象,该对象将用于与测量设备进行交互。:
|
方法 签证
#
EngeeDeviceManager.Devices.VISA.close_instrument — Method
visa.close_instrument(port)
释放通过VISA规范连接的设备的总线。
参数
port::String :通过VISA规范连接的设备的端口。可通过函数visa.get_ports() 获取。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.create_instrument(port)
visa.close_instrument(port)
#
EngeeDeviceManager.Devices.VISA.close_session — Method
visa.close_session()
关闭 VISA 工作会话。
参数
无(该方法由 VISA 对象调用)。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.close_session()
#
EngeeDeviceManager.Devices.VISA.create_instrument — Method
visa.create_instrument(port)
visa.create_instrument(port, settings)
创建通过指定端口连接的设备实例。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports()获取。 -
settings::PortSettings: 连接参数。如果该字段设置为nothing,则使用驱动程序/设备的默认值。
结构PortSettings
Base.@kwdef mutable struct PortSettings
baud_rate::Union{Int64, Nothing} = nothing
chunk_size::Union{Int64, Nothing} = nothing
write_termination::Union{String, Nothing} = nothing
read_terminator::Union{String, Nothing} = nothing
CR::Union{String, Nothing} = nothing
LF::Union{String, Nothing} = nothing
end
其中:
-
baud_rate:通过COM接口的传输速率。 -
chunk_size:读取块大小(chunk)。(某些串行设备不支持较大的chunk值。若出现问题,请降低chunk_size参数的值。) -
write_termination:用于标记写入字节序列结束的结束符,例如"\r"、\n、\r\n。 -
read_terminator: 用于标记读取字节序列结束的结束符,例如"\n"或\r\n。 -
CR: 流式读写时的回车控制字符("\r")。 -
LF: 流式读写时的换行控制字符("\n")。
示例
# 经典的设备实例创建
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.create_instrument(port)
# 带参数的实例创建PortSettings
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.create_instrument(port, VISA.PortSettings(
baud_rate = 115200,
chunk_size = 256,
write_termination = "\r\n",
read_terminator = "\n",
CR = "\r",
LF = "\n",
))
#
EngeeDeviceManager.Devices.VISA.create_session — Method
visa.create_session(backend)
创建用于操作 VISA 的会话。
参数
backend::String :VISA 规范的硬件实现,例如"@py" 或"@ni" 。
示例
visa = VISA.Visa()
visa.create_session("@py")
#
EngeeDeviceManager.Devices.VISA.flush — Method
visa.flush(port, flush_type)
清空设备的 I/O 缓冲区。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports()获取。 -
flush_type::String:清理类型。例如:"flush_write_buffer"或"flush_transmit_buffer"。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.create_instrument(port)
visa.flush(port, "flush_write_buffer")
#
EngeeDeviceManager.Devices.VISA.get_ports — Method
visa.get_ports()
获取可用物理端口的列表。
参数
无(该方法由 VISA 对象调用)。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
#
EngeeDeviceManager.Devices.VISA.read — Function
visa.read(port, termination)
从设备读取数据。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports()获取。 -
termination::String:设备特有的读取结束标志。若未定义,则应留空""。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
read_result = visa.read(port, "").data
#
EngeeDeviceManager.Devices.VISA.readbinblock — Method
visa.readbinblock(port, size)
从设备读取二进制数据。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports()获取。 -
size::Int64:用于读取字节的缓冲区大小,例如:8。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
bytes = visa.readbinblock(port, 8).data
#
EngeeDeviceManager.Devices.VISA.visatrigger — Method
visa.visatrigger(port)
向设备发送中断命令。
参数
port::String :通过 VISA 规范连接的设备端口。可通过函数visa.get_ports() 获取。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.visatrigger(port)
#
EngeeDeviceManager.Devices.VISA.write — Function
visa.write(port, message, termination)
向设备写入消息。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports(visa::Any)获取。 -
message::String:包含 SCPI 命令的消息。例如:"RST;:SYSTEM:LOCK OFF"用于重置设置。 -
termination::String:设备专用的写入结束符。 如果未定义,则需留空""。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.create_instrument(port)
numbytes = visa.write(port, "*RST;:SYSTEM:LOCK OFF", "").data
#
EngeeDeviceManager.Devices.VISA.writebinblock — Method
visa.writebinblock(port, message)
将二进制数据写入设备。
参数
-
port::String:通过 VISA 规范连接的设备端口。可通过函数visa.get_ports()获取。 -
message::Vector{UInt8}: 待写入的二进制数据。例如:[0x01, 0x00]。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
numbytes = visa.writebinblock(port, [0x01, 0x00]).data
#
EngeeDeviceManager.Devices.VISA.writeread — Function
visa.writeread(port, message, delay)
向仪器写入数据并读取响应。
参数
-
port::String:通过 VISA 规范连接的仪器端口。可通过函数visa.get_ports()获取。 -
message::String:包含 SCPI 命令的消息。例如:":CHAN1:BASE:WAV?"将返回第一个通道的信号类型。 -
delay::Float64:从设备接收响应所需的延迟(最佳值1.0,对于旧款设备则为1.5)。有关响应延迟的详细信息,请参阅所用设备的文档。
示例
visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
writeread_result = visa.writeread(port, ":CHAN1:BASE:WAV?", 1.2).data