Документация Engee

Программное управление VISA

Чтобы работать с функциями программного управления VISA в Engee, установите пакет поддержки работы с оборудованием, выполнив следующие команды в командной строке img 41 1 2:

engee.package.install("Engee-Device-Manager")
using Main.EngeeDeviceManager

На этой странице представлены все доступные функции программного управления VISA в Engee.

Методы VISA

VISA.close_instrument(visa::Any, port::String)

Освобождение шины для инструмента.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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, "USB::Instrument")
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_instrument(visa, port)
VISA.create_instrument(visa::Any, port::String)

Создает абстракцию прибора VISA.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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.create_session(visa::Any, backend:String)

Создание сессии для работы с VISA.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • backend::String: аппаратная реализация спецификации VISA, например, "@py" или "@ni".

Примеры

VISA.create_session(visa, "@py")
VISA.flush(visa::Any, port::String, flush_type::String)

Очистка I/O буфера прибора.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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")
VISA.get_ports(visa::Any)

Получение списка доступных физических портов.

Аргументы

visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

Примеры

VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
VISA.read(visa::Any, port::String, termination::String)

Чтение данных с прибора.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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
VISA.readbinblock(visa::Any, port::String, size::Int64)

Чтение бинарных данных с прибора.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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
VISA.visatrigger(visa::Any, port::String)

Подача команды прерывания в прибор.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции VISA.get_ports(visa::Any).

Примеры

VISA.create_session(visa, "@py")
ports = VISA.get_ports(visa).data
port = last(ports)
VISA.visatrigger(visa, port)
VISA.write(visa::Any, port::String, message::String, termination::String)

Запись сообщения в прибор.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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
VISA.writebinblock(visa::Any, port::String, message::Vector{UInt8})

Запись бинарных данных в прибор.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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
VISA.writeread(visa::Any, port::String, message::String, delay::Float64)

Запись в прибор и чтение ответа.

Аргументы

  • visa::Any: объект девайса VISA. Для создания объекта используется команда visa = VISA.Visa().

  • port::String: порт устройства. Можно получить с помощью функции 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