Язык FBD очень прост в освоении и удобен как для схемотехников, не имеющих специальной подготовки в области программирования, так и для начинающих осваивать мир электроники, автоматики и робототехники. Весь процесс программирования в FBD-системе заключается в соединении линиями связи готовых элементарных блоков. Практически каждый функциональный блок в Horizont-Configurator имеет графическое изображение, принятое при разработке функциональных схем электронных устройств. Блоки представлены в виде прямоугольников, внутри которых имеется обозначение функции, и являют собой операции над входными переменными.
Линии связи, которыми соединяют функциональные блоки, указывают распространение сигнала. Функциональная диаграмма системы управления, построенная в Horizont-Configurator, имеет сходство с электрическими схемами и может быть откомпилирована в файл прошивки для микроконтроллера AVR.
Программирование ПЛК на FBD с нуля. Урок 2. Логические функции
- Порты микроконтроллера (сразу конфигурируются как входы или выходы)
- Логические блоки (НЕ, И, ИЛИ, Исключающее ИЛИ)
- Логические константы
- Триггеры (RS, SR, D, DC, RTRIG, FTRIG)
- Логический генератор
- Генератор импульсов
- Блоки для работы с числами (Арифм. операции, Сравнение и т.д.)
- Таймеры
- Счетчики
- Индикаторы
- Элементы памяти
В меню Файл выберем «Новый проект», дадим ему название и зададим тип микроконтроллера, например, ATMega8. Нажмем несколько раз «применить» в появляющихся окнах.
После проделанных действий у нас появится поле для нашего проекта, а в левой панели необходимые элементы. Теперь перетащим элементы на рабочее поле. Нам понадобятся: Вход PinD1 из раздела «Порт D», Выходы PinC1, PinC2, Pin3, PinC4 из раздела «Порт C», две логические константы из раздела «Логические блоки» и Логическое НЕ из того же раздела. Развернуть элементы зеркально можно в правой панели «Свойства» с помощью изменения свойства «Turn» на «180 град».
Соединим элементы сигнальными линиями. В панели инструментов есть кнопки переключения между режимами выделения и рисования соединительных линий. Если объекты отказываются соединиться, то можно поступить следующим образом: нарисуйте соединительную линию, а затем придвиньте к ней элемент (они соединятся).
Зададим значения для логических констант последовательно выделив их и изменив значение «Value» в правой панели «Свойства» на «true».
Программа FBD для PLC на запуск двигателя звезда-треугольник
Осталось откомпилировать получившуюся функциональную диаграмму. В меню Проект выберем «Конфигурация -> «Создать файл конфигураций», а затем «Конфигурация -> «Собрать проект». После проделанных действий у нас появится файл с прошивкой для микроконтроллера. Перейти в папку с получившимися файлами можно выбрав «Конфигурация -> «Открыть созданный проект».
Среди списка файлов можно без труда найти файл «имя проекта.hex» — это и есть файл прошивки. Загрузить файл в микроконтроллер можно, например, с помощью программы-загрузчика PonyProg2000.
В качестве еще одного тестового примера попробуем сделать систему управления роботом для соревнований Кегельринг из статьи «Робот для соревнований».
Нам понадобятся: Вход PinD1 из раздела «Порт D», Выходы PinC1, PinC2, Pin3, PinC4 из раздела «Порт C», два Логических НЕ и Триггер FTRIG из раздела «Логические блоки», два Таймера с задержкой отключения из раздела «Таймеры/Счетчики» и Счетчик милисекунд из того же раздела.
Счетчик милисекунд необходим для нормальной работы таймеров (он использует внутренний Timer0 микроконтроллера). Установим его «Делитель» на 1 MHz в правой панели. Триггер FTRIG отслеживает падающий фронт логического сигнала.
При изменении состояния входа «FTRIG» с 1 на 0, происходит формирование короткого импульса на его выходе. Данный импульс поступает на входы блоков Таймеров с задержкой отключения, данные блоки формируют необходимые по длительности интервалы высокого уровня на своих выходах.
Сигнал с вывода первого Таймера с задержкой отключения поступает на выходы PinC1 и PinC2, управляющие первым мотором. Блок «Логическое НЕ» необходим для реализации инверсии мотора. Аналогичным образом работает другая цепь Таймера с задержкой отключения, которая управляет вторым мотором. Интервалы для таймеров можно установить изменив свойство «T» в правой панели свойств.
Зададим значение равное 1800 милисекунд для первого таймера и 2400 милисекунд для второго. Таким образом, при изменении состояния входа нашей схемы с 1 на 0, в тот момент, когда робот наткнется на черную ограничительную линию, триггер сформирует короткий импульс, запускающий таймеры. Направление вращения моторов инвертируется и робот начнет двигаться назад. Когда первый таймер перестанет работать, другой таймер еще 600 милисекунд будет обеспечивать вращение второго мотора в обратном направлении и робот повернется на небольшой угол. Когда и второй таймер закончит свою работу, робот снова поедет в прямом направлении.
В завершение краткого рассказа о новой среде разработки, следует добавить, что Horizont-Configurator имеет достаточно хорошую поддержку на youtube в виде целого ряда обучающих роликов. Ссылка на youtube-канал есть на официальном сайте программы.
В текущей версии (0.3.0.60) поддерживаются следующие микроконтроллеры AVR: ATmega128, ATmega1284, ATmega1284P, ATmega128A, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164PA, ATmega165, ATmega165A, ATmega165P, ATmega165PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16HVA2, ATmega16HVB, ATmega16M1, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324PA, ATmega325, ATmega3250, ATmega3250P, ATmega3250PA, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega329, ATmega3290, ATmega3290P, ATmega3290PA, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1, ATmega32HVB, ATmega32M1, ATmega406, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega64, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega645, ATmega6450, ATmega6450A, ATmega645A, ATmega649, ATmega6490, ATmega6490A, ATmega649A, ATmega649P, ATmega64A, ATmega64C1, ATmega64HVE, ATmega64M1, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega8A, ATmega8HVA, ATtiny13, ATtiny13A, ATtiny1634, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny24, ATtiny24A, ATtiny25, ATtiny261, ATtiny261A, ATtiny4313, ATtiny43U, ATtiny44, ATtiny44A, ATtiny45, ATtiny461, ATtiny461A, ATtiny48, ATtiny84, ATtiny84A, ATtiny85, ATtiny861, ATtiny861A, ATtiny87, ATtiny88.
Это оригинальная статья myROBOT.ru Постоянный адрес статьи: http://myrobot.ru/articles/mc_horizont-configurator.php |
Источник: myrobot.ru
FBD В cреде CoDeSys 2.3.9. Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, — презентация
Презентация на тему: » FBD В cреде CoDeSys 2.3.9. Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования,» — Транскрипт:
1 FBD В cреде CoDeSys 2.3.9
2 Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое или и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. 2
3 Язык FBD Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата. 3
4 Пример программы на языке FBD 4
5 Язык FBD Редактор FBD — графический редактор. Он работает со списком цепей, каждая из которых состоит из логических или арифметических выражений, вызовов функций, программ или функциональных блоков, инструкций возврата и перехода. Наиболее важные функции вы можете найти в контекстном меню, которое вызывается правой кнопкой мыши или сочетанием клавиш +. 5
6 Позиция курсора Текстовый курсор может устанавливаться в любую часть FBD цепи, содержащую текст. Выбранный текст выделяется синим и может быть изменен. Текущую позицию графического курсора можно увидеть по прямоугольнику с пунктирной границей. Далее на примере приводится список всех возможных позиций курсора: 1) Любое поле с текстом (обведены черным): 6
7 Позиция курсора 2) Любой вход блока: 3) Любой оператор, функция или функциональный блок. 4) Выход блока, если к нему присоединена переменная или инструкция перехода. 7
8 Позиция курсора 5) Пересечение линий над присваиванием, переходом или возвратом: 6) Место за самым правым объектом схемы («последняя позиция курсора»; используется для выбора всей схемы) 8
9 Графический редактор FBD 9
10 Вход Добавляет вход оператора. Некоторые операторы могут иметь переменное число входов (например, ADD может иметь два и более входа). 10
11 Выход Добавляет новое присваивание к уже существующему. Это позволяет передать одно значение сразу нескольким переменным. 11
12 Элемент C помощью этой команды в схему можно вставлять операторы, функции, функциональные блоки и программы. 12
13 Присваивание Эта команда вставляет инструкцию присваивания в схему. 13
14 Переход Эта команда вставляет инструкцию перехода. 14
15 Возврат Эта команда вставляет инструкцию возврата Return. 15
16 Инверсия C помощью этой команды можно инвертировать входы, выходы, инструкции перехода или возврата. Символ отрицания – небольшая окружность на месте соединения. 16
17 Set/Reset При помощи этой команды вы можете определить Set- и Reset-выходы. Set-выход обозначается буквой S, а Reset-выход – буквой R. 17
18 Редактор FBD в online режиме 18
19 Пример программы на языке FBD 1 19
20 Пример программы на языке FBD 2 20
21 Пример программы на языке FBD 3 21
22 Пример программы на языке FBD 4 22
23 Конец Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям.
Источник: www.myshared.ru