Элементы управления внешним устройством с использованием кластера

Как и массив, кластер (cluster) является структурой, группирующей данные. Однако в отличие от массива кластер может группировать
данные различных типов (числовые, логические и т.д.). Это понятие аналогично struct в языке программирования С или объектам данных, определенным как элементы класса, в C++ или Java. Кластер может быть мысленно представлен в виде связки проводов, как в телефонном кабеле. Каждый провод в кабеле представляет элемент кластера.

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

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

  • дискретный: внешнее устройство управляется отдельной командой с ЭВМ;
  • циклический: внешнее устройство управляется с помощью командной последовательности, подаваемой непрерывно с определенным периодом;
  • следящий: сигналом к подаче командной последовательности является изменение входного сигнала, превышающее заданный уровень.

Среда LabVIEW предоставляет возможность организации всех трех режимов управления.
Поскольку внешнее устройство состоит, как правило, из нескольких самостоятельных блоков, то управляющее слово должно состоять из непосредственно команды и ее адресации. В режиме визуального программирования LabVIEW можно наглядно проследить, как отрабаты
вается такое управляющее слово. Рассмотрим в качестве примера виртуальное устройство, состоящее из двух независимых блоков. Независимые блоки описаны при помощи оператора условных переходов (пункт головного меню FunctionsStruct&Constants). В зависимости от поступившего в оператор условия (0/1, True/False) входной сигнал обрабатывается по одному из двух возможных алгоритмов, т.е. активизируется то окно условных переходов, которое было выбрано согласно условию.

По умолчанию оператор создает два окна, если же необходимо большее число окон, следует перейти от логического условия (True/False) к арифметическому (0/1), так, как это сделано в схеме виртуальной установки (на вход подать условие в форме целого числа (0/1)), а затем в ситуационном меню (курсор на операторе, зажать правую кнопку) выбрать пункт AddCaseBefore.
При каждом таком выборе число открытых окон на одно увеличивается. Закрыть лишние окна можно выбором пункта ситуационного меню RemoveCase.
При размещении в окнах оператора условных переходов операторов, ЭУ и т.д. переход между окнами осуществляют следующим образом: курсор помещают на указатель номера окна, зажимают левую кнопку мыши и в появившемся меню выбирают номер нужного окна.
Лицевая панель виртуальной установки включает:



  • устройство ввода управляющего слова input;
  • устройство вывода номера блока, которому адресована команда (0,1), т.е. адреса блоков);
  • устройства визуального вывода текста команды (ind1, ind2), составляющие содержание независимых блоков.

Управляющее четырехразрядное слово вводится в диалоговом режиме. Это слово разделяется на адрес (1 бит) и команду (3 бита). Команда поступает непосредственно в блок (ind1, ind2), а адрес определяет номер окна оператора условных переходов, т.е. номер блока, к которому обращена команда.

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

Ход работы:

1. Запускаем LabVIEW соответствующей иконкой в среде Windows.

2. Работаем в окне лицевой панели в режиме редактирования графических объектов(FrontPanel).

3. Формируем элементы 4 блоков и элементы управляющего слова. Controls->Modern->Boolean->Square LED

4. Добавляем элементы управляющего слова и блоков в кластер.

Элементы управления внешним устройством с использованием кластера - student2.ru

5. Переходим в режим установления связи.

6. Добавляем элемент, разбивающий кластер на составные части. Functions->Programming->Cluster,Class&Variant->Unbundle

7. Добавляем элемент, объединяющий сотавныечастив кластер. Functions->Programming->Cluster,Class&Variant->Bundle

8. Используя команду «addcaseafter» добавляем кластеры в структуру «case».

9. Расставляем связи как показано на рисунке.

Элементы управления внешним устройством с использованием кластера - student2.ru

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

Лабораторная работа 9

Структура Case

Структура с ветвлением обеспечивает выбор одной из нескольких ветвей алгоритма функционирования виртуального прибора в зависимости от заданного условия. Структура имеет специальный вход условия, которым может быть либо логическое значение(Истина, Ложь – если существует лишь две ветви), либо номер выбираемой ветви функционирования виртуального прибора.
По умолчанию структура имеет две ветви. Для создания дополнительных ветвей следует на контуре структуры выполнить нажатие и в раскрывшемся списке выбрать пункт AddCase (Добавить ветвь). Для удаления не используемой ветви следует выбрать DeleteThisCase.
Структура может иметь один или несколько выходов или не иметь их вообще. В случае, если хотя бы одна из ветвей алгоритма передает данные дальше, то необходимо, чтобы и остальные ветви передавали данные из структуры Case.
При проведении связи от объекта внутри структуры выбора к ее границе на границе образуется туннель белого цвета, видимый из любой ветви структуры. Данные того же типа, получаемые в других ветвях алгоритма, необходимо при проведении связей передавать в тот же туннель. При правильно организованной передаче данных из структуры все туннели должны быть окрашены в черный цвет, как это показано на рисунке.

Элементы управления внешним устройством с использованием кластера - student2.ru

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

Ход работы:

1. Запускаем LabVIEW соответствующей иконкой в среде Windows.

2. Работаем в окне лицевой панели в режиме редактирования графических объектов(FrontPanel).

3. Устанавливаем поле ввода цифровой информации, в которое будет вводиться число

4. Controls ->Modern->Numeric->NumericControl

5. Устанавливаем цифровой индикатор, в который будет выводиться квадратный корень числа Controls ->Modern->Numeric->NumericIndicator

Элементы управления внешним устройством с использованием кластера - student2.ru

6. Переходим в режим установления связи.

7. Добавляем структуру Case, Functions->Programming->Structures->Case Structure

8. Помещаем на блок-диаграмму функцию Greater or Equal to 0?, Functions->Comparison-> Greater or Equal to 0?.Функция возвращает значение TRUE, если число больше или равно 0.

9. Добавляем численную константу Functions->Programming->Numeric->NumericConstant Щелчком правой кнопкой мыши по численной константе и в контекстном меню выберите пункт Format&Precision. Установите DigitsofPrecision равным 1, выберите вид представления FloatingPointNotation и нажмите кнопку OK.

10. Добавляем элемент «OneButtonDialog» Function->Dialog&UserInterface->OneButtonDialog Щелчком правой кнопкой мыши по полю ввода/вывода message функции OneButtonDialog и в контекстном меню выберите пункт Create>>Constant. Введите текст «Ошибка… Отрицательное число».

11. Добавляем функцию извлечения квадратного корня Functions->Programming->Numeric->Squreroot

12. Программируем режим «true» структуры Case.

Элементы управления внешним устройством с использованием кластера - student2.ru

13. Программируем режим «false» структуры Case.

Элементы управления внешним устройством с использованием кластера - student2.ru

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

Лабораторная работа 10

Работа с файлами:

Операции ввода и вывода (I/O) запрашивают информацию из файла и сохраняют информацию в файле на диске. LabVIEW имеет ряд гибких функций ввода и вывода наряду с простыми функциями, которые обеспечивают выполнение практически всех операций ввода и вывода.

Для функций, работающих с файлами, необходимо ввести путь к размещению файла, который выглядит как строка. Путь является особым видом данных для работы с файловой системой, указывая местоположение файла.
Если вы не подключили переменную пути к файлу, то функции вызовут диалоговое окно и попросят вас выбрать файл или ввести его имя. Будучи вызванными, функции откроют или создадут файл, прочитают или запишут данные, а затем закроют файл. Файлы, созданные виртуальными приборами, о которых мы сейчас говорим, представляют собой обыкновенные текстовые файлы. Как только вы запишете информацию в файл, вы можете открыть его, используя любой текстовый редактор для просмотра данных.

Одним из наиболее распространенных способов хранения данных в файле является форматирование текстового файла. Это удобно, поскольку вы можете открыть его в любой программе, работающей с таблицами. В большинстве табличных форматов столбцы отделяются табуляцией, а строки - символами конца строк (EOL). Функции Записать в файл табличного формата (Write То SpreadsheetFile) и Считать из файла табличного формата (ReadFromSpreadsheetFile) имеют дело с файлами табличного формата. Функция Сохранить символы в файл (WriteCharacters То File) сохраняет строковый символ в новый файл или добавляет строку в существующий файл. Функция считать символы из файла (ReadCharactersFromFile) считывает определенное количество символов из файла, начиная с заданного смещения.

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

Ход работы:

1. Запускаем LabVIEW соответствующей иконкой в среде Windows.

2. Работаем в окне лицевой панели BlockDiagram.

3. Добавляем цикл For, Functions->Programming->Structures->For Loop

4. В качестве параметра цикла For добавляем константу, Functions->Programming->Numeric->Numeric constant

5. Добавляем функцию Write File, Functions->Programming->File I/O ->Write Text File

6. Добавляем функцию Format to String, Functions->Programming->String->Format Into String

7. Добавляем функцию Open/Create/Replace File, Functions->Programming->File I/O

8. Добавляем элемент Tab Constant, Functions->Programming->String->Tab constant

9. Добавляем элемент End of Line Constant, Functions->Programming->String->Tab constant

10. Добавляем генератор случайных чисел, Functions->Programming->Numeric->Random number

11. Добавляем элемент Simple Error Handler, Functions->Programming->Dialog & User Interface->Simple Error Handler

12. Расставляем связи как показано на рисунке.

Элементы управления внешним устройством с использованием кластера - student2.ru

  1. Возвращаемся в окно лицевой панели, переходим в режим счета и запускаем программу. Вводим название и сохраняем файл.

Лабораторная работа 11

Наши рекомендации