AnyMath 文档

VISA软件管理

本页包含所有可用的VISA软件管理功能 AnyMath.

使用VISA软件管理功能 AnyMath,按照在给出的说明 文章. 之后,执行:

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.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值。若出现问题,请降低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()
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