- •Уфимский Государственный Авиационный Технический Университет
- •Содержание
- •1Описание
- •1.1Назначение системы
- •1.2Архитектура системы
- •1.3Базовые концепции
- •1.6Создание списка глобальных переменных
- •1.7Создание новой программы
- •1.8Язык функциональных блоковых диаграмм (fbd)
- •Циклограмма работы контроллера.
- •1.4Этапы разработки
- •1.5Создание нового проекта
- •1.9Конфигурирование контроллера
- •Окно выбора модели контроллера
- •1.10Установка параметров сети системы отладки
- •1.11Компиляция программы
- •1.12Отладка и осциллографирование программы
- •Окно осциллографа
- •2Пример создания программы управления контроллером
- •2.1Создание списка глобальных переменных
- •2.2Разработка и редактирование программы
- •Окно Создание новой программы
- •Программа Генератор
- •2.3Выбор аппаратной модели
- •Выбирается модуль центрального процессора
Циклограмма работы контроллера.
1.4Этапы разработки
Разработка прикладного программного обеспечения для промышленных контроллеров в системе UltraLogic выполняется следующим образом:
создание нового проекта;
заполнение таблиц глобальных переменных;
разработка программ;
конфигурирование контроллера;
компиляция;
загрузка и отладка программы.
1.5Создание нового проекта
Для того, чтобы открыть окно нового проекта, в меню Проект выберите строку Новый. Откроется окно нового проекта с заголовком Без имени. Для изменения имени проекта в меню Проект выберите строку Сохранить как... и, в появившемся окне Сохранить проект, введите новое имя.
1.6Создание списка глобальных переменных
В новом проекте выберете раздел Переменные и откройте лист с закладкой Сетевые. В таблице глобальных сетевых переменных уже существуют две системные переменные ERR_SEG и ERR_OFS. Добавьте в список нужные переменные. Для этого щелкните правой кнопкой мыши в поле листа с закладкой Сетевые, появится всплывающее меню. В меню выберите строку Добавить. Откроется окно Создание переменной. Заполните необходимые поля и отметьте нужные атрибуты переменной.
1.7Создание новой программы
Разработка программ производится в разделе Программы менеджера проекта. Для выбора раздела щелкните левой кнопкой мыши на названии раздела Программы.
Для создания списка программ проекта щелкните правой кнопкой мыши в окне проекта на листе с закладкой Список. Появится всплывающее меню:
Новая Программа создает лист для новой программы; Редактирование редактирование программы; Заголовок редактирование заголовка программы;
Переместить вверх передвинуть программу в списке на позицию вверх;
Переместить вниз передвинуть программу в списке на позицию вниз;
Удалить удалить программу.
Щелкните левой мышью на строке меню Новая программа. Откроется окно Создание новой программы. Заполните необходимые поля. После этого в разделе проекта Программы появится новый лист с закладкой название, а на листе с закладкой Список - название и комментарий, только что введенной программы.
При открывании окна с редактируемой программой автоматически вызывается редактор языка FBD.
1.8Язык функциональных блоковых диаграмм (fbd)
Программа на языке FBD может содержать следующие базовые типы объектов:
функциональные блоки и связи;
переходы и метки;
комментарии.
Каждый функциональный блок представляет собой прямоугольник, внутри которого имеется обозначение функции, выполняемой блоком.
Выход функционального блока может быть соединен связью с другими блоками. Каждая связь является переменной. Один или несколько функциональных блоков, соединенных связями между собой, образуют программу на языке FBD. Язык FBD описывает закон преобразования переменных программы.
Имеются следующие формальные правила языка FBD:
функциональные блоки могут располагаться произвольно в поле программы;
не может быть свободных (несоединенных) входов и выходов функционального блока;
любая связь имеет имя и тип;
входы и выходы функциональных блоков, присоединенные к связям, имеющим одинаковые имена, считаются соединенными;
очередность выполнения блоков в программе: сверху вниз, слева направо.
Каждый функциональный блок имеет условную точку привязки, которая определяет очередность выполнения блока в программе. Точкой привязки является левый верхний угол блока.
Связям, присоединяемым к входам и выходам функциональных блоков, ставится в соответствие переменные и константы. Установление соответствия между связью и именем переменной выполняется в процессе присвоения связям символьных имен.
На входе FBD блока может быть
константное выражение;
внутренняя или входная переменная;
выходная переменная.
На выходе FBD блока может быть любая внутренняя или выходная переменная.
Метки и переходы можно использовать для управления процессом выполнения программы. Для завершения программы существует оператор RETURN.
Комментарии - это произвольный текст в поле программы. В одной строке комментария может содержаться до 255 символов.
Для написания
программы используется панель инструментов
редактора FBD. Кнопка вызова панели
инструментов
Tools находится в окне главного меню
системы. Далее показан вид этой панели:
Панель инструментов представляет из себя набор кнопок с условным изображением тех или иных операций редактора. Набор кнопок является многоуровневым, т.е. большинство кнопок раскрывают набор кнопок следующего уровня.
Базовые функции языка FBD разделены на следующие группы:
логические функции;
функции сравнения;
арифметические функции;
функции управления программой и таймерами.
Логические функции в качестве операндов используют переменные типа Boolean. Любой вход и выход логических функций может быть проинвертирован. После инициализации программы, переменные на входах и выходах всех функциональных блоков логических функций принимают значение FALSE, кроме тех глобальных переменных, значения которых при инициализации явно объявлены как TRUE. Кнопка вызова логических функций на панели инструментов вызывает следующее меню:
Все функции сравнения в качестве операндов могут использовать переменные типа INTEGER, FLOAT, TIMER. Входные переменные каждой отдельной функции должны иметь одинаковый тип. На выходах всех функциональных блоков сравнения по результату операции формируются переменные типа BOOLEAN. После инициализации программы эти переменные принимают значение FALSE, кроме тех глобальных переменных, значение которых при инициализации явно объявлены как TRUE. Кнопка вызова функций сравнения на панели инструментов вызывает следующее меню:
Все арифметические функции в качестве операндов могут использовать переменные типа INTEGER, FLOAT, TIMER. Входные переменные каждой отдельной функции должны иметь одинаковый тип. После инициализации программы, переменные на выходах всех арифметических функциональных блоков принимают значение 0, кроме тех глобальных переменных, значение которых при инициализации явно объявлены иначе. Кнопка вызова арифметических функций на панели инструментов вызывает следующее меню:
Функции управления программой и таймерами
Функции управления программой в качестве входных операндов могут использовать переменные типа BOOLEAN.
GOTO переход к метке
Prog1 - метка
Оператор GOTO может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, будет осуществлен переход к указанной метке. Если оператор GOTO не соединен с переменной типа BOOLEAN, осуществляется безусловный переход к метке.
RETURN выход из программы
Завершает текущую программу и передает управление следующей за ней программе. Для условного завершения программы оператор RETURN может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, программа завершится. В случае, если оператор RETURN встретился внутри библиотечного блока, то управление перейдет к следующему блоку, но не к следующей программе.
TSTART пуск таймера
tm_var - пеpеменная таймеpного типа
Осуществляется инициализация (сброс) и начинается инкрементирование указанной таймерной переменной с периодом 0.01 сек. до момента выполнения команды TSTOP.
Оператор TSTART может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, оператор будет выполнен.
TSTOP останов таймера
tm_var пеpеменная таймеpного типа
Останавливает инкрементирование указанной таймерной переменной, состояние переменной сохраняется. Оператор TSTOP может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, оператор будет выполнен.
GSTART Старт программы
name_prog имя любой программы проекта.
Включает любую программу в цикл контроллера. Начиная с этого момента программа исполняется в каждом цикле контроллера. Оператор GSTART может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, оператор будет выполнен.
GSTOP Останов программы
name_prog имя любой программы проекта.
Исключает любую программу из цикла контроллера. Оператор GSTOP может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, оператор будет выполнен.
GCALL выполнить программу
name_prog имя любой программы проекта, которая должна быть выполнена. Оператор GCALL может быть соединен связью с переменной типа BOOLEAN. Если данная переменная примет логическое значение TRUE, оператор будет выполнен.
EXT выполнить внешнюю процедуру с передачей параметров
EXT - внешняя процедура в виде объектного модуля
Parametr - переменная любого типа, являющаяся параметром для функции EXT.
Кнопка вызова функций управления программой на панели инструментов вызывает следующее меню:
Кнопка панели инструментов
вызывает режим рисования связей. Эта
команда используется для присоединения
связей ко входам и выходам
функциональных блоков. Фактически связь
является графическим изображением
переменной, и для функциональных блоков
ее наличие является обязательным
условием. Соединение изображается
отрезками, концы которых фиксируются
однократным нажатием левой кнопки мыши.
Соединительная линия будет продолжаться
до тех пор, пока не нажмете правую кнопку
мыши.
Кнопка NET панели инструментов
вызывает режим именования связей. Установите курсор на какой либо связи и нажмите левую кнопку мыши. Выбранная связь будет выделена белым цветом и откроется окно ввода имени.
Вы можете ввести имя связи двумя способами:
ввести имя с клавиатуры;
перенести (мышкой) имя соответствующей переменной из таблиц глобальных переменных.
