Программное управление VISA
На этой странице представлены все доступные функции программного управления VISA в Engee.
Чтобы работать с функциями программного управления VISA в Engee, следуйте инструкциям, указанным в статье engee-hardware/integration-with-hardware.adoc#hardware-installation. После необходимо создать объект VISA, который будет использоваться для взаимодействия с измерительными приборами:
|
Методы VISA
#
EngeeDeviceManager.Devices.VISA.close_instrument
— Method
VISA.close_instrument(visa::Any, port::String)
Освобождает шину для прибора, подключенного через спецификацию VISA.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.create_instrument(visa, port)
VISA.close_instrument(visa, port)
#
EngeeDeviceManager.Devices.VISA.close_session
— Method
VISA.close_session(visa::Any)
Закрывает сессию работы с VISA.
Аргументы
visa::Any
: объект спецификации VISA. Для создания объекта используется команда visa = VISA.Visa()
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.close_session(visa)
#
EngeeDeviceManager.Devices.VISA.create_instrument
— Method
VISA.create_instrument(visa::Any, port::String)
Создает экземпляр прибора, подключенного по указанному порту.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.create_instrument(visa, port)
#
EngeeDeviceManager.Devices.VISA.create_session
— Method
VISA.create_session(visa::Any, backend:String)
Создает сессию для работы с VISA.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
backend::String
: аппаратная реализация спецификации VISA, например,"@py"
или"@ni"
.
Примеры
VISA.create_session(visa, "@py")
#
EngeeDeviceManager.Devices.VISA.flush
— Method
VISA.flush(visa::Any, port::String, flush_type::String)
Очищает I/O буфера прибора.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
flush_type::String
: тип очистки. Например:"flush_write_buffer"
или"flush_transmit_buffer"
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.create_instrument(visa, port)
VISA.flush(visa, port, "flush_write_buffer")
#
EngeeDeviceManager.Devices.VISA.get_ports
— Method
VISA.get_ports(visa::Any)
Получает список доступных физических портов.
Аргументы
visa::Any
: объект спецификации VISA. Для создания объекта используется команда visa = VISA.Visa()
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
#
EngeeDeviceManager.Devices.VISA.read
— Function
VISA.read(visa::Any, port::String, termination::String)
Читает данные с прибора.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
termination::String
: символ завершения чтения, специфичный для прибора. Если не определен, то нужно оставить пустым""
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
read_result = VISA.read(visa, port, "").data
#
EngeeDeviceManager.Devices.VISA.readbinblock
— Method
VISA.readbinblock(visa::Any, port::String, size::Int64)
Читает бинарные данные с прибора.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
size::Int64
: размер буфера для считывания байт, например:8
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
bytes = VISA.readbinblock(visa, port, 8).data
#
EngeeDeviceManager.Devices.VISA.visatrigger
— Method
VISA.visatrigger(visa::Any, port::String)
Подает команды прерывания в прибор.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.visatrigger(visa, port)
#
EngeeDeviceManager.Devices.VISA.write
— Function
VISA.write(visa::Any, port::String, message::String, termination::String)
Записывает сообщения в прибор.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
message::String
: сообщение со SCPI командой. Например:"RST;:SYSTEM:LOCK OFF"
для сброса настроек. -
termination::String
: символ завершения записи, специфичный для прибора. Если не определен, то нужно оставить пустым""
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.create_instrument(visa, port)
numbytes = VISA.write(visa, port, "*RST;:SYSTEM:LOCK OFF", "").data
#
EngeeDeviceManager.Devices.VISA.writebinblock
— Method
VISA.writebinblock(visa::Any, port::String, message::Vector{UInt8})
Записывает бинарные данные в прибор.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
message::Vector{UInt8}
: бинарные данные для записи. Например:[0x01, 0x00]
.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
numbytes = VISA.writebinblock(visa, port, [0x01, 0x00]).data
#
EngeeDeviceManager.Devices.VISA.writeread
— Function
VISA.writeread(visa::Any, port::String, message::String, delay::Float64)
Записывает в прибор и читает ответ.
Аргументы
-
visa::Any
: объект спецификации VISA. Для создания объекта используется командаvisa = VISA.Visa()
. -
port::String
: порт прибора, подключенного через спецификацию VISA. Можно получить с помощью функцииVISA.get_ports(visa::Any)
. -
message::String
: сообщение со SCPI командой. Например:":CHAN1:BASE:WAV?"
вернет тип сигнала в первом канале. -
delay::Float64
: задержка для получения ответа с прибора (оптимальное значение1.0
, для старых приборов до1.5
). Подробнее о задержке отклика читайте в документации используемого прибора.
Примеры
VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
writeread_result = VISA.writeread(visa, port, ":CHAN1:BASE:WAV?", 1.2).data