Engee 文档

VISA软件管理

本页包含*Engee*中所有可用的VISA软件管理功能。

要使用*Engee*中的VISA软件管理功能,请按照 文章. 之后,执行:

using Main.EngeeDeviceManager.Devices.VISA

接下来,您需要创建一个VISA对象,该对象将用于与测量设备进行交互。:

visa = VISA.Visa()

"签证"方法

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)
visa.close_session()

关闭签证会话。

参数

缺失(该方法是从签证对象中调用的)。

例子

visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
port = last(ports)
visa.close_session()
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",
))
visa.create_session(backend)

创建使用VISA的会话。

参数

backend::String:VISA规范的硬件实现,例如, "@py""@ni".

例子

visa = VISA.Visa()
visa.create_session("@py")
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")
visa.get_ports()

检索可用物理端口列表。

参数

缺失(该方法是从签证对象中调用的)。

例子

visa = VISA.Visa()
visa.create_session("@py")
ports = visa.get_ports().data
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
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
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)
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
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
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