Разработка виртуального лабораторного стенда по стандартным интерфейсам измерительных систем

Обзор интерфейсов измерительных систем. Анализ интерфейсных функций типового прибора. Состав и структура лабораторного стенда по стандартным интерфейсам измерительных систем. Решение задачи по сопряжению измерительных приборов с компьютерной техникой.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 10.12.2019
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное государственное автономное образовательное учреждение высшего образования

"Национальный исследовательский университет

"Высшая школа экономики"

Московский институт электроники и математики им. А.Н. Тихонова

Федулов Василий Дмитриевич

Выпускная квалификационная работа - бакалаврская работа

по направлению 11.03.02 Инфокоммуникационные технологии и системы связи студента образовательной программы бакалавриата

"Инфокоммуникационные технологии и системы связи"

Разработка виртуального лабораторного стенда по стандартным интерфейсам измерительных систем

В.Д. Федулов

Оглавление

Введение

Глава 1. Обзор стандартных интерфейсов измерительных систем

1.1 Интерфейс IEEE-488

1.2 Интерфейс I2C

1.3 Последовательные интерфейсы EIA/TIA

Глава 2. Возможности NI LabVIEW по работе со стандартными интерфейсами

2.1 Среда разработки NI LabVIEW

2.2 Инструменты LabVIEWдля работы с интерфейсами

2.3 Инструменты NI-VISA

Глава 3. Анализ интерфейсных функций типового прибора

3.1 Описание интерфейсных функций

3.2 Работа с прибором

Глава 4. Состав и структура лабораторного стенда по стандартным интерфейсам измерительных систем

4.1 Структура лабораторного стенда

4.2 Описание функционала и интерфейса стенда

4.3 Описание программных компонентов

4.4 Компоненты-аналоги инструментов VISA

Глава 5. Апробация виртуального стенда

Заключение

Список сокращений и условных обозначений

Список литературы

Приложения

Введение

Решение задачи по сопряжению измерительных приборов с компьютерной техникой необходимо для автоматизации измерений и широко востребовано в инженерной практике. Однако, для отработки соответствующих приёмов работы, в лабораториях зачастую недостаточно реальных приборов либо ресурсов для их приобретения и обслуживания. Поэтому целесообразно создание виртуального лабораторного стенда, в котором будет эмулироваться работа интерфейсных функций измерительных приборов. Такой стенд можно будет использовать при подготовке к работе с реальным оборудованием. интерфейс измерительный компьютерный

Таким образом, целью данной работы является создание виртуального лабораторного стенда для изучения основных приёмов работы с измерительными приборами, подключаемыми с использованием стандартных интерфейсов и протоколов.

Для достижения этой цели необходимо решить следующие задачи:

- изучить основные стандартные интерфейсы и протоколы, использующиеся для построения измерительных систем;

- проанализировать возможности среды NI LabVIEW по работе со стандартными интерфейсами,

- выявить типовые проблемы, возникающие при подключении реальных приборов к компьютеру на основе изучения прибора-прототипа;

- после проделанного анализа, определить конкретные интерфейсные функции, которые лягут в основу работы виртуального стенда, его структуру и дизайн;

- разработать и отладить программное обеспечение модулей виртуального стенда, разработать и скомпоновать элементы графического интерфейса передней панели виртуального стенда;

- провести апробацию (тестирование) виртуального стенда, при необходимости, выполнить доработку стенда;

- подготовить методические указания к лабораторной работе для применения стенда в учебном процессе.

Глава 1. Обзор стандартных интерфейсов измерительных систем

В этой главе описаны некоторые типы стандартных интерфейсов измерительных систем. Их рассмотрение и сравнение необходимо для того, чтобы выявить наиболее оптимальный стандарт для реализации в разработке интерфейсных особенностей виртуального стенда, а также для общего представления о взаимодействии DTE и DCE.

1.1 Интерфейс IEEE-488

Следующая стандартная спецификация, разработанная компанией HP в 60-х годах и стандартизированная американским институтом электротехнической и электронной промышленности носит название IEEE-488, также известная как интерфейсная шина общего назначения (GPIB, КОП). Первоначальной целью создания данного интерфейса было управление устройствами тестирования и измерения с помощью компьютера, но в дальнейшем данный интерфейс стали использовать для работы с измерительными приборами, такими как осциллографы, мультиметры и другие [1]. GPIB стал первым специализированным интерфейсом для подключения измерительных приборов к вычислительной технике. В 1987 году стандарт был разделен на 2 части и дополнен описанием протокола передачи. Первая часть - IEEE-488.1, описывает аппаратную часть и взаимодействие с шиной на низком уровне. Вторая - IEEE-488.2 определяет порядок передачи команд и стандартный язык SCPI, который по сей день используется для управления измерительными приборами, подключаемыми по разнообразным интерфейсам, в том числе, гораздо более поздним, например, LXI.

К шине одновременно можно подключить до 15 устройств, при этом каждое из них должно иметь свой уникальный пятибитный первичный КОП-адрес в диапазоне от 1 до 30 (адресу 0 соответствует плата контроллера шины), чтобы источник и приёмник определялись однозначно. В настоящее время, для наращивания количества подключений используются активные расширители, которые удлиняют шину и позволяют подключать до 30 приборов. Каждое устройство принадлежит к одному из трёх типов: "Listener" - считывает информацию с шины, "Talker" - передаёт данные, и "Controller" - присваивает предыдущие состояния устройствам. К шине может быть одновременно подключено несколько контроллеров, при этом один из них является ответственным и в нужный момент времени делегирует свои полномочия другим, то есть CIC можно изменять.

Передача данных по шине КОП осуществляется побайтно, чаще всего в виде кода из таблицы ASCII. Для того чтобы передать сообщение, контроллер устанавливает адрес передатчика - Talker и приёмников - Listeners, затем, в ходе трёхфазной процедуры (готовность > доступность > приём), самое медленное устройство определяет скорость транзакции и строка данных передаётся по шине. Максимальная скорость передачи в оригинальном издании стандарта составляла около 1 МБ/сек, в расширениях была увеличена до 8 МБ/сек.

С точки зрения электроники, IEEE-488 - восьмибитная параллельная шина, содержащая 24 линии, 8 из которых двусторонние и используются для передачи информации и имеют 8 обратных проводов земли, 3 - для установки соединения, 5 - для управления шиной, они сообщают устройству, какие действия предпринимать [2]. Все сигнальные линии используют отрицательную логику, где наибольшее отрицательное напряжение читается как логическая "1", а максимальное положительное - логический "0". Обозначение контактов гнезда GPIB представлено на рисунке 1, назначение основных линий в таблице 1.

Таблица 1 Назначения контактов GPIB/IEEE-488

№ контакта

наименование по IEEE

Назначение

1-4,13-16

Data input/output bit.

DIO

Провод в КОП системы интерфейса, применяемый для передачи информации между соединенными устройствами.

5

End-or-identify.

EOI

Используется "talker" для идентификации конца сообщения.

6

Data valid.

DAV

Используется устройством типа "talker" для оповещения устройств типа "listener" о том, что информация, подготовленная "talker", выставлена на линиях данных и достоверна.

7

Not ready for data.

NRFD

Используется устройствами типа "listener" для того, чтобы сообщить устройству типа "talker" о том, что они не готовы к приему данных.

10

Service request.

SRQ

Сигнал доступен любому клиенту шины. По этому сигналу контроллер переводит, по возможности, подавшее его устройство в состояние "talker" и передает ему функции передачи данных.

17

Remote enable.

REN

Переводит устройство, подключенное к шине, в режим исполнения команд с шины (а не с контрольной панели) и обратно. Вырабатывается контроллером для активизации работы подключенных к шине приборов по командам, поступающим от контроллера.

24

Logic ground

"Сигнальная земля"

Рис. 1. Контакты разъема GPIB/IEEE-488 [3]

1.2 Интерфейс I2C

Еще одним интересным интерфейсом для рассмотрения является I2C. InterIntegrateCircuit (I2C) - последовательная ассиметричная шина, разработанная фирмой Philips в 80-х году для соединения устройств интегрального типа внутри электронных приборов. Интерфейс использует две двунаправленные линии связи: SDA- линия, по которой передаются данные и SCL - линия тактового импульса [4]. Такое устройство шины означает, что для подключения необходимо всего 2 контакта. Так как адрес подключенной к шине схемы имеет длину 7 бит, то одновременно можно подключать до 27 устройств. При этом хотя бы одно из устройств является ведущим (Master) - оно формирует тактовый импульс и сигнальные импульсы начала и конца передачи, а остальные (Slave) взаимодействуют с ним, пример подобного подключения изображён на рисунке 2.

Рис. 2. Пример подключения устройств к шине I2C [5]

Шина является низкоскоростной (110 кбит/секунду), поэтому используется на небольших расстояниях, до нескольких метров, и подходит для устройств типа датчиков и индикаторов. Стандартное напряжение питание +5 В и +3,3 В, ограничение общей ёмкости науровне 400 пФ, сопротивление на источнике питания около 10 кОм.

Правила передачи: данные на шине SDA могут меняться только когда на SCL установлено состояние низкого уровня, исключениями являются ситуации: "Start" когда на шине данных при положительном тактовом импульсе меняется сигнал из высокого уровня в низкий - Master производит сброс и переключает Slave в состояние "внимание" и "Stop" - при высоком уровне на SCL - Master переходит из "0" в "1" - передача прекращается. Информация передаётся байтами, побитно, начиная со старшего бита. При этом в ответ на каждый байт приёмник выставляет сигнал подтверждения ("0") или отказа ("1"). Таким образом для каждого байта требуется 9 бит - 8 для информации и 1 для подтверждения. Передача или приём начинается с выборки подчиненного устройства (Slave) с помощью адресного байта. Адресный байт состоит из 7 бит адреса устройства и 1 бит направления передачи ("0" - это запись в Slave, "1" - чтение).

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

- для управления большим количеством устройств достаточно всего одного ведущего устройства

- возможна одновременная работа нескольких ведущих устройств

- для подключения необходимо только два контакта,

- можно менять подключенные устройства и ремонтировать их без остановки работы шины.

Данный интерфейс применяется для управления диодами, датчиками, чтения информации с микроконтроллеров, в регулировке звука, яркости, управления питанием компонентов.

Платформа PXI

PCI eXtensions for Instrumentation (PXI) - модульная платформа, предназначенная для построения многофункциональных контрольно-измерительных систем, испытательного оборудования для тестирования электроники, систем автоматизации, модульных лабораторных приборов Данный стандарт был представлен компанией National Instruments в 1997 году, как промышленный наследник интерфейса CompactPCI, основанный на одноименной компьютерной шине.

Стандарт PXI определяет 8 линий, используемых как шины запуска (рис. 3), для синхронизации и связи между модулями [6].

Рис. 3. Шина PXI [7]

Они используются для передачи тактовых импульсов, сигналов запуска и установления связи. Шина запуска типа Звезда имеет для каждого слота независимые линии запуска, расположенные в конфигурации Звезда и идущие от специального слота запуска (определен как слот 2 в любом шасси PXI). Длина этих линий подобрана таким образом, чтобы задержка распространения сигнала до любого модуля не превышала 1 нс. Локальная шина PXI - последовательная шина, которая по цепочке соединяет каждый периферийный слот с соседними слотами. Каждая локальная шина включает 13 линий и может передавать сигналы между модулями напряжением до 42 В или обеспечивать высокоскоростную связь, не используя каналы PCI.

Такой интерфейс позволяет связать множество модулей между собой и управлять ими с помощью контроллера. PXI стал прорывом в сфере построения измерительных систем, так как обеспечивает быструю скорость передачи данных, при большом количестве подключений и низкой стоимости оборудования. Классическая PXI система представляет собой шасси, объединенные панелью с двумя рядами разъемов (рис. 4). Самый левый слот предназначен для подключения управляющего устройства - контроллера и его возможных расширений. В следующий слот можно установить специальный модуль-синхронизатор "StarTrigger", предназначенный для обеспечения бесперебойной работы нескольких периферийных модулей, которые подключаются в следующие семь разъемов. Системы с увеличенным количеством слотов и сегментов построены с применением PCI-PCI мостов, пропускная способность 32 разрядной шины с частотой 33 МГц составляет 132 Мб/сек, а для 64 разрядного варианта около 528 Мб/сек [8]. Стандарт поддерживает любые языки программирования для взаимодействия с контроллером и управления поведением модулей.

Рис. 4. Система PXI [7]

Основные преимущества данной системы:

- высокая скорость передачи данных из-за прямого подключения модулей;

- компактное исполнение;

- бесперебойная синхронизация всех подключенных интерфейсов;

- гибкость системы и простота внедрения;

- низкая стоимость и высокая пропускная способность;

В 2005 году, в результате переноса технологии последовательной передачи данных PCI Express в PXI появился новый стандарт PXI Express. В нем сохранились параметры прародителя и появились новые возможности, такие как повышенная помехозащищенность и способность к передаче высокочастотных сигналов. Основные аппаратные и программные характеристики нового стандарта изложены в спецификациях PXI-5 и PXI-6 соответственно.

1.3 Последовательные интерфейсы EIA/TIA

Интерфейс EIA/TIA-232

Информация, которой обменивается терминал обработки данных (и оконечное устройство), представляет собой цифровой код, передающийся по каналу связи в параллельном или последовательном режиме. Параллельная связь используется чаще всего для тестового оборудования, при соединении компьютера с принтером, тогда как последовательный режим позволяет соединить его с другими периферийными устройствами.

Суть последовательной передачи в том, что каждый бит информации отправляется за один раз по одной линии связи, такой способ подходит, например, для передачи информации на большие расстояния [9]. Параллельная, напротив, требует столько каналов, сколько бит содержит в себе передаваемое слово (для передачи 8-битного слова требуется 8 линий связи), такая структура повышает скорость обмена информацией на коротких расстояниях.

Одним из самых широко используемых последовательных интерфейсов является TIA/EIA-232 (RS-232, Recommended Standard 232) - стандарт, разработанный американской Ассоциацией электронной промышленности (EIA) в 1962 году и описывающий интерфейс для последовательной двунаправленной передачи данных между терминалом (DTE) и конечным устройством (DCE) [10]. Из-за развития технологий и необходимости в оптимизации, версии стандартов постоянно обновлялись. Так редакция EIA RS-232-C, представленная в 1969 году, была обновлена и заменена стандартом EIA-232-D в 1986. Последние модификации с технической стороны были внесены в 1991 году в версии TIA/EIA-232-E, которая соотносилась с рекомендациями международного союза электросвязи и организации по стандартизации - ITU V.25, V.28 и ISO IS2110 [11]. Эта рекомендация включает в себя обновление отношения времени нарастания к единичному интервалу и отменяла изменения, описанные в версии D. Несмотря на недостатки старых версий семейства стандартов EIA-232, они наиболее часто использовались в измерительных системах из-за низкой цены реализации, поэтому разработчики вносили корректировки вплоть до 1997 года, когда стандарт был описан в последней редакции под названием TIA/EIA-232-F.

При передаче цифрового кода используются следующие физические уровни напряжения (рис. 5): Устройство передаёт логический "0" при значении от +5 В до +15 В на выходе и принимает при напряжении более +3 В на входе, логическая "1" от -5 В до -15 В на выходе и менее -3 В на входе. Максимальное значение напряжения ±25 В. Для исправной работы соединителя, сопротивление нагрузки на каждый пин должно быть больше или равно 3 кОм.

Рис. 5. Уровни напряжения RS-232 [12]

Устройства соединяются кабелем с 9-ти или 25-ти пиновыми контактными разъёмами. В ЭВМ 9-ти пиновый разъём реализован в виде порта на материнской плате (COM порт). Изначально этот порт применялся для подключения модемов и устройств ввода, а в настоящее время его используют для связи с блоками бесперебойного питания, прошивки микросхем памяти, программирования микроконтроллеров, подключения специального оборудования и измерительных устройств [9]. Ниже, в таблице 2, приведено назначение контактов 9-ти пинового разъёма RS-232 (рис. 6). Направление сигналов указано относительно управляющего терминала.

Таблица 2. Назначение контактов COM порта

Контакт

Обозначение

Направление

Описание

1

CD

CarrierDetect

2

RXD

ReceiveData

3

TXD

TransmitData

4

DTR

DataTerminalReady

5

GND

-

SystemGround

6

DSR

DataSetReady

7

RTS

RequesttoSend

8

CTS

CleartoSend

Рис. 6. Разъем RS-232 (9 pin) [13]

Назначение сигнальных линий следующее:

- DTR - сигнал, который говорит о том, что компьютер включен и порт готов к работе;

- RTS - управляющий сигнал, сообщает внешнему устройству о намерении терминала передать какие-либо байты информации;

- TXD - данные сигнала передачи;

- DSR - сигнал подключения внешнего устройства, становится активным при включении;

- CTS - указывает на готовность внешнего устройства принять данные;

- RXD - принимаемые данные;

- GND - провод, который соединяет два условия по уровню земли, отсчетная точка для напряжения;

- CD - сообщает компьютеру о том, что модем видит несущую;

- RI - сообщает компьютеру, что на модем поступает вызов с телефонной линии.

Данные передаются по линии 3 и принимаются по линии 2, это позволяет соединить 2 компьютера между собой. Отсюда появилось понятие "нуль-модем" - провод, соединяющий 2 COM порта компьютеров напрямую, позволяя им обмениваться сигналами без дополнительной аппаратуры. Стоит отметить, что вариант 25 пинового порта позволяет передавать байты синхронно, но сейчас не распространен.

Передача данных производится последовательно, асинхронно, побитно, а байт может иметь разную длину. Сначала передаётся стартовый бит - это всегда логический "0", затем от 5 до 8 бит полезной информации ("0" или "1"), далее бит чётности (памяти), который, в зависимости от настроек, обрабатывает проверку на чётность, нечётность или отсутствует вообще, затем от 1 до 2 стоп-бит (всегда логическая "1"), служащих разделителями перед следующим байтом. Квант времени для передачи каждого бита определяется скоростью передачи. Существуют стандартные значения скоростей: 115200 бит/сек - максимальная скорость COM порта, 57600 бит/сек, 38400 бит/сек, 19200 бит/сек, 9600 бит/сек, и так далее до 300 бит/сек. В зависимости от требуемой скорости изменяется длина соединительного кабеля. Максимальная длина кабеля 15 метров, частота передачи 100 кбит/сек. На передающем конце необходимо наличие линейного драйвера, который подстроит напряжение до нужного уровня линии связи. Аналогично, на принимающем конце, для перевода напряжения линии связи на нужный уровень для сопряжения с микропроцессором, требуется линейный приёмник.

Для управления передачей байтов применяются аппаратный или программный способ. В первом выполняется учёт сигналов RTS и CTS: компьютер выставляет сигнал Request to Send и ждет ответа Clear to Send от устройства, который оно по готовности, затем выполняется передача. При этом, байт информации передаётся целиком в любом случае, даже если сигнал CTS отключается в процессе. Программное управление позволяет игнорировать биты RTS/CTS и управлять с помощью ответных управляющих байтов 0x13 (Xoff) - остановка передачи и 0x11 (Xon) - возобновление передачи.

Так как обеспечение связи устройств с помощью данного интерфейса может быть реализовано с использованием всего нескольких проводов, значительно сокращается стоимость производства приемопередающих устройств и кабелей. При этом порты RS-232 установленны на огромном количестве измерительных устройств, а интерфейс очень прост в использовании. Эти факторы послужили причиной широкого применения данного интерфейса в измерительных системах.

Интерфейс EIA/TIA-485/422

Один из аналогов RS-232, наиболее распространённый в промышленной области, носит название RS-485 (EIA/TIA-485). Основным принципом построения сети при помощи данного интерфейса, является использование для обмена информацией только двух проводов - витой пары [14]. В основе EIA/TIA-485 лежит принцип дифференциальной передачи, который заключается в передаче двух составляющих цифрового сигнала по одной шине. Данные в оригинальной формации передаются по одному проводу, а по другому их инверсная копия - возникает разность потенциалов, с помощью которой можно определить значение передаваемого бита: при "1" она больше нуля, при "0" - отрицательна.

Использование управляющей разности потенциалов в процессе передачи обеспечивает высокую помехоустойчивость интерфейса, позволяя практически полностью искоренить синфазную помеху. В случае передачи сигнала по одному проводу, как в RS-232, он может исказиться из-за наводки относительно общей земли. В дополнение к этому, дополнительным источником искажения может стать падение разности потенциалов на сопротивлении общего провода. При дифференциальном способе передачи подобные искажения исключены, ведь если два провода перевиты и расположены на небольшом расстоянии друг от друга, то и наводка на них будет одинакова. "Дельта" потенциала в витой паре будет одинакова, а это значит, что информативная разность потенциалов не изменится.

Аппаратно такой интерфейс реализован в виде микросхемы с дифференциальными входами и выходами, а также цифровыми портами. Существует две вариации аппаратной части: RS-422 и RS-485 (рис. 7).

Рис. 7. Назначение контактов 9-пин порта RS-422/485 [15]

Их отличие заключается в том, что в случае 422 модификации передача и приём проходят по двум отдельным витым парам, а в RS-485 по одной, с разделением по времени. Следствием этого стало еще одно отличие - в RS-422 к каждой паре проводов можно подключить только один приёмопередатчик, тогда как в RS-485 их может быть много, из-за возможности отключения в режиме приёма.

Рис. 8. Схемы интерфейсов RS-422 и RS-485 [16]

На рисунке 8 приведены схемы для интерфейсов RS-422 и RS-485, где

- D (driver) - передатчик;

- R (receiver) - приемник;

- DI (driverinput) - цифровой вход передатчика;

- RO (receiveroutput) - цифровой выход приемника;

- DE (driverenable) - разрешение работы передатчика;

- RE (receiverenable) - разрешение работы приемника;

- A - прямой дифференциальный вход/выход;

- B - инверсный дифференциальный вход/выход;

- Y - прямой дифференциальный выход (RS-422);

- Z - инверсный дифференциальный выход (RS-422).

Максимальное количество приёмников, которое можно уместить на линии с использованием RS-485 - 32. Однако есть специальные расширители, которые используются в ряде, повышая их входное сопротивление и позволяя подключить к линии значительно большее количество устройств [14].

Максимальная скорость связи по спецификации RS-485 и RS-422 может достигать 10 Мбит/сек, максимальная длина кабеля - 1200 м. Увеличить расстояние или количество подключенных устройств можно с использованием репитеров.

В измерительных системах такие интерфейсы можно использовать для распределения большого количества устройств, управляемых с одного ведущего терминала, на одной линии. Так, например, существуют системы сбора информации, развёрнутые на больших расстояниях. Через цифровой интерфейс RS-485 датчики способны передавать информацию на конвертер, затем цифровой сигнал можно преобразовать в аналоговый и через модификацию RS-232 обработать на компьютере.

Сравнивая все перечисленные интерфейсы можно сделать вывод, что самым распространённым в измерительных системах на текущий момент является EIA/TIA-232. Это можно объяснить тем, что зачастую задачей измерения является мобильность системы, а также простота подключения к компьютеру и настройки работы со сторонними приложениями. Из-за большого парка устройств, а также простоты реализации, он оптимален для реализации в разработке виртуального лабораторного стенда.

Глава 2. Возможности NI LabVIEW по работе со стандартными интерфейсами

2.1 Среда разработки NI LabVIEW

LabVIEW (Laboratory Virtual Instrument Engineering Workbench - среда разработки лабораторных виртуальных приборов) это визуальная среда программирования, которая позволяет создавать приложения и взаимодействовать с внешними устройствами и была создана для автоматизации измерений. В отличие от обычных языков программирования, таких как С, C++ или Java, где программы создаются в виде текста, в LabVIEW все функции, процедуры и подпрограммы представлены в графическом виде и соединяются с помощью проводников, по котором передаются потоки данных [17,19]. Такой упрощенный вид программирования отлично подходит для ученых и инженеров, которые могут реализовывать весь потенциал компьютера не углубляясь в программирование, а также в сотни раз повышает производительность труда. Именно поэтому LabVIEW очень распространенна в измерительной отрасли, где с помощью подобного программирования верхнего уровня можно решать задачи по автоматизации и организации измерительных систем. Среда имеет достаточно низкий порог вхождения - достаточно нескольких часов, чтобы познакомиться с основными встроенными программными компонентами и понять, как использовать их в своей работе.

В LabVIEW также содержатся специальные библиотеки виртуальных приборов для ввода/вывода данных со встраиваемых аппаратных средств (data acquisition - DAQ), для работы с внешними устройствами и управления ими, программные компоненты для анализа, представления и сохранения данных, взаимодействия через Интернет [18]. Кроме того, можно установить сторонние программные архитектуры для удобства взаимодействия с различными интерфейсами и приборами.

2.2 Инструменты LabVIEWдля работы с интерфейсами

Для взаимодействия с приборами на базе GPIB, PXI, Serial, Modular и другими, в LabVIEW есть специальная библиотека (палитра) Instrument I/O. Она включает в себя несколько групп виртуальных приборов: Instr Drivers, Instr Assistance, VISA, GPIB, Serial.

Например, палитра GPIB позволяет взаимодействовать с приборами, используя интерфейс IEEE-488 (разд. 1.3), она содержит ВП "GPIB Write", для записи информации в устройство, "GPIB Read", для чтения, "GPIB Status", для отображения ошибок и получения состояния контроллера и другие.

Утилита Instrument I/O Assistant применяется для связи с приборами, поддерживающими GPIB, последовательныи? порт и Ethernet, а также для графического разбора ответов приборов. Instrument I/O Assistant организует связь с прибором в виде упорядоченнои? последовательности шагов. С помощью Instrument I/O Assistant можно послать прибору запрос для проверки связи. [20]

Программные инструменты пакета драйверов VISA рассмотрены в следующем разделе.

2.3 Инструменты NI-VISA

VISA является высокоуровневым программным интерфейсом, который предназначен для коммуникации с измерительными приборами через основные типы инструментальных шин. Реализация такой архитектуры представляет собой библиотеку функций, позволяющих организовать взаимодействие независимо от типа используемого протокола и аппаратуры. Для использования библиотеки необходимо предварительно установить соответствующие драйверы на компьютер. Помимо пакета драйверов VISA, в LabVIEW существует кросс-платформенный набор Plug and Play, который позволяет взаимодействовать с устройствами, модифицируя, отлаживая, оптимизируя их исходный код. Более сложным является алгоритм взаимодействия с использованием IVI - инструментальных драйверов, позволяющих увеличить производительность и гибкость виртуальной системы.

Набор программных инструментов, содержащихся в пакете драи?веров VISA, позволяет организовывать с помощью среды LabVIEW управление приборами различных производителеи? и имеющих различные коммуникационные интерфеи?сы, такие как: RS-232, GPIB, VXI и USB [18]. Подпрограммы VISA управляют периферийными устройствами, вызывая соответствующие драйверы, зависящие от типа прибора, подключенного в данный момент. Взаимодействие организуется по принципу запрос-ответ, при этом обрабатываются все особенности интерфейсов, например, настройки битрейта, чётности и другие. Передача команд в приборы происходит с помощью стандартной ASCII строки.

Программные компоненты VISA находятся в палитре Instrument I/O. Работа с прибором через программу LabVIEW организуется следующим образом: сначала необходимо выбрать порт подключения в параметре VISAResourceName. Затем открыть сеанс работы с прибором соответствующим блоком - VISA Open. После этого можно начать чтение или запись данных с устройства, для этого есть соответствующие блоки - VISA Read и VISA Write. Также есть возможность считывать статус прибора (байт состояния), с помощью функции VISA Read STB и устанавливать программный или аппаратный триггер, используя функцию VISA Assert Trigger. Каждая сессия взаимодействия с прибором обязательно заканчивается блоком VISA Close. Пример виртуального инструмента и использованием программной архитектуры NI-VISA представлен на рис. 9.

Рис. 9. ИнструментыVISA

Глава 3. Анализ интерфейсных функций типового прибора

3.1 Описание интерфейсных функций

Для разработки виртуального стенда необходимо изучить поведение реального прототипа. Для этих целей была выбран типовой измерительный прибор модельной линейки B7-65.

Данный прибор предназначен для измерения постоянного напряжения, среднеквадратического значения переменного напряжения произвольной формы, сопротивления постоянному току, постоянного и переменного токов, частоты и периода синусоидального и импульсного сигналов. Устройство работает от сети питания и подключается к управляющему терминалу через интерфейсы КОП (GPIB) и СТЫК-С 2 (RS-232) для моделей 65/1 и 65/2 соответственно. Поддерживаемые скорости обмена данными от 300 до 9600 B/S. Прибор обеспечивает математическую обработку результатов измерений по 10 программам, таким как измерние мощности, температуры, напряжния и другим.

В системе с интерфейсом СТЫК-С 2 вольтметр подключается к оконечному устройству через интерфейс RS-232 и выступает аппаратурой передачи данных. Устройство постоянно находится в режиме приёма программных данных и поддерживает следующие режимы работы:

1. Прием программных данных

2. Выдачу результата измерения:

2.1 Выдачу сообщения о перегрузке

2.2 Выдачу сообщения об ошибке

2.3 Выдачу сообщения о состоянии вольтметра

3. Дистанционное/местное управления

4. Разовый пуск

При программировании вольтметр принимает строку программных данных, состоящую из символов кодировки КОИ-7 и обрабатывает её после получения символа окончания передачи (ПС). Для очистки буфера, длина которого составляет 60 символов, необходимо передать устройству "!". Символы программирования, используемые при настройке отображены на рис. 10. Если при обработке входных данных будет встречен символ, который не является символом из этого перечня, то вольтметр сформирует сообщение об ошибке, прекратит обработку строки и очистит свой буфер [21]. Точно также устройство поступит при отсутствии стоп-бита, нарушении четности, переполнении буфера или других ошибках интерфейса.

Рис. 10. Программные символы вольтметра В 7-65/2

Результаты измерения выдаются в экспоненциальной форме и выражаются в вольтах, амперах, омах, герцах, секундах, в зависимости от режима измерений. При этом существует несколько форматов индикации: 3.5, 4.5, 5.5 разрядов [21]. Строка измерений состоит из одного управляющего разряда, плавающей точки, дробной части, а также экспоненты в инженерном виде.

Данная модель вольтметра интересна тем, что при широком спектре возможностей и простоте использования сочетает в себе все необходимые интерфейсные особенности, которые нужно учесть при разработке виртуального стенда. Хотя прибор не поддерживает язык SCPI (IEEE-488.2) и использует собственный набор команд, он работает по аналогии со многими серийно выпускаемыми отечественными измерительными приборами.

3.2 Работа с прибором

В ходе прохождения преддипломной практики было изучено реальное поведение вольтметра В 7-65/2, подключенного по интерфейсу "Стык-2" (RS-232). Во время работы с прибором были выявлены некоторые расхождения с заводским руководством по эксплуатации, например, показания отображаются на дисплее и выдаются в интерфейс иначе, а при настройке разрядности некорректно отображается количество старших разрядов. Для обмена данными использовался встроенный шаблон NI-VISA, который предварительно был настроен под соответствующие параметры вольтметра: битрейт, стоп-бит, паритет и др. Интересно отметить, что при некорректной настройке параметров виртуальной среды, ошибку выдает не только прибор (рис. 11), но и инструменты VISA.

Рис. 11. Ошибка чётности

Программирование проводилось с помощью передачи в прибор команд, описанных в руководстве, в виде ASCII-строки. Признак окончания передачи добавлялся автоматически, а пробелы во входной строке не учитывались. Прибор очень чувствителен к окружению: из-за внешних шумов создавалось напряжения наводки, и прибор выдавал показания даже при отсутствии прямого входного сигнала. Реакция вольтметра на различные программные строки описана в приложении 1.

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

Глава 4. Состав и структура лабораторного стенда по стандартным интерфейсам измерительных систем

4.1 Структура лабораторного стенда

С помощью программной среды LabVIEW был разработан виртуальный лабораторный стенд, который позволяет изучить интерфейсные особенности измерительных систем. В ходе разработки было принято решение реализовать основные функции виртуального прибора внутри подпрограм, а затем данные модули использовать в программе верхнего уровня. Так были созданы подпрограммы для программирования стенда, формирования строки режима, формирования строки результата измерений, проверки интерфейсных параметров. Такая структура сильно упрощает разработку конечного продукта. Иерархия виртуальных приборов в проекте приведена на рисунке 12. Также были созданы глобальные переменные, которые позволяют организовать взаимодействие между ВП.

Все вспомогательные подпрограммы для наглядности и удобства использования объединены в библиотеке "Bench support". Дополнительно создана библиотека "VISA_SIM", для компонентов-аналогов инструментов VISA. Общая структура проекта изображена на рисунке 13.

Рис. 12. Иерархия виртуальных инструментов стенда

Рис. 13. Структура проекта виртуального лабораторного стенда

4.2 Описание функционала и интерфейса стенда

Основными функциями виртуального стенда является формирование строки режима работы, показаний, а также возможность программирования с помощью входной строки. В качестве реального прототипа был использован рассмотренный ранее вольтметр В 7-65/2. Стендом можно управлять как из внешней программы, используя разработанные аналоги инструментов VISA, так и с передней панели - нажатием кнопок или изменением параметров управляющего кластера (в режиме Advanced).

Передняя панель виртуального стенда изображена на рисунке 14. Она может работать в двух режимах - по умолчанию и расширенном. В первом случае панель содержит только простейшие элементы управления и индикации, а именно:

- группу кнопок "Mode", позволяющих переключать род работы прибора, где U - напряжение, I - ток, R - сопротивление, F - частота, T - период. При этом при повторном нажатии кнопок U и I род работы меняется на измерение переменной составляющей, а для R - сопротивление с двухпроводного на четырехпроводное;

- стрелки переключения "Range up" и "Range down". Кнопки активны только при наличии возможности коррекции диапазона;

- список "Indication Format", содержащий значения формата индикации и ответственный за его переключение;

- тумблер "LED", используемый для включения/выключения подсветки дисплея;

- дисплей стенда, состоящий из двух частей - с отображением рода работы и результата измерений;

- тумблер "Power" - питание стенда, при его отключении все остальные элементы деактивируются;

- checkbox "Advanced", который включает расширенный режим управления стендом;

- кнопка "Stop" - остановка программы при нажатии.

Рис. 14. Передняя панель виртуального стенда

При включении расширенного режима на передней панели появляется управляющий кластер, который также позволяет изменять параметры стенда и полностью синхронизирован с кнопками. Он содержит дополнительные элементы, такие как переключатели режима запуска, АВП, звука, коррекции нуля и др. Стоит отметить, что все добавочные переключатели влияют только на строку режима и ими можно управлять программно. Также пользователю становится видна строка буфера устройства и кластер интерфейсных параметров - значение битрейта, паритета, стоп-бита, которые можно изменять и информацию о фиксированных значениях - наименовании порта устройства и количестве бит данных.

Все перечисленные элементы динамично связаны друг с другом, например, при переключении рода работы с помощью кнопок он также изменяется в управляющем кластере, даже если значение "Advanced" - false, а в режимах F и T формат индикации принимает значение 5,5, согласно руководству, а управляющие элементы блокируются. Помимо этого, на передней панели присутствует невидимый элемент типа Boolean, который необходим для своевременной инициализации проверки интерфейсных параметров передачи данных из внешних программ.

4.3 Описание программных компонентов

В данном разделе описаны программные компоненты виртуального лабораторного стенда в порядке иерархии в проекте. Взаимодействие между виртуальными приборами (ВП) происходит с помощью управляющего кластера "Режим работы", изображенного на рисунке 15.

Рис. 15. Кластер "Режим работы"

Подпрограмма формирования строки результата

Подпрограмма MeasResultString_(SubVI) предназначена для формирования строки с эмулированными результатами измерения, в зависимости от установленного режима. Обозначение терминалов и иконкаприведены на рисунке 16, блок-диаграмма на рисунке П 2.1. Алгоритм работает только при отсутствии ошибки на входе error in.

Рис. 16. MeasResultString_(SubVI)

На вход виртуального прибора поступает программная строка режима в формате ASCII. Далее, с помощью функции "String Subset", выделяется первый символ входной строки, отвечающий за род работы. В зависимости от индекса данного символа в массиве возможных вариантов (U,V,I,J,R,Z,F,T), который выдает функция "Search 1D Array", выполняется соответствующая подпрограмма структуры "Case Structure" (рис.17). Внутри этих подпрограмм определяется диапазон и формат индикации, если они могут изменяться, присваиваются значения глобальных переменных Mode и Unit, отвечающих за отображение режима работы и единиц измерения на дисплее стенда. Затем, в блоке "Format Into String", происходит создание форматной строки для корректной записи результата измерений, которая поступает на вход format string функции "Format Value", необходимой для преобразования случайного числа в определенном диапазоне по её образцу. Результат передается в инженерной форме. Для соответствия выходной строки результата стандарту (таблица П 3.3), используя функцию "Search and replace string", происходит вставка символа экспоненты - E, замена запятой на точку, а также вставка 0 перед значением экспоненты и добавление символа окончания строки (рис.18).

Рис. 17. Определение диапазона и формата индикации

Рис. 18. Обработка результата

Выходная строка присваивается индикатору "Результат измерения" и глобальной переменной "Bench data", а сокращенная версия с числовым значением и единицами измерения передается в переменную Display и Value для дальнейшей обработки и отображения на дисплее устройства.

Подпрограмма формирования строки режима

Модуль ModeString_(SubVI) отвечает за формирование полной строки режима работы. К входному терминалу подключается управляющий кластер (рис. 15), который разбивается на элементы с помощью функции "Unbundle". Каждый элемент поочередно проверяется и сопоставляется с соответствующим кодом. Для логических элементов используется функция Select, которая возвращает управляющий символ кода с 1, если значение true и 0, если false. Так, если значение checkbox "включить звук" true, то формируется код S1, иначе - S0 (рис. 19). Для элементов типа список используется функция NumberToDecimalString, которая принимает индекс выбранного значения, преобразует его в строку, а затем добавляет к соответствующему управляющему символу с помощью функции Concatenate Strings. Аналогично режим работы, определенный из массива возможных вариантов по входящему индексу в функции IndexArray, складывается с индексом выбранного диапазона.

Рис. 19. Фрагмент блок-диаграммы ModeString_(SubVI)

На выходе соответствующие программные коды образуют единую строку, добавляется символ окончания и все это поступает в индикатор Строка режима. Блок-диаграмма подпрограммы изображена на рисунке П 2.2, назначение терминалов на рисунке 20.

Рис. 20. ModeString_(SubVI)

Подпрограмма программирования виртуального стенда

Блок Bench__programming_(SubVI), по сути, является внутренней прошивкой виртуального стенда, так как здесь реализована реакция стенда на входные данные и их предварительная проверка. Иконка ВП с терминалами изображена на рис. 21. На вход программа получает типовой кластер "Режим работы", ссылку на него, входную ошибку. На выходе можно считать результат измерения и строку режима.

Рис.21 Bench__programming_(SubVI)

Программа построена с использованием структуры Standard State Machine - используется цикл со сдвиговыми регистрами, в которых передается программная строка, статус ошибки, а также значение последующих событий. Внутри цикла добавлена структура Case, которая принимает значение события на вход, выполняет соответствующие действия и передает в регистр значение следующего события. Таким образом, происходит поэтапное выполнение программы, в случае ошибки на любом этапе или полного выполнения всех - виртуальный прибор останавливается.

После инициализации структуры, выполняется проверка символа окончания (рис. П 2.3) входной строки: функция "SearchandReplaceString" определяет его наличие, если он есть, то String Subset удаляет его и передает уже отформатированную строку дальше в регистр, программа переходит к выполнению следующего этапа - проверки правильности ввода, иначе на дисплей поступает соответствующий код ошибки "ERR-54", и программа останавливается (рис. 22).

Рис.22. Проверка символа окончания

Следующий этап - проверка правильности ввода (рис. П 2.4). Внутри этого Case запускается цикл поэлементной проверки кодов программной строки. Проверка осуществляется с помощью функции "String Subset", которая принимает на вход программную строку и выделяет 2 символа, начиная с позиции под номером, равным номеру итерации цикла. Затем функция "Search 1D Array" выполняет поиск этих символов в массиве возможных вариантов, соответственно документации стенда (Таблица П 3.1). При этом данная проверка выполняется только если номер итерации чётный, чтобы выделить именно 2 элемента, и меньше длины строки, чтобы избежать лишней итерации. Цикл останавливается после прохождения всей строки или при первом найденном несоответствии. После остановки логическое значение, полученное в результате сравнения номера итерации и длины входной строки, передается на casestructure. Если значение True - входные данные верные, то осуществляется переход на следующий этап - программирование. Иначе на дисплей выводится ошибка ERR-54 и программа останавливается (рис. 23).

Рис.23 Ошибка ввода

Функция программирования (рис. П 2.5) реализована в цикле For, в каждой чётной итерации которого происходит выделение двух управляющих символов входной строки и поиск их индекса в массиве возможных вариантов, а затем выполняется соответствующий case. Для того, чтобы реализовать изменение управляющего кластера программы верхнего уровня внутри данного ВП, на его вход поступает ссылка, из которой в функции "Property Node" выделяется массив ссылок для всех элементов Control кластера. Затем этот массив обрабатывается внутри каждого case - c помощью связки функций "Index Array" и "To More Specific Class" определяется тип и позиция в кластере элемента управления, соответствующего входному коду и его свойства изменяются в "Property Node" (рис. 24). Также присваиваются значения глобальных переменных, ответственных за режим работы, единицы измерения и переключения диапазона на передней панели стенда. После прохождения всей строки цикл заканчивается, программа останавливается.

Рис. 24 Изменение свойств кластера верхнего уровня

Таким образом, к входному терминалу необходимо подключить как сам кластер из основной программы, для определения строки режима и выдачи результата измерения с помощью подпрограмм, описанных ранее, так и ссылку на него, для изменения свойств поэлементно. Такая структура позволяет реализовать не только программирование стенда, но и упрощает его настройку.

Подпрограмма проверки интерфейсных параметров

Для проверки интерфейсных параметров передачи данных был создан отдельный виртуальный инструмент TransferSettingsCheck_(SubVI) (рис. 26, рис. П 2.6). Данная программа будет работать только по запросу на проверку - значение одноименной глобальной переменной, истинность которой проверяется на этапе инициализации.

На вход ВП поступает имя устройства, типа VISA resourcename, оно сравнивается с соответствующей глобальной переменной и остальная проверка выполняется только в случае их совпадения (рис. 25). Она включает в себя 4 этапа - проверку битрейта, количества бит информации, стоп-бита и паритета. Каждый этап реализован одинаково - происходит сравнение глобальных переменных, отвечающих за параметры стенда, с переменными, заданными в соответствующем инструменте VISA. В случае совпадения на всех этапах, выход "Checked" остается в значении true, иначе в переменную "Display" поступает соответствующий код ошибки (таблица П 3.2), "Checked" принимает значение false и проверка останавливается.

Рис. 25. Проверка совпадения названия порта стенда

Рис. 26. TransferSettingsCheck_(SubVI)

Программа верхнего уровня

Это основная программа - ПО виртуального стенда (Bench_Main). Программа основана на использовании конечного автомата, управляемого событиями, по аналогии с шаблоном LabVIEW "SimpleStateMachine" и включает в себя все программные компоненты, описанные ранее. Рассмотрим элементы ВП поэтапно:

1) Initialize (рис. П 2.7) - это case инициализации прибора, он выполняется один раз, при первом запуске. На данном этапе интерфейсные параметры переводятся в значение "по умолчанию": битовая скорость 9600, паритет чётный, 2 стоп-бита, 7 бит данных. Затем происходит переключение рычага сети в положение false и выполняется соответствующий кейс Poweroff.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.