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

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

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

Чтобы работать с функциями программного управления VISA в Engee, следуйте инструкциям, указанным в статье engee-hardware/integration-with-hardware.adoc#hardware-installation.

После необходимо создать объект VISA, который будет использоваться для взаимодействия с измерительными приборами:

visa = VISA.Visa()

Методы VISA

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)
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)
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)
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. Можно получить с помощью функции 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. Можно получить с помощью функции 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. Можно получить с помощью функции 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. Можно получить с помощью функции 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. Можно получить с помощью функции 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. Можно получить с помощью функции 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. Можно получить с помощью функции 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