AlexeyTelegin

Использование LabVIEW без установки специальных драйверов внешних устройств

Blog Post created by AlexeyTelegin Employee on Jul 25, 2016

В настоящее время LabVIEW является одним из наиболее широко используемых языков для программирования испытательного и измерительного оборудования. На наш форум, посвященный энергетике и электротехнике, часто приходят просьбы рассмотреть больше примеров программирования наших продуктов на языке LabVIEW. Мы также часто получаем запросы на драйверы LabVIEW (которые действительно существуют для многих наших продуктов). В этой связи я решил посвятить этот пост в блоге наглядной демонстрации того, как можно программировать устройства без использования драйвера. У данного подхода есть несколько преимуществ. Первое и главное преимущество заключается в том, что при этом вы получаете доступ к полному набору SCPI-команд прибора. В вашем распоряжении будет весь спектр возможностей этого прибора. Второе преимущество состоит в том, что вам не нужно тратить время на загрузку и настройку драйверов.


Я собираюсь рассмотреть пример с использованием источника питания Keysight серии N6700B, подключенного к локальной сети (LAN). Для связи с прибором мы будем использовать команды VISA в LabVIEW. Первым делом нам нужно будет получить строку инициализации VISA из библиотек ввода/вывода Keysight (или любой другой библиотеки ввода/вывода, которую вы используете). Строка инициализации прибора N6700B показана на приведённом ниже рисунке (из библиотек ввода/вывода Keysight):

 


Получив адрес VISA, запустите LabVIEW и выберите новый виртуальный прибор (VI). Перейдите в Functions Pallette (Палитра функций) -> Instrument IO (Вводы/выводы прибора) -> VISA -> Advanced (Расширенные настройки) и выберите Open (Открыть). Эта функция откроет сеанс связи VISA с вашим прибором. Функция имеет множество настраиваемых параметров, но я, как правило, просто задаю адрес прибора и тайм-аут открытия сеанса VISA (VISA Open):

После открытия сеанса можно отправлять первые команды. Обычно я отправляю: *RST и *IDN? Таким образом я получаю подтверждение статуса идентификации и наличия стабильной связи с прибором. Для того чтобы отправить команду, следует перейти в меню VISA и выбрать Write (Запись). Сюда нужно будет присоединить несколько строк. В LabVIEW вы всегда будете присоединять строки «VISA Resource Name Out» и «error out» по всему тексту своей программы (о чем свидетельствует данный пример). Команда имеет другой формат ввода: она должна быть в виде строковой переменной.

260603.png

При отправке запроса необходимо обеспечить считывание буфера выходных данных. Это выполняется путем выбора операции Read (Чтение) в меню VISA. Для считывания нужно задать число считываемых байтов (я задаю 100 байт, чтобы они ничему не мешали). Кроме того, вам нужен индикатор строки, чтобы можно было считывать и отображать результаты запроса *IDN.

260604.png

Я собираюсь закончить свою программу, установив напряжение питания 4 В, включив выход и измерив напряжение. Во всех этих шагах будут использоваться те же команды считывания и записи, которые мы использовали ранее. Напоследок я воспользуюсь командой VISA Close (Закрыть). Использование команды закрытия отменит распределение ресурсов и освободит прибор. Это правильный приём программирования, о котором часто забывают. После всех операций программа выглядит следующим образом:

260605.png

После запуска готовой программы я получу следующие результаты:

260606.png

Очевидно, что результаты полностью соответствуют ожиданиям, а это значит, что наша программа работает.

 

Этот пример показал, что в LabVIEW простые операции выполняются элементарно. Если вы хотите загрузить этот пример, оставьте свой комментарий, и я выложу его на сервер для скачивания. Как всегда, если у вас есть вопросы, не стесняйтесь задавать их в разделе комментариев.

Outcomes