Мегаобучалка Главная | О нас | Обратная связь


Модули удаленного ввода вывода с интерфейсом RS-485



2018-07-06 859 Обсуждений (0)
Модули удаленного ввода вывода с интерфейсом RS-485 0.00 из 5.00 0 оценок




Цель работы

Изучение интерфейса RS-485, модулей удаленного ввода-вывода и их программирование в среде NILabVIEW.

 

Лабораторный стенд

Лабораторный стенд представляет собой персональный компьютер ПК и лабораторный макет, содержащий модуль преобразователя интерфейсов I-7520, многоканальный модуль ввода напряжения I-7017 (адрес 1), модуль измерения температуры I-7011 (адрес 2), предназначенный для совместного использования с термопарой. В качестве термопары используется термопара типа K. Структурная схема описанного лабораторного стенда представлена на рисунке 1.

 

Рисунок 1 – Структурная схема лабораторного стенда

 

На ПК установлены среда графического программирования NILabVIEW, драйверы NIDeviceDriversи специальный драйвер Uart.dll, предназначенный для программирования МВВ серии I-7000, утилита для конфигурации и отладки системы 7000 Utility.

Рабочее задание

1. Изучите и опишите утилиту 7000 Utility. Кратко опишите ее назначение и функциональные возможности. Проверьте работоспособность обоих МВВ, используя источник питания УИП и подключенную термопару.

Утилита «7000 Utility» предназначена для конфигурации и отладки измерительной системы, имеющей в своём составе модули удалённого ввода-вывода (далее ММВ)серииi-7xxx. Данная утилита работает с реальными и виртуальными COM-портами. Поскольку в представленной лабораторной работе используются два модуля с интерфейсом RS-485 –то в измерительной системе обязательно должен быть конвертер интерфейсов. Для работы с реальным COM-портом используются конвертеры RS-485 в RS-232 серии I-752X. В данной работе используется конвертер I-752X. Для работы с виртуальными COM-портами используется конвертер RS-485 в USBсерии i-7561 или i-7563.

Сначала в данной утилите настраивается COM-порт, к которому подключены МВВ: задаётся номер COM-порта (Comtosearch), указывается скорость передачи данных (Baudratetosearch), время таймаута (TimeOutSetting) и необходимость проверки контрольной суммы (ToSearchChecksumEnabledModule?). Перечисленные настройки задаются в диалоговом окне, доступном через пункт меню «COMPort», данное окно представлено на рисунке 2.

 

Рисунок 2 – Диалоговое окно настройки последовательного порта

 

Принажатии кнопки «Начать сканирование (StartSearch)» утилита опрашивает подключенные модули на указанных скоростях, в результате чего формируется список модулей, пример результата сканирования представлен на рисунке 3. Обычно сканирование начинается автоматически, когда пользователь запустил утилиту.

 

Рисунок 3 – Пример результата поиска подключенных к порту компьютера модулей

 

Чтобы остановить поиск подключенных к порту МВВ – необходимо нажать кнопку «Stop», которая показана на рисунке 4. После этого можно настроить COM-порт. После перенастройки порта поиск подключенных МВВ к указанному порту можно запустить кнопкой Search (соседняя слева кнопка от кнопки «Stop» на рисунке 4).

 

Рисунок 4 – Остановка сканирования

 

Согласно документации на утилиту, нельзя одновременно подключать более одного МВВ (конвертер интерфейса не учитывается) без предварительной настройки адреса каждого МВВ. Сначала надо подключить каждый МВВ отдельно и настроить его адрес. По умолчанию все ММВ серии i-7xxxимеют один и тот же адрес 0x01.Поскольку RS-232 является последовательным интерфейсом, то нужно, чтобы при последовательном опросе всех МВВ каждый МВВ имел свой уникальный адрес.

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

 

Рисунок 4 – Подключение измерительной системы с одним МВВ к ПК

 

В качестве источника питания используется универсальный источник питания УИП-1, настроенный на выходное напряжение в 15 Вольт. Такого напряжения вполне достаточно, поскольку индикатор питания на МВВ и на конвертере при таком питании становится активным. После подключения измерительной системы к ПК настраивается адрес модуля измерителя температуры. Сначала подключаем модуль измерения температуры, затем после настройки последовательного порта с последующим сканированием МВВ заходим в меню настроек данного модуля и задаём ему адрес 0x02 (или 2 в десятичной системе). Пример окна настроек представлен на рисунке 5.

Рисунок 5 – Меню настроек МВВ с изменением адреса

 

После настройки модуля измерения температуры происходит подключение модуля ввода напряжения по схеме, представленной на рисунке 4 и настраивается его адрес, для данного МВВ был установлен адрес 0x01 (или 1 в десятичной системе).

После настройки адресов для каждого МВВ – можно производить одновременное подключение к настроенному в утилите последовательному порту следующих модулей: конвертера интерфейсов, модуля измерителя температуры и модуля ввода напряжения. Подключение производится по схеме, представленной на рисунке 6.

 

Рисунок 6 – Пример подключения двух МВВ к последовательному порту

После сканирования подключенных к настроенному последовательному порту МВВ утилита должна показать два подключенных модуля с адресами 1 и 2. Пример сканирования представлен на рисунке 7.

 

Рисунок 7- Пример сканирования двух МВВ с разными адресами

 

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

 

Рисунок 8 – Отклик модуля ввода напряжения по нулевом каналу

Показания соответствуют действительности, поскольку на входы модуля I-7017 Vin0+ и Vin0- подано напряжение с источника напряжения, на котором выставлено напряжение 2 Вольта. Диапазон входных значений I-7017 выбран от – 10 Вольт до + 10 Вольт. Показания снимаются со всех восьми каналов I-7017. Распиновка модуля I-7017 представлена на рисунке 9.

 

Рисунок 9 – Распиновка модуля ввода напряжения I-7017

 

Отклик модуля измерения температуры I-7011 представлен на рисунке 10.Входной диапазон определяется программой самостоятельно, для этого надо сконфигурировать модуль на работу с подключаемой термопарой, в нашем случае имеется термопара K-типа, поэтому в настройках входных диапазона модуля выбираем «T/CK-type». В строке «ReadingAnalogValue:»показано значение температуры в градусах Цельсия в текущий момент времени, щуп термопары нагревалась трением двух пальцев, отображаемая температура завышена примерно на два-три градуса.

Рисунок 10 – Отклик модуля измерения температуры I-7011

 

На рисунке 11 представлена распиновка МВВ I-7011.

 

Рисунок 11 – Распиновка МВВ измерения температуры I-7011

2. Изучите виртуальный прибор (ВП)SER7000UART.vi, созданный с использованием специального драйвера Uart.dll. На основе данного ВП создайте виртуальный прибор, который по нажатию соответствующей кнопки измеряет напряжение (по каналу 0) и температуру.Проверьте их работоспособность.

В состав программного обеспечения, поставляемого фирмой IСPDAS, входит также платформа графического программированияLabVIEW, предназначенная для комплексной автоматизации промышленного производства.

Среда LabVIEW (LaboratoryVirtualInstrumentsEngineeringWorkbench) – разработка компании NationalInstruments (NI), позволяющаяинженерам и ученым (не специалистам в области программирования) быстро создавать собственные контрольно-измерительные системы (виртуальные приборы), максимально отвечающие их потребностям. Данная система разработки виртуальных приборов представляет собой среду прикладного графического программирования, которая используется в качестве стандартного инструмента для проведения измерений, анализа данных,управления приборами и исследуемыми объектами. В последнее времяплатформа LabVIEW получает все большее распространение в промышленности и образовании, при проведении научных исследований и выполнении проектных работ.Этому способствует ее несомненное преимущество – высокая производительность при разработке программ, широкий набор функциональных возможностей языка и среды программирования.

Виртуальный прибор SER7000UART.vi используетдинамически подключаемые библиотеки *.dll (лежат в папке Dataрядом с SER7000UART.vi – это I7000.dll, Uart.dll), обеспечивающие программный интерфейс COM-портаи модулей I-7xxx (конвертера интерфейсов и последовательного порта), библиотека lvanlys.dll обеспечивает взаимодействие между собой модулей I-7xxx.

Рассмотрим блок-диаграмму данного виртуального прибора, в основе которого лежит последовательность, содержащая четыре страницы. Лицевая панель ВП представлена на рисунке 12.

На первой странице (смотреть рисунок 13) включен цикл While, который прекращается только при нажатии кнопки «Send», что приводит к переходу на вторую страницу последовательности. Во время выполнения цикла Whileпользователь может задать номер последовательного порта, откуда будут читаться данные с МВВ. Номер порта узнаётся из утилиты 7000 Utility. Также задаётся адрес МВВ, подключенного к COM-порту, с которого требуется прочитать данные. Адрес для каждого конкретного МВВ также задаются из утилиты 7000 Utility. Как только все данные введены – пользователь может нажимать кнопку Send, чтобы получить ответ от выбранного МВВ, подключенного к выбранному последовательному порту.

 

Рисунок 12 – Лицевая панель виртуального прибора SER7000UART.vi

 

Рисунок 13 – Первая страница блок-диаграммы SER7000UART.vi

Вторая страница блок-диаграммы представлена на рисунке 14. На этой странице открывается COM-порт, который управляется с лицевой панели виртуального прибора. В данном случай управлять можно только номером COM-порта. Остальные параметры (скорость передачи, разрядность данных, проверка на чётность и установка стоп-бита) задаются не пользователем, а определены внутри программы. В программе данные параметры выставляются в соответствии с параметрами COM-порта, установленными в утилите 7000 Utility. Поэтому порт должен быть выбран первым, скорость передачи должна быть 9600 бод, без проверки на чётность (на вход подаётся 0), и безстоп-бита (на вход подаётся 0). Без установки этих параметров проверить работу виртуального прибора будет невозможно и ответ от МВВ не будет получен. В случае успешного открытия COM-порта на лицевой панели прибора в строке «Ret»будет отправлен 0, сообщающий о том, что открытие порта было успешным, иначе приборвыдаст номер ошибки.

 

Рисунок 14 – Инициализация COM-порта

 

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

Рисунок 15 – Отправка команды к модулю и получение ответа

 

На данной станице в качестве входных данных на субвиртуальный прибор «Send_Receive_Cmd» приходят три параметра: команда порту, время таймаута в миллисекундах, проверка контрольной суммы. Все три параметра указываются с учётом настроек утилиты 7000 Utility. Команду отправляет пользователь с лицевой панели, время таймаута и проверка контрольной суммы устанавливаются в программе. В качестве команды подан адрес МВВ, в ответ на это МВВ, лежащий по указанному адресу, должен прислать информацию. Время таймаута установлено в 1000 миллисекунд, проверка контрольной суммы отключена (записан 0). В качестве выходногопараметра приходит ответ от МВВ, записанный в виде строки и выводимый в индикатор «szResult»на лицевой панели. На лицевой панели также есть индикатор «offset past number», который показывает ответ от МВВ, преобразованный из строки в число, причём преобразование начинается с шестого символа строки результата.

Основой указанного субвиртуального прибора является вызовкоманды «Send_Receive_Cmd» из динамически подключаемой библиотеки «Uart.dll» (смотреть рисунок 16).

Рисунок 16 – Блок-диаграммасубвиртуальногоприбора «Send_receive_cmd.vi»

 

Следует заметить, что для функционирования виртуального прибора, содержащего узел вызова функции библиотеки «CallLibraryFunctionNode», необходимо задать путь к используемому файлу библиотеки *.dll. Для этого в контекстном меню функционального узла выбирается пункт «Configure…», в открывшемся окне необходимо задать имя используемой библиотеки, название вызываемой функции, входные параметры функции и тип возвращаемого параметра (смотреть рисунки 17и 18).

 

Рисунок 17 – Окно настройки входных параметров функции динамически подключаемой библиотеки

Рисунок 18 – Окно настроек типа возвращаемого значения функции динамически подключаемой библиотеки

 

На рисунке 19 представлена последняя страница блок-диаграммы. Там располагается субвиртуальный прибор, закрывающий COM-порт.

 

Рисунок 19 – Последняя четвёртая страница виртуального прибора, закрывающая COM-порт субвиртуальным прибором «CloseCOM»

В случае успешного закрытия COM-порта на лицевой панели прибора в строке «Ret»будет отправлен 0, сообщающий о том, что закрытие порта было успешным, иначе прибор выдаст номер ошибки.

Была проверена работоспособность виртуального прибора SER7000UART.vi. Результаты проверки представлены на рисунках 12 и 20. На рисунке 12 показано выходное значение, полученное от МВВ I-7011, а на рисунке 20 показано выходное значение от МВВ I-7017. Полученные значения похожи на реальные результаты: на вход нулевого канала I-7017 было подано постоянное напряжения с источника напряжения 0.5 Вольта, а щуп термопары вновь нагревался трением двух пальцев. Данные результаты позволяют сделать вывод о том, что виртуальный прибор SER7000UART.viявляется работоспособным.

 

Рисунок 20 – Проверка работоспособности ВП в режиме измерения напряжения

 

Поскольку SER7000UART.vi является работоспособным – можно на его основе создать виртуальный прибор, который по нажатию соответствующей кнопки измеряет напряжение и температуру. Страницы блок-диаграммы разработанного виртуального прибора «T_U_UART.vi»представлены на рисунках 21-24, а лицевая панель «T_U_UART.vi» с результатами измерения напряжения и температуры представлена на рисунке 25. На лицевой панели отображаются значения напряжения и температуры в числовом виде, отображение последней запрашиваемой величины в виде строки, а также длину ответа, измеряемую в байтах, можно задать номер порта.

Рисунок 21 – Инициализация выбранного COM-порта и его открытие

 

Рисунок 22 – Программа в ожидании нажатия кнопки измерения напряжения или температуры

Рисунок 23 – Отправка команды и чтение результата при нажатии кнопки измерения температуры или напряжения

 

Рисунок 24 – Закрытие COM-порта

Рисунок 25 – Лицевая панель ВП «T_U_UART.vi» с результатами измерения напряжения и температуры

 

3. Используя полученные знания, создайте два ВП, описанных в п. 2, на основе программного драйвера VISA. Проверьте их работоспособность.

Был создан один виртуальный прибор на основе программного драйвера VISA, выполняющий следующие функции:

I. Сбор данных с МВВ I-7011 или МВВ I-7017 через конвертер стандартного интерфейса RS-485 в стандартный интерфейс RS-232, подключенного к последовательному порту;

II. Преобразование полученных данных в одномерный строчный массив, записанный в текстовом виде и отображаемый на индикаторе в LabVIEW;

III.Вывод на экран количества байт, записанных в буфер выбранного последовательного порта, длины прочитанной строки в байтах, а также число прочитанных байт из последовательного порта;

IV. Переключение между режимами измерения температуры и напряжения.

Среда графического программирования LabVIEWпредлагает несколько вариантов создания программного обеспечения для приборов со стандартными интерфейсами (GPIB, RS-232, VXI, PXI, USBи другие), которые отличаются применением различных драйверов. Драйвер – это системная программа, реализующая физический уровень ввода-вывода данных для работы с конкретным устройством, классом устройств или каким-либо ресурсом. В LabVIEWдрайверы представляют собой наборы функций, находящиеся в различных палитрах меню функций.

Драйверы среды LabVIEWможно разделить таким образом:

I. Специальные драйверы для стандартных интерфейсов;

II. Уникальные программные драйверы протокола VISA;

III. Драйверы измерительных приборов конкретных типов, образующих объёмную библиотеку (InstrumentLibrary).

Каждый из специальных драйверов предназначен для работы с одним из стандартных интерфейсов. Специальный драйвер RS-232 (в LabVIEW 6.1 палитра функций представлена на рисунке 26) в меню функций современных версий LabVIEW (версия 7.0 и выше) не входит, но очень часто встречается в составе программного обеспечения для измерительных приборов конкретного типа. Именно с использованием драйверов IIIтипа и было выполнено задание 2. В задании 3 предлагается создание ВП с использованием драйверов IIтипа.

 

Рисунок 26 – Палитра функций драйвера RS-232 среды LabVIEW 6.1

 

VISA(VirtualInstrumentSoftwareArchitecture) являетсястандартнымпрограммныминтерфейсомприложений API, который разработчики попытались сделать независимым от аппаратного интерфейса связи с измерительным прибором. Драйверы VISAявляются драйверами более высокого уровня, чем специальные драйверы стандартных интерфейсов. С помощью VISAможно управлять средствами измерений со всеми вышеперечисленными стандартными интерфейсами. В LabVIEWсуществует отдельная палитра «Serial», созданная для работы с последовательными портами на основе драйвера VISA. Палитра «Serial», представленная на рисунке 27, имеет ряд функций, среди которых есть функция записи VISARead, функция чтения VISARead, функция закрытия портаVISAClose, функция инициализация последовательного порта VISAConfigureSerialPort, функция определения числа байт, хранимых в буфере последовательного порта в данный момент времени VISABytesatSerialPort и другие.

 

Рисунок 27 – Палитра «Serial»основных функций VISAдля работы с последовательными портами

 

На рисунках 28-30 будут представлены страницы блок-диаграммы виртуального прибора «SER7000VISA.vi», а на рисунках 31-32 будет представлена лицевая панель ВП с результатами проверки работоспособности в режимах измерения температуры и напряжения, пользователь задаёт номер порта, команду, время таймаута, на выходе получает результат, посланный МВВ в указанный порт.

Рисунок 28 – Инициализация последовательного порта и запись посылаемой команды в порт

 

Рисунок 29 – Задержка в миллисекундах для записи в буфер последовательного порта ответа от МВВ

 

Рисунок 30 – Чтение данных из буфера порта, определение числа байт в буфере порта, закрытие последовательного порта

Рисунок 31 – Лицевая панель ВП «SER7000VISA» при проверке работоспособности ВП в режиме измерения напряжения

 

Рисунок 32 – Лицевая панель ВП «SER7000VISA» при проверке работоспособности ВП в режиме измерения температуры

 

4. Изучите консольное приложение I7017.На его основе создайте проект WindowsForms, приложение которого по нажатию соответствующей кнопки позволяет измерять напряжение (по каналу 0) и температуру.

Фрагмент кода программы на VisualC#.

class Program

{

status void Main()

{

char [] buff = new char[100];

int N = 0, i;

string s1 = “ ”;

SerialPortsp = new SerialPort(“COM1”,9600, Parity.None, 8, StopBits.One);

sp.ReadTimeout = 5 * 1000;

sp.ReadBufferSize = 100;

sp.WriteBufferSize = 100;

sp.Open();

Thread.Sleep(100);

sp.Write(“#01”+”\r);

Thread.Sleep(100);

N = sp.BytesToRead;

sp.Read(buff, 0, N);

for (i = 0; i < N; i++)

{

s1 = s1 + buff[i];

}

sp.Close();

Console.WriteLine(N);

Console.WriteLine(s1);

Console.ReadKey();

}

}

}

Скриншоты интерфейса пользователя на С# при проверке работоспособности в режимах измерения напряжения и температуры представлены на рисунках 33-34. На рисунке 33 представлен интерфейс пользователя с результатами измерения температуры, а на рисунке 34 представлен интерфейс пользователя с результатами измерения напряжения.

 

Рисунок 33 – Интерфейс пользователя на C# при проверке работоспособности в режиме измерения температуры

Рисунок 34 – Интерфейс пользователя на C# при проверке работоспособности в режиме измерения напряжения

Выводы:

В результате выполнения работы удалось получить следующие результаты:

I. Настроенный последовательный порт и адреса МВВ в утилите «7000 Utility»;

II. Изученный и проверенный на работоспособность ВП «SER7000UART.vi», использующий специальный драйвер Uart.dll и настройки порта из утилиты «7000 Utility», с положительными результатами проверки;

III. Изученный и проверенный на работоспособность ВП «T_U_UART.vi» (разработанный на основе ВП «SER7000UART.vi» с использованием специального драйвера Uart.dll и настроек порта из утилиты «7000 Utility») с положительными результатами проверки;

IV. Изученный и проверенный на работоспособность ВП «SER7000VISA.vi», использующий программный драйвер VISA и настройки порта из утилиты «7000 Utility», с положительными результатами проверки;

V. Разработанное приложение в среде программирования VisualC# с использованием компонента MSComm32для работы с портом и библиотеки WindowsForms для создания интерфейса пользователя (использованные компоненты: Button, TextBox и Label).

Использование программного драйвера VISA в среде графического программирования LabVIEW избавляет от необходимости искать специальный драйвер под стандартный интерфейс и имеет одинаковый набор функций для устройств, использующих стандартные интерфейсы. Но не все устройства смогут понимать функции VISA, тогда вместо VISA используются специальные драйвера, идущие в комплекте с ПО устройства. Такие драйвера гарантируют нормальную работу устройства, но придётся изучать систему команд, принятую в данном драйвере. Среда графического программирования LabVIEWочень удобна тем, что позволяет инженерам и ученым (не специалистам в области программирования) быстро создавать собственные контрольно-измерительные системы (виртуальные приборы), максимально отвечающие их потребностям. К тому же – все функции реализованы в виде графических элементов, которые намного удобнее для восприятия по сравнению текстовым заданием функции.

Среда VisualC# не требует наличия драйверов, без них можно разработать приложение, которое будет выполнять требуемые задачи измерения. При разработке программных систем в текстовом виде используется компонентная архитектура, где программа представляется в виде совокупности компонент. Этот подход позволяет разрабатывать компоненты независимо, реализовывать их так, чтобы иметь возможность работы в распределенной среде, модифицировать одни компоненты ПО без изменения других, и т.д. Но по сравнению с LabVIEWсреда VisualC# не обладает графическим представлением функций. Человеку, не являющимся специалистом в области программирования, будет сложно воспринять структуру программы, но будет проще воспринять структуру программы, выполненную на графическом языке программирования «G», который используется в LabVIEW.



2018-07-06 859 Обсуждений (0)
Модули удаленного ввода вывода с интерфейсом RS-485 0.00 из 5.00 0 оценок









Обсуждение в статье: Модули удаленного ввода вывода с интерфейсом RS-485

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (859)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)