Антиплагиат - полный (1230936), страница 7
Текст из файла (страница 7)
17 из 3307.06.2016 13:51Антиплагиатhttp://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.22620295&r...виртуальными.в) Установить Arduino IDE и библиотеки для работы с RFID модулем.г) Установить расширение LabVIEW Interface for Arduino (LIFA), которое нужно для работы с блоками Arduino вLabVIEW.д) Установить расширение database connection toolkit, которое необходимо для связи программы с базой данныхSQL.С недавнего времени развитие LIFA официально прекращено, поэтому скачать его можно только черезинтерфейс драйверов VI Package Manager.Чтобы начать работать с Arduino в LV, нужно прошить микроконтроллер скетчем LIFA_Base.ino, которыйнаходится в установочной папке LabVIEW Interface for Arduino. После этого в палитре функций LV появитсяподпалитра «Arduino».1) Для выполнения работы нужно открыть новый бланк File > New VI.2) Для начала нужно создать бесконечный цикл Functions > Programming > Structures > While loop.3) Далее из палитры выбираем блок Functions > Instrument I/O > Serial > VISA Configure Serial Port VI.
Онпредназначен для определения связи с последовательным СОМ портом, данные он вычисляет с помощьюрасширения VISA.Функция инициализирует последовательный порт, определяемый с помощью входа имя ресурсаVISA ( VISA resource name), производя определенные установки. Этот полиморфный ВП можетиспользоваться для инициализации последовательного порта с помощью узла свойств класса InstrVISA или класса Serial Instr VISA, являющегося основным элементом блок-диаграммы ВП. [30]Класс VISA, заданный именем ресурса VISA, определяет используемую реализацию полиморфного ВП.Параметры порта:- Распознание поступающих данных (End read on termination char)-.Прекращение операции чтения (termination char)- Перерыв (timeout) – 10 миллисекунд-.Название СОМ порта (VISA resource name)-.Биты в секунду (baud rate) - 9600- Биты данных (data bits) - 8- Четность (parity) - нет- Стоповые биты (Stop bits) - 1- Управление потоком (flow control) – нетРисунок 2.8 Блок VISA Configure Serial Port VI4) Далее создается еще один бесконечный цикл, в него вносится блок чтения.
Это нужно для того чтобы с меткивыводилась только нужная информация в виде rfid кода. Functions > Programming > Structures > While loop.5) Добавляем блок «VISA Read Function», который нужен для чтения виртуальных приборов. Он определяетколичество поступающих байт, читает их и возвращает данные в буфер чтения. Так же задаем в этом блокечтение байт до 1000 (bytes to read), это увеличит скорость считывания.Functions > Instrument I/O > Serial > VISA Read Function.Рисунок 2.9 Блок VISA Read6) Далее делаем отбор из полученной информации с Arduino, после заданного слова «MIFARE» с помощью блока«Search and Replace String» программа не будет выдавать дальнейшую информацию.
Блок нуженфункция заменяет одну или все данные подстроки другой подстрокой. Данная [38]функция проверяет строку (string) на наличие данных строкипоиска (search string), начиная с позиции, заданной величиной смещения (offset). Функция заменяетпервый встретившийся образец искомой строки на строку замены (replace string). Если на входезаменить все (replace) установлено состояние ИСТИНА, то функция производит замену всехнайденных образцов строки поиска.Выход результирующая строка ( result string) содержит строку (string) с одной или всеми образцамистроки поиска, замененными на строку замены. Если строка замены является пустой, торезультирующая строка содержит входную строку с удаленной строкой поиска.
[38]Functions > Programming > String > Search and Replace String.Рисунок 2.10 Блок Search and Replace String7) Следующим шагом добавляем блок который нужен для объединения строк Concatenate String Functions онобъединяет входные строки и одномерные массивы строк в единственную выходную строку. [38]Объединим информацию, поступающую от считывателя с сохраненными данными с прошлого цикла, а так жевыведем индикатор Response который показывает все что считывает реальный прибор.
Functions > Programming> String > Concatenate String Functions.Рисунок 2.11 Блок Concatenate String FunctionsСтр. 18 из 3307.06.2016 13:51Антиплагиатhttp://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.22620295&r...8) Добавим блок, который используется для передачи значений обработки данных структурных циклов«Feedback Node».Он будет соединятся с блоком Concatenate String Functions и выводит константу. Functions >Programming > Structures > Feedback NodeРисунок 2.12 Блок Feedback Node9) Далее добавляем блок сравнения Equal, он будет соединяться с блоком Search and Replace String. Когдапрограмма видит слово «MIFARE» она перестает выдавать дальнейшие данные с RFID метки. Сам блок нужендля возврата значения ИСТИНА, если Х равно Y, иначе возвращается значение ЛОЖЬ. Functions > Programming> Comparison > Equal.Рисунок 2.13 Блок сравнения Equal10) Блок Or, этофункция «или».
Возвращает значение ЛОЖЬ(0) только при подаче на оба входа значения ЛОЖЬ(0),иначе возвращает значение ИСТИНА (1). [38]Блок нужен в данном случае для того , что бы программа приняв данные в виде одиннадцати байт с блока Equalостанавливалась. Functions > Programming > Boolean > Or.Рисунок 2.14 Блок Or и функция выключения11) Так же добавляем блок Wait, входной параметр которого определяет время задержки в миллисекундах ивозвращает начальное значение таймера в миллисекундах. Данная функция выполняет асинхронные системныевызовы, но сама работает синхронно.
Следовательно, она не завершит выполнение до истечения заданноговремени. Functions > Programming > Timing > Wait.Рисунок 2.15 Блок Wait12) Блок VISA Close закрывает сессию устройства или объект события, определенные с помощью имени ресурсаVISA (VISA resource name). Каждая открытая сессииVISA должна быть закрыта при завершении работы с ней. [30]Functions > Instrument I/O > Serial > VISA CloseРисунок 2.16 Блок VISA Close13) Далее завершаем внутренний бесконечный цикл блоком Error.
Он нужен для того чтобы указать, чтопроизошла ошибка. Если это произошло, виртуальный прибор отсылает описание ошибки и отображает это вдиалоговом окне. Functions > Programming > Dialog User Interface > Simple Error.Рисунок 2.17 Блок Simple Error14) Теперь добавим блок Array Size Function это размерность массива, он возвращает вектор размеров в каждомизмерении массива. Блок получает данные от VISA Read Function.
Functions > Programming > Array > Array Size.Рисунок 2.18 Блок Array Size15) Далее добавляем Subtract, эта функция рассчитываетразность входов. Она нужна чтобы перединдивидуальным номером метки убрать два пробела. Functions > Programming > Numeric > Subtract.Рисунок 2.19 Блок Subtract16) Функция Index Array возвращает элемент (element) или подмассив (sub-array) входного массива (array)начиная с индекса (index). При подключении входного массива функция автоматически перестраивается всоответствии с его размерностью, отображая входы индекс для каждой размерности .
Число терминаловэлементов или подмассивов можно увеличить с помощью инструмента перемещения. Functions > Programming >Array > Index Array.Рисунок 2.20 Блок Index Array17) Далее снова добавляем блок Search and Replace String , только теперь после слова «Card UID:» заданногокак константа, будет выводится идентификатор метки показанный на индикаторе «read string ». Functions >Programming > String > Search and Replace String.Рисунок 2.21 Блок Search and Replace String18) Далее необходимо добавить блок String Subset, он возвращает часть входной строки (string), начинающуюсясосмещения (offset) и содержащую число символов, заданное на входе длина (length).
Начальныйадрес первого символа в строке равен 0. [38]Нужно добавить к нему две константы: «1» и «11». Это даст программе понять какие точно данные выбирать изполученной информации о RFID метке. Functions > Programming > String > String Subset.Рисунок 2.22 Блок String Subset19) Теперь нужно добавить еще раз блок Concatenate String Functions, но теперь он объединяет строки для того,чтобы получилась строка данных, которая вводится в запрос направленный к SQL Server.
Запрос выглядитследующим образом « SELECT * FROM LOCORFIDS WHERE [RFID-cod] = '83 58 7B 25' ». Functions > Programming> String > Concatenate String Functions.Где: SELECT – это команда «выбрать»; * - это команда «все »; FROM – это команда «из»; LOCORFIDS –выбираем из этой базы SQL Server; WHERE – это команда «где» ; [RFID-cod] – это название столбца; '83 58 7B25 – это значения столбца «RFID-cod» которое получает база данных при считывании RFID метки.Стр. 19 из 3307.06.2016 13:51Антиплагиатhttp://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.22620295&r...Рисунок 2.23 Блок Concatenate String Functions с данными запроса20) Далее необходимо добавить блок String Subset, он возвращает часть входной строки (string), начинающуюсясосмещения (offset) и содержащую число символов, заданное на входе длина (length).
Начальныйадрес первого символа в строке равен 0. [38]Блок нужен для перевода шестнадцатеричного кода RFID метки в десятичный. Functions > Programming > String> String Subset.Рисунок 2.24 Блок String Subset21) Теперь добавляем блок Hexadecimal String to Number , чтобы преобразовать символы от нуля до девяти и отА до F строки (string), начиная от смещения (offset), в целое шестнадцатеричное число и передает его на выходчисло (number). Functions > Programming > String > Hexadecimal String to Number.Рисунок 2.25 Блок String Hexadecimal String to Number22) Завершаем цикл блоком Build Array, он объединяет набор массивов или добавляет элементы к n-мерномумассиву.















