Диплом (1230938), страница 6
Текст из файла (страница 6)
Рисунок 2.16 – Блок VISA Close
н) Далее завершаем внутренний бесконечный цикл блоком Error. Он нужен для того чтобы указать, что произошла ошибка. Если это произошло, виртуальный прибор отсылает описание ошибки и отображает это в диалоговом окне. Functions > Programming > Dialog User Interface > Simple Error. Блок Simple Error показан на рисунке 2.17;
Рисунок 2.17 – Блок Simple Error
о) Теперь добавим блок Array Size Function это размерность массива, он возвращает вектор размеров в каждом измерении массива. Блок получает данные от VISA Read Function. Functions > Programming > Array > Array Size. Блок Array Size показан на рисунке 2.18;
Рисунок 2.18 – Блок Array Size
п) Далее добавляем Subtract, эта функция рассчитывает разность входов. Она нужна чтобы перед индивидуальным номером метки убрать два пробела. Functions > Programming > Numeric > Subtract. Блок Subtract на рисунке 2.19;
Рисунок 2.19 – Блок Subtract
р) Функция Index Array возвращает элемент (element) или подмассив (sub-array) входного массива (array) начиная с индекса (index). При подключении входного массива функция автоматически перестраивается в соответствии с его размерностью, отображая входы индекс для каждой размерности . Число терминалов элементов или подмассивов можно увеличить с помощью инструмента перемещения. Functions > Programming > Array > Index Array. Блок Index Array показан на рисунке 2.20;
Рисунок 2.20 – Блок Index Array
с) Далее снова добавляем блок Search and Replace String , только теперь после слова «Card UID:» заданного как константа, будет выводится идентификатор метки показанный на индикаторе «read string ». Functions > Programming > String > Search and Replace String. Блок Search and Replace String показан на рисунке 2.21;
Рисунок 2.21 – Блок Search and Replace String
т) Далее необходимо добавить блок String Subset, он возвращает часть входной строки (string), начинающуюся со смещения (offset) и содержащую число символов, заданное на входе длина (length). Начальный адрес первого символа в строке равен 0. Нужно добавить к нему две константы: «1» и «11». Это даст программе понять, какие точно данные выбирать из полученной информации о RFID метке. Functions > Programming > String > String Subset. Блок String Subset показан на рисунке 2.22;
Рисунок 2.22 – Блок String Subset
у) Теперь нужно добавить еще раз блок Concatenate String Functions, но теперь он объединяет строки для того, чтобы получилась строка данных, которая вводится в запрос направленный к SQL Server. Запрос выглядит следующим образом « SELECT * FROM LOCORFIDS WHERE [RFID-cod] = '83 58 7B 25' ». Functions > Programming > String > Concatenate String Functions.
Рисунок 2.23 – Блок Concatenate String Functions c данными запроса
Где: SELECT – это команда «выбрать»; * - это команда «все »; FROM – это команда «из»; LOCORFIDS – выбираем из этой базы SQL Server; WHERE – это команда «где»; [RFID-cod] – это название столбца; '83 58 7B 25 – это значения столбца «RFID-cod» которое получает база данных при считывании RFID метки. Блок Concatenate String показан на рисунке 2.23;
ф) Далее необходимо добавить блок String Subset, он возвращает часть входной строки (string), начинающуюся со смещения (offset) и содержащую число символов, заданное на входе длина (length). Начальный адрес первого символа в строке равен 0. Блок нужен для перевода шестнадцатеричного кода RFID метки в десятичный. Functions > Programming > String > String Subset. Блок String Subset показан на рисунке 2.24;
Рисунок 2.24 – Блок String Subset
х) Теперь добавляем блок Hexadecimal String to Number , чтобы преобразовать символы от нуля до девяти и от А до F строки (string), начиная от смещения (offset), в целое шестнадцатеричное число и передает его на выход число (number). Functions > Programming > String > Hexadecimal String to Number. Блок Hexadecimal String to Number показан на рисунке 2.25;
Рисунок 2.25 – Блок String Hexadecimal String to Number
ц) Завершаем цикл блоком Build Array, он объединяет набор массивов или добавляет элементы к n-мерному массиву. Functions > Programming > Array > Build Array. Блок Build Array показан на рисунке 2.26;
Рисунок 2.26 – Блок Build Array
ч) Для продолжения работы необходимо добавить в LabVIEW такие библиотеки, как ADO и Database Сonnectivity Toolkit. Они понадобятся для соединения программы LabVIEW и SQL Server . Эти библиотеки добавляют в палитру блоки которые необходимы для создания запросов в базу данных непосредственно из LabVIEW. Первый из таких блоков, это ADO SQL Execute, он нужен для выполнения SQL запроса, при этом текст запроса является входным параметром этого компонента. Результатом выполнения запроса является строковый массив. Так же от блока выводится два индикатора SQL Results и concatenated string. Первый показывает в табличной форме результат при поднесении метки к считывателю, в виде информативной строки. Второй, это строка ввода запросов направленных к SOL Server. Build Array. Блок ADO SQL Execute показан на рисунке 2.27;
Рисунок 2.27 – Блок ADO SQL Execute
ш) Так же необходимо добавить блок ADO SQL Create, это узел для создания подключения. Непосредственно этот блок связывает информацию поступающею из базы данных с LabVIEW. Блок ADO SQL Create показан на рисунке 2.28;
Рисунок 2.28 – Блок ADO SQL Create
щ) Блок ADO SQL Open узел, выполняющий непосредственное подключение к SQL серверу, при этом параметры подключения указываются с помощью Connection String – строки подключения. В этой строке прописано, с какой конкретно базой данных нужно соединятся программе. В программе блоки ADO SQL Open и ADO SQL Create вынесены за пределы цикла, так как параметры для них задаются единожды и не требуют постоянных корректив. Блок ADO SQL Open показан на рисунке 2.29;
Рисунок 2.29 – Блок ADO SQL Open
э) Блок ADO SQL Close узел, с помощью которого осуществляется разрыв соединения с SQL сервером, к нему так же добавляется компонент error out обнаруживающий ошибки. Блок ADO SQL Close показан на рисунке 2.30.
Рисунок 2.30 – Блок ADO SQL Close
Этот блок заканчивает программу по отслеживанию RFID метки через LabVIEW, Arduino и базы данных SQL Server, выдавая в конечном результате строку из запроса баз данных. В этой строке указан номер локомотива, его индивидуальный код и номер этой строки. Полный вид программы приведен в приложении Д,Г [1].
2.7 Программа добавления данных в SQL через LabVIEW
Программа добавления данных в SQL через LabVIEW, использует командный запрос INSERT, он говорит SQL Server, что именно необходимо сделать. А все что идет после этого ключевого слова, только разъясняет детали заказываемых действий.
Рассмотрим основные блоки и их взаимодействие.
а) Вначале добавляем блок ADO SQL Create, это узел для создания подключения. Непосредственно этот блок связывает информацию поступающую из базы данных с LabVIEW. Блок ADO SQL Create показан на рисунке 2.31;
Рисунок 2.31 – Блок ADO SQL Create
б) Далее добавляем блок ADO SQL Open это узел, выполняющий непосредственное подключение к SQL серверу, при этом параметры подключения указываются с помощью Connection String – строки подключения. В этой строке прописано с какой конкретно базой данных нужно соединятся программе. Запрос выглядит следующим образом «INSERT INTO LOCORFIDS (Loco-cod, RFID-cod) VALUES («2342», «52 83 7B 45»).
Компонент INTO не имеет особого смысла, он предназначен главным образом для облегчения чтения всего предложения.
Компонент VALUES – это оператор значения данных, их он добавляет в таблицу. После слова VALUES, следует список значений через запятую, заключенные в круглые скобки. Число значений в списке должно ровняться числу столбцов в списке столбцов. Таким образом, через этот запрос мы можем добавлять конкретные данные в строки и столбцы. Блок ADO SQL Open показан на рисунке 2.32;
Рисунок 2.32 – Блок ADO SQL Create
в) Для продолжения работы необходимо добавить в LabVIEW блок ADO SQL Execute, он нужен для выполнения SQL запроса, при этом текст запроса является входным параметром этого компонента. Результатом выполнения запроса является строковый массив. Так же от блока выводится индикатор Command Text. В него прописываются текстовые запросы к SQL. Блок ADO SQL Execute показан на рисунке 2.33;
Рисунок 2.33 – Блок ADO SQL Execute
г) Блок ADO SQL Close узел, с помощью которого осуществляется разрыв соединения с SQL сервером. Блок ADO SQL Close показан на рисунке 2.34;
Рисунок 2.34 – Блок ADO SQL Close
д) Блок ADO SQL Destroy нужен для удаления ошибочных данных, к нему так же добавляется компонент error out обнаруживающий ошибки. Блок ADO SQL Destroy показан на рисунке 2.35.
Рисунок 2.35 – Блок ADO SQL Destroy
Этот блок завершает программу для добавления элементов в таблицы SQL через запрос INSERT. Полный вид программы приведен в приложении Е [1].
2.8 Описание работы в SQL Server с помощью SQL Management Studio
Для начала работы по созданию базы данных и таблиц нужен Microsoft SQL Server Management Studio Express 2008.
Чтобы создать базу данных, необходимо определить ее структуру. Внешний вид окна программы SQL Management Studio приведен на рисунке 2.36.
Рисунок 2.36 – Внешний вид программы SQL Server Management Studio Express
Теперь создаем базу данных со своими параметрами. База данных называется «LOCORFID» и имеет таблицу с тремя колонками: IN, LOCO-cod, RFID-cod. В колонке IN указан порядковый номер строки. В колонке LOCO-cod указаны номера локомотивов, а в колонке RFID-cod указываются индивидуальные номера rfid меток. Для каждого столбца необходимо выбрать тип данных. Для столбца IN выбираем тип данных int (числовые значения). Для столбцов LOCO-cod, RFID-cod тип данных nvarchar (тип данных для хранения текста).















