VISA软件管理
本页包含*Engee*中所有可用的VISA软件管理功能。
要使用*Engee*中的VISA软件管理功能,请按照 文章. 之后,执行:
接下来,您需要创建一个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.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_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.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