Смекни!
smekni.com

Среда разработки и платформа для выполнения программ LabVIEW (стр. 2 из 3)

Рис. 7. Линейка инструментов окна редактирования диаграмм


· 1 - нажав эту кнопку, и запустив программу на выполнение, Вы сможете отлаживать программу и следить за следованием данных между объектами;

· 2 – включение или отключение сохранения значений связей;

· 3 - нажатие на эту кнопку позволяет Вам в процессе отладки "входить" в структуры, например, в циклы и подпрограммы;

· 4 - нажав эту кнопку, Вы активизируете пошаговый режим отладки, т.е. данные будут передаваться от иконки к иконке, останавливая программу, подсвечивая при этом текущий элемент, и ожидать следующего шага – нажатия на эту же кнопку;

· 5 - нажатие на эту кнопку позволяет Вам в процессе отладки "выходить" из структуры, например, из цикла, и перейти к следующему "узлу".

Выпадающее меню. Установив элемент управления на интерфейсную панель или иконку в окне редактирования диаграмм, мы всегда можем, например, изменить свойства этого объекта. Для этого нужно подвести указатель мыши к желаемому объекту и нажать правую кнопку мыши. В результате появится выпадающее меню, позволяющее редактировать объект.

Один из основных служебных компонентов, который позволяет создавать, модифицировать и отлаживать виртуальные инструменты – это Панель Инструментов (Tools), рис. 8.

Рис. 8. Панель инструментов


Вызывается из основного меню View > Tools Palette.

Operate Value - управление объектами, например, для перемещения ползунка или поворота ручки;

Position/Size/Select - установка, "перетягивание", перемещение, изменение размеров объекта – стрелочка меняет свой внешний вид, когда доступна опция изменения размеров объекта;

Edit text- инструмент для ввода текста, как в окне интерфейсной части программы, так и в окне редактирования диаграмм;

Connect Wire - используется для связи (соединения) объектов;

Object Shortcut Menu - инструмент выполняет аналогичную функцию, что и нажатие на правую кнопку мыши на желаемом объекте, т.е. служит для вызова выпадающего меню;

Scroll Window – перемещение (прокрутка) содержимого окна одновременно;

Set/Clear Breakpoint - установка точек (меток) останова программы при ее отладке;

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

Get Color - копирование цвета в палитру - необходимо подвести указатель и нажать левую кнопку мыши;

Set Color - установка цвета объекта и его фона.

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

Используя Панель Управления, Вы можете устанавливать (добавлять) элементы управления и индикаторы. Каждая опция иконизированного меню

содержит подменю, в котором находятся соответствующие объекты. Вызывается из основного меню View>Controls Palette, рис. 9.

Рис. 9. Панель управления

Элементы Функциональной Панели используются для создания диаграмм, т.е. алгоритма работы VI. Функциональная панель содержит необходимые функции для работы с различными типами и структурами данных, и позволяет реализовывать алгоритмы любой сложности от простых арифметических вычислений до функционально сложных, таких, например, как спектральный анализ. Вызывается из основного меню View>Show

Functions Palette, рис. 10.

Рис. 10. Функциональная панель

Построение СМО в LabVIEW

Создание программы начните с окна редактирования диаграмм. Создайте прибор для инициализации очереди. Для этого на функциональной панели необходимо выбрать Programming>Synchronization>Queue Operation>Obtain Queue. Затем из Tools Palette выберите Connect Wire (катушка) и кликните правой кнопкой мыши на верхний вход прибора (max queue size), далее в появившемся контекстном меню выберите пункт create>control. Этот управляющий элемент также появится на интерфейсной панели, с помощью него будет задаваться количество пациентов, поступающих в поликлинику в день/час. Необходимо задать имя очереди. Для этого кликните правой кнопкой мыши на вход прибора name, затем выберите пункт создания константы create>constant, и в появившемся окошке введите имя очереди, например, 1. Также необходимо задать тип данных элемента - тип данных, которые должна содержать очередь. Для этого выберите Programming>Numeric>Numeric Constant (по умолчанию стоит «0»)и подключите его к входу element data type. У Вас должен получиться прибор, как показан на рис. 11.

Рис. 11. Инициализация очереди

Очередь инициализирована. Далее необходимо определить порядок становления пациентов в очередь. Установите прибор Programming>Synchronization>Queue Operation>Enqueue Element и с помощью катушки соедините выходы queue out и error out из прибора Obtain queue к соответствующим входам прибора Enqueue Element. Так как пациент не один, необходима циклическая работа программы. Выберите из функциональной панели programming>structures>For Loop и выделите с помощью левой кнопки мыши прибор Enqueue Element. Чтобы пациенты становились в очередь по одному, перетяните «увеличение на 1» Programming>Numeric>increment. К входу x подключите значок «итерация цикла», а выход (x+1) пиктограммы подключите к входу Element прибора Enqueue Element. Пусть каждый пациент приходит в поликлинику через заданное время, например через 1 секунду. Для этого установите в цикл задержку. Выберите Programming>Timing>Wait (ms) и перетянитеданную иконку в цикл. Создайте для нее константу, соответствующую этой задержке. Для этого подведите указатель в виде катушки к левой части иконки, нажмите правую кнопку мыши и выберете пункт создания константы Create>Constant. Чтобы количество итераций цикла было равно количеству пациентов, прибывающих в поликлинику, соедините выход управляющего элемента Numeric Control с пиктограммой N, как показано на рис. 12.

Рис. 12. Добавление элементов в очередь

В поликлинике имеется регистратура, через которую проходит каждый пациент. Чтобы установить регистратуру, для начала установите цикл While Loop, programming>structures>While Loop. Чтобы прочитывать элементы из очереди, то есть обслуживать пациентов, поместите в цикл While Loop прибор Dequeue Element, Programming>Synchronization>Queue Operation>Dequeue Element. Чтобы видеть, сколько обслужено пациентов, создайте соответствующий индикатор для прибора Dequeue Element – правой кнопкой мыши щелкните на выходе приборе Element и выберите пункт constant>indicator. С помощью инструмента Edit Text из панели инструментов поменяйте имя индикатора на «Обслужено пациентов».Установите время обслуживания пациентов с помощью прибора задержки Wait (ms) и присваивания этому прибору константы с нужным временем. Нажмите правой кнопкой мыши на иконку условия выхода из цикла (красная пиктограмма в нижнем правом углу цикла) и в выпадающем меню выберите пункт создания константы, по умолчанию стоит F-«false», то есть цикл будет работать без остановки. Соедините только что созданный прибор с ранее созданной очередью, как показано на рис. 13.


Рис. 13. Чтение из очереди

Чтобы видеть, сколько пациентов в данный момент находятся в очереди, используйте прибор Get Queue Status, Programming>Synchronization>Queue Operation>Get Queue Status. Поместите его в цикл While Loop и соедините с очередью. Кликните правой кнопкой мыши на левый вход Return Elements? (F) прибора Get Queue Status и выберите пункт Create>Constant. Return Elements? – отображает, возвращены ли элементы в очередь. По умолчанию установлено значение false – функция не будет возвращать элементы в очередь. Чтобы поменять значение на trough, выберите инструмент Operate Value из панели инструментови щелкните левой кнопкой мыши на соответствующей пиктограмме. Для выходов Elements и # Elements in queue, которые находятся снизу уприбора Get Queue Status, создайте индикаторы, как показано на рис. 14.


Рис. 14. Количество элементов в очереди

После того, как пациент обслужился в регистратуре (получил номерок), он отправляется к врачу. Соответственно, к врачу формируется новая очередь. Аналогично первой, создайте вторую очередь и дайте ей имя, например, 2. Поместите прибор Enqueue Element в цикл While Loop с Dequeue Element. Подключите выход Element прибора Dequeue Element к входу Element прибора Enqueue Element – то есть пациенты, обслуженные регистратурой, становятся в очередь к врачу. Создайте цикл с Dequeue Element, такой же, как для первой очереди и подключите его ко второй очереди. Чтобы видеть, сколько пациентов находится в данный момент в очереди к врачу, создайте точно такой же цикл с Get Queue Status, как и в первой очереди, и подключите его ко второй очереди.