VISA软件管理
本页包含*Engee*中所有可用的VISA软件管理功能。
|
要使用*Engee*中的VISA软件管理功能,请按照 文章. 之后,执行:
接下来,您需要创建一个VISA对象,该对象将用于与测量设备进行交互。:
|
方法 签证
#
EngeeDeviceManager.Devices.VISA.Visa — Type
#
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.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_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_instrument — Method
#
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.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.set_settings — Method
#
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