Общие сведения о языке FBD — Документация Beremiz
FBD (Function Block Diagram) – это графический язык программирования высокого уровня, обеспечивающий управление потока данных всех типов. Позволяет использовать мощные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечательно подходит для небольших приложений и удобен для реализации сложных вещей подобно ПИД регуляторам, массивам и т. д. Данный язык может использовать большую библиотеку блоков, описание которых приведено в приложении 2. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.
Согласно IEC 611313, основными элементами языка FBD являются: переменные, функции, функциональные блоки и соединения.
Переменные бывают входные, выходные и входные/выходные. На рис. 1 показаны: входная переменная – «in_var», выходная переменная – «out_var» и входная/выходная переменная – «in_out_var».
Рис. 1 – Изображение переменной в языке FBD
Графическое изображение функции приведено на рис. 2. С левой стороны располагаются входы (IN1 и IN2), с правой стороны выходы (OUT).
Рис. 2 – Изображение функции в языке FBD
Аналогично, изображение функционального блока, приведённое на рис. 3, имеет с левой стороны входы (S1 и R), с правой стороны выход (Q1).
Рис. 3 – Изображение функционального блока в языке FBD
Соответственно, переменные соединяются с входными и выходными параметрами функций и функциональных блоков. Входные переменные могут быть соединены только с входными параметрами функции или функционального блока, выходные переменные – только с выходными параметрами функции или функционального блока, входные/выходные переменные – как входами, так и с выходами функции или функционального блока. Также выходной параметр одной функции или функционального блока может быть напрямую соединён с входным параметром другого.
Рис. 4 – Пример соединения переменных, функций и функциональных блоков
Все функциональные блоки могут быть вызваны с дополнительными (необязательными) формальными параметрами: EN (входом) и ENO (выходом). Пример такого функционального блока приведен на рис. 5.
Рис. 5 – Изображение элементарного функционального блока с параметрами EN/ENO
Если функциональный блок вызывается с параметрами EN/ENO и при этом значение EN равно нулю, то алгоритмы, определяемые в функциональном блоке, не будут выполняться. В этом случае значение ENO автоматически устанавливается равным 0. Если же значение EN равно 1, то алгоритмы, определяемые функциональным блоком, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0. Поведение функционального блока одинаково как в случае вызова функционального блока с EN = 1, так и при вызове без параметров EN/ENO.
Для более компактного соединения входов и выходов различных функций и функциональных блоков используются элементы «Соединение», показанные на рис. 6:
Рис. 6 – Изображение соединений в языке FBD
Они бывают двух видов: входное соединение и выходное выходные соединение. Основная задача соединений – передать значение из одного выхода на другой вход без прямого соединения выхода и входа. На рис. 5.7 показан пример, в котором выходное значение OUT функции BOOL_TO_INT передаётся на вход IN2 функции ADD:
Рис. 7 – Пример использования соединения на FBD диаграмме
На рис. 8 приведена FBD диаграмма, состоящая из следующих функциональных блоков: SR0, AND, TP0.
Рис. 8 – пример FBD диаграммы
Функциональный блок SR0 представляет собой Бистабильный SR-триггер. У него имеются входы S1, R1 и выход Q1, а так же дополнительный вход EN и выход ENO, позволяющие включать и выключать выполнение SR0. Выход Q1 с помощью соединён с входом IN1 блока AND, представляющий собой «Логическое И». Вход IN2 типа BOOL соединён с литералом «BOOL#1», который всегда положительный. Выход OUT блока AND соединён с входом IN функционального блока TP0, представляющий собой повторитель импульсов. Вход PT типа TIME, соединён с литералом «T#5s», который задаёт значение 5 секунд.
Если после запуска выполнения данного функционального блока enabled равно True и переменная S1_IN тоже True, функциональный блок SR0 начинает выполняться. На выходе OUT функционального блока AND будет значение True как только Q1 у SR0 будет равен True. Следовательно, как только OUT становится True вход IN функционального блока TP0 принимает тоже True и начинается отсчёт таймера ET (см. рис. 9).
Рис. 9 – Выполнение FBD диаграммы
Пока данный таймер не достигнет значения PT выход Q у функционального блока TP0 будет равен True. При достижении таймером ET значения PT, т.е. через 5 секунд выход Q становится False (см. рис. 10).
Рис. 10 – Выполнение FBD диаграммы
Как только вход IN функционального блока TP0 становится значения FALSE, счётчик ET сбрасывается в T#0s.
Программирование FBD — Национальная сборная Worldskills Россия
“
Иногда нужно, чтобы система управления тем или иным оборудованием была автоматизированной, и тогда на помощь приходят программируемые интеллектуальные реле. Они позволяют значительно упростить схемы управления электрооборудованием, повысить их надежность и гибкость. Как правило, для программирования интеллектуального реле используется специализированное ПО: LD, FBD и др. В этом уроке мы подробно разберем программирование FBD.
Глоссарий
Для успешного освоения материала рекомендуем вам изучить следующие понятия:
Устройство для защиты электрических цепей, электрооборудования, машин и других агрегатов от перегрузок. Автоматически отключает защищаемую электрическую цепь при ненормальных режимах работы
Раздел математики, изучающий логические значения высказываний (истинность или ложность) и логические операции над ними
Устройство обработки цифровой и аналоговой информации
Таблица, описывающая значения логической функции при всех возможных значениях ее аргументов
Видеолекция
Конспект
Области применения интеллектуального реле
Программируемые, или интеллектуальные, реле — программный логический контроллер (ПЛК) простого типа. Устройство используется при создании систем управления с логической обработкой информации.
Принцип действия этого устройства прост: человеком в него закладывается программа, которая контролирует все входы, на которые могут подаваться сигналы с датчиков, переключателей и кнопок, и выходы, т. е. контакты на исполнительные механизмы. Согласно заложенному алгоритму интеллектуальное реле может заменять практически любые по сложности системы автоматики.
Программируемые логические реле применяются для автоматизации технологических процессов и производств, включения электроприборов в быту и построения автоматизированных систем:
- управления транспортерами,
- управления насосами,
- приточно-вытяжной вентиляции,
- подготовки пара и сбора конденсата,
- распределения электроэнергии и управления освещением,
- сбора и предварительной обработки сигналов,
- управления компрессорами.
Составляющие интеллектуального реле
- Дискретный вход, на который подается сигнал уровня 24 В или 220 В.
- Микропроцессор.
- Постоянное и оперативное запоминающее устройство.
- Таймер реального времени.
- Дискретный выход, зачастую выполненный как «сухой контакт» реле.
Схема подключения интеллектуального реле
Язык релейно-контактных схем, или релейных диаграмм LD (Ladder Diagram), — графический язык, реализующий структуры электрических цепей.
Графически LD-диаграмма представлена в виде двух вертикальных шин питания. Между ними расположены цепи, образованные соединением контактов. Контактом может выступать вход программируемого реле или некоторая промежуточная переменная. Нагрузкой каждой цепи служит реле. Каждое реле имеет контакты, которые можно использовать в других цепях.
Язык FBD (Function Block Diagram) — графический язык программирования высокого уровня, обеспечивающий управление потоком данных всех типов.
Позволяет использовать мощные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечательно подходит для небольших приложений и удобен для реализации сложных вещей подобно ПИД-регуляторам, массивам данных и т. д. Данный язык может использовать большую библиотеку блоков.
FBD заимствует символику булевой алгебры и является более эффективным для представления структурной информации, чем язык релейно-контактных схем.
Элементы булевой алгебры и их таблицы истинности
Элемент «ИЛИ»
Операция логического сложения, при которой каждым двум высказываниям ставится в соответствие новое высказывание, являющееся ложным тогда и только тогда, когда оба исходных высказывания ложны.
Элемент «И»
Операция логического умножения, ставящая в соответствие каждым двум высказываниям новое высказывание, являющееся истинным тогда и только тогда, когда оба исходных высказывания истинны.
Инверсия
Операция логического отрицания, которая каждому высказыванию ставит в соответствие новое высказывание, значение которого противоположно исходному.
Триггеры
Триггер является спусковым устройством, на выходах которого под воздействием управляющего сигнала возникают скачки напряжения от одного стационарного уровня до другого.
RS-триггер (от англ. reset — восстанавливать и set — устанавливать)
RS-триггер имеет два входа: S — единичный и R — нулевой.
Различают RS-триггер с приоритетом по R: при подаче на вход S и на вход R логической единицы на выходе будет ноль.
И SR-триггер с приоритетом по S: при подаче на вход R и на вход S логической единицы на выходе будет единица.
T-триггер (от англ. toggle — кувыркаться)
При подаче на его вход логического нуля он оставляет на выходе предыдущее состояние. При подаче на вход единицы на выходе состояние поменяется на противоположное.
Триггер D (от англ. delay — задержка)
Асинхронный.
Cинхронный.
Давайте перейдем к составлению программы на языке FBD для логического реле.
Составление программы управления трехфазным двигателем на языке FBD
Установка элементов
1. Запускаем программу ONI PLR Studio и создаем новую рабочую область.
2. Выбираем оборудование, на которое будем писать программу.
3. Создаем три цифровых входа: пуск, стоп и реверс. Таким же образом расставляем два цифровых выхода: первый отвечает за запуск двигателя в прямом направлении, а второй — за запуск двигателя в реверсивном направлении.
4. Для удобства задаем им имена. Для этого нажимаем на значок входа/выхода, во вкладке «Комментарии» вводим имя и нажимаем на кнопку «ОК».
5. Для запоминания сигнала устанавливаем RS-триггеры. Так как направлений движения двигателей два, то и триггеров тоже должно быть два.
Важно
У данного элемента имеется один выход и два входа: S — запоминание сигнала, R — сброс сигнала
Подача сигналов и организация взаимоблокировки
1. Организовываем взаимоблокировку, которая будет защищать от встречного включения контакторов. Для этого устанавливаем два логических элемента под названием «И».
2. Создаем соединение. С кнопки «Пуск» подаем сигнал на элемент «И», а с него — на S-контакт RS‑триггера. Также подаем сигнал с выхода RS‑триггера на KM1. То же самое повторяем для элемента «Реверс» и выхода КМ2.
3. Организовываем сброс RS-триггеров, чтобы двигатель остановился. Для этого с элемента «Стоп» подаем сигнал на R‑контакты RS‑триггеров.
4. Используем элемент «Инверсия» для создания связи между элементами «И» и RS-триггерами. Дважды нажимаем на вторую лапку элемента «И», тем самым инвестируя его вход. Теперь, если сюда придет 1, она преобразуется в 0 и наоборот.
5. Подаем сигналы от инвестированных входов элементов «И» к выходам RS-триггеров. В итоге, когда с выхода второго RS-триггера на первый элемент «И» придет 0, тогда поступит сигнал на первый RS-триггер. И наоборот. Поэтому двигатель сможет работать одновременно только в одном направлении. У нас получается такая схема.
Проверка правильности построения схемы
1. Через боковую панель либо нажатием на F3 переходим в симулятор.
2. Имитируем нажатие кнопки «Пуск». Для этого нажимаем на соответствующий элемент и видим, что на выходе RS-триггера появился сигнал, который идет на KM1. При этом, если нажать на элемент, отвечающий за кнопку «Реверс», он не запустится, т. к. сейчас двигатель работает в прямом направлении.
3. Сбрасываем сигнал нажатием на элемент, отвечающий за кнопку «Стоп».
4. Повторяем аналогичную процедуру с элементом, отвечающим за кнопку «Реверс». Если все работает как надо, значит, схема построена верно.
Результатом нашего программирования стала схема пуска трехфазного двигателя, которая реализует функции пуска, остановки, реверса и защиты от одновременного включения прямого пуска и реверса, что может привести к межфазному замыканию.
“
В этом уроке мы познакомились с программируемыми логическими реле, разобрали их структуру, рассмотрели основные схемные решения при их подключении, познакомились с основными языками программирования интеллектуального реле и написали программу управления двигателем. А сейчас выполните небольшое задание, чтобы проверить свои знания.
Интерактивное задание
Для закрепления полученных знаний пройдите тест
Стартуем! |
От аппарата защиты
От блока питания
От коммутационного аппарата
От силовой розетки
Дальше |
Проверить |
Узнать результат |
Элемента «ИЛИ»
Элемента «И»
Инверсии
Элемента «НЕ»
Дальше |
Проверить |
Узнать результат |
Элемент «ИЛИ»
Элемент «И»
Инверсию
Элемент «И» и инверсию
Дальше |
Проверить |
Узнать результат |
К сожалению, вы ответили неправильно на все вопросы
Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз |
К сожалению, вы ответили неправильно на большинство вопросов
Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз |
Неплохо!
Но можно лучше. Прочитайте лекцию и посмотрите видео еще раз
Пройти еще раз |
Отлично!
Вы отлично справились. Теперь можете ознакомиться с другими компетенциями
Пройти еще раз |
Введение в функциональную блок-схему (FBD)
Знания
Знайте все о FBD
Что такое функциональная блок-схема?
Функциональная блок-схема (сокращенно FBD) представляет собой графическое представление функционального процесса с помощью блоков и диаграмм, которое читателю легче понять и интерпретировать. FBD помогает нам определить функцию между выходными и входными переменными с помощью набора элементарных блоков и диаграмм, которые связаны стрелками, известными как «соединения».
Источник: www.esa.int
Функциональная блок-схема может помочь нам создать отношения между одной или несколькими переменными (как входными, так и выходными), чтобы установить наше понимание функциональных процессов, выровненных в системе.
Где используются функциональные блок-схемы?
Эти диаграммы помогают нам понять функции и отношения между двумя или более переменными, широко используемыми в программной инженерии, системной инженерии и графическом языке программирования. Для инженеров-программистов и программистов FBD является важным инструментом, который помогает им понять и создать корреляции между двумя или более переменными, соединяя их стрелкой соединения.
Источник: www.engineersgarage.com
История и развитие FBD
Функциональная блок-схема также известна как функциональная блок-схема. Как следует из названия, это пошаговое представление функционального потока, которое помогает упростить рабочие процессы и лучше понять их. Идея была предложена Фрэнком Гилбретом в 1921 году, ему предшествовали другие инженеры и ученые, которые разработали многоуровневую модель процесса для упрощения множества функций и взаимосвязей между ними.
Последняя функциональная блок-схема продолжала развиваться в 1960-х годах, пока НАСА не вмешалось и не использовало эту концепцию для визуализации и представления временной последовательности единиц в космических системах.
Источник: www.electronicproducts.com
И теперь функциональная блок-схема занимает выгодное положение и широко используется в различных областях Редизайн бизнес-процессов , Управление бизнес-процессами , Компьютерная системная инженерия и Системная инженерия .
Основы функциональной блок-схемы
Хотя функциональная блок-схема упрощает рабочие процессы, разбивает огромный процесс на более мелкие элементы и помогает нам понять взаимосвязь между двумя или более переменными, все же может быть сложнее понять и интерпретировать модель. Таким образом, для вашего удобства и простоты мы упомянули основы FBD.
Все функции помещены в функциональный блок , который показан рамкой. Квадратный прямоугольник — это символ функции, как показано ниже.
Источник: www.plcacademy.com
Функциональный блок может иметь два или более двух входов и выходов. Все эти входы и выходы могут быть соединены с другими входами и выходами другого функционального блока, таким образом устанавливая связь между выходом одной функции и входом другой, как показано на схеме ниже.
Функциональные блоки стандартны, но могут быть изменены. Поскольку вы будете использовать один и тот же функциональный блок в своей программе ПЛК, вы можете использовать функциональный блок, относящийся к одной функции, и использовать его несколько раз в других случаях.
EdrawMax для настольных ПК
Создайте более 280 типов диаграмм
Windows, Mac, Linux (работает во всех средах)
Профессиональные встроенные ресурсы и шаблоны
Локальное программное обеспечение для бизнеса
Безопасность данных корпоративного уровня
EdrawMax Онлайн
Создавайте более 280 типов диаграмм онлайн
Доступ к диаграммам в любом месте и в любое время
Сообщество шаблонов
Управление командой и сотрудничество
Интеграция личного облака и Dropbox
турецких лир ОНЛАЙН
Типы функциональных блоков
Существует несколько типов функциональных блоков. Мы упомянули все виды с кратким описанием каждого блока.
Функциональные блоки битовой логики
Основой функционального блока является «логика», которая, как известно, представляет собой простейшую форму алгоритмов. В логике есть два разных шлюзовых механизма или логики: логика И и логика ИЛИ.
Логическая операция И
Если оба входа истинны, выход также станет истинным.
ИЛИ Логическая операция
Если один из входных данных истинен, выход также станет истинным.
Бистабильные функциональные блоки
Известно, что бистабильные функциональные блоки представляют собой простейшую форму памяти. Вам решать, хотите ли вы сбросить или установить выход. Выход выучит и запомнит последнюю точку заданного входа.
Функциональный блок установки/сброса (установка доминирующего)
Функциональный блок сброса/установки (доминантный сброс)
Обнаружение края
Следующий тип функционального блока — обнаружение краев. Этот тип функционального блока очень полезен и широко используется в программировании ПЛК и электронике. Он получил свое название, потому что вход обнаруживает прогрессивный фронт, который будет установлен на выходе. И он обнаруживается, потому что на выходе появляется импульс при обнаружении положительного фронта.
Функциональный блок R_TRIG для обнаружения сигналов переднего фронта
Функциональный блок F_TRIG для обнаружения сигналов заднего фронта
Функциональные блоки таймера
Они также широко используются в разработке ПЛК. Существует три типа функциональных блоков таймера. Эти типы блоков включают таймер задержки включения, таймер задержки выключения и импульсный таймер. Вам нужно будет использовать только один таймер и вывести все таймеры из этого таймера.
Функциональный блок импульсного таймера (TP)
Функциональный блок таймера задержки включения (TON)
Функциональный блок таймера задержки выключения (TOF)
Функциональные блоки счетчика
Факт о функциональном блоке счетчика заключается в том, что он принимает входы и выходы и содержит другие типы данных. Существует три типа функциональных блоков счетчика. Эти типы включают блоки Up Counter, Down Counter и Up-Down Counter.
Функциональный блок прямого счетчика (CTU)
Функциональный блок обратного счетчика (CTD)
Функциональный блок счетчиков вверх-вниз (CTUD)
Пример бесплатной функциональной блок-схемы
Если вы хотите использовать эти шаблоны, вы можете нажать, чтобы загрузить их. В то время как файл eddx необходимо открыть в EdrawMax. Если у вас еще нет EdrawMax, вы можете скачать EdrawMax для бесплатно !
Функциональная блок-схема системы
Как показано на схеме, центральный процессор выполняет функции, получает входные данные от пользователя и преобразует их в выходные данные для отображения пользователю через устройства вывода. Это функциональная блок-схема типичного процесса, происходящего в компьютерной системе. Инженеры компьютерных систем по-разному проиллюстрировали это, используя различные виды функциональных блоков.
Схема основного функционального блока
Функциональная блок-схема (FBD) — это графический язык для разработки программируемых логических контроллеров, которые могут описывать функциональные входные и выходные переменные. Основная функция на блок-схеме описывается как набор элементарных блоков, как показано в шаблоне изображения ниже. При этом входы и выходы блоков соединяются соединительными линиями или перемычками. Основные функции представлены на изображении блоками, соединенными линиями, которые показывают отношения между блоками.
Нажмите, чтобы загрузить шаблон схемы основного функционального блока >>
В то время как файл eddx необходимо открыть в EdrawMax.
Функциональная блок-схема
Нажмите, чтобы загрузить шаблон функциональной блок-схемы >>
В то время как файл eddx необходимо открыть в EdrawMax.
Функциональная блок-схема
Блок-схема функционального потока представляет собой многоуровневую, упорядоченную во времени пошаговую блок-схему функционального потока системы (FFBD). В этом смысле термин «функциональный» отличается от его использования в функциональном программировании или математике, где термины «функциональный» и «поток» могут привести к путанице. Порядок, в котором выполняются действия, называется «функциональным потоком» со стрелками «потока», указывающими на зависимость от успеха предыдущих процессов.
Нажмите, чтобы загрузить шаблон функциональной блок-схемы >>
В то время как файл eddx необходимо открыть в EdrawMax.
Как сделать функциональную блок-схему?
Создание FBD — непростая задача. Тем не менее, мы упомянули советы и методы, которые вы можете использовать для создания своего FBD.
Шаг 01
Прежде всего, вы можете начать с автоматизации, такой как портал TIA или Codesys. Затем настоятельно рекомендуется для людей, которые хотят создавать свои FBD программистами.
Шаг 02
Вы можете использовать программирование функциональных блок-схем, чтобы начать создавать простые, но легкие программы для ПЛК.
Шаг 03
В дополнение к этому вы можете использовать несколько стандартных блоков для различных функций, чтобы придать вашему FBD общий вид.
Завершение статьи!
Поскольку функциональная блок-схема является очень мощным инструментом, который широко используется в различных областях компьютерного проектирования, системной инженерии и реинжиниринга бизнес-процессов, поэтому создание функциональной блок-схемы для упрощения процессов и понимания взаимосвязи между двумя или более двух входных и выходных переменных может быть немного сложно.
В Интернете доступны различные интеллектуальные инструменты, которые могут помочь вам создать функциональную блок-схему. Среди многих инструментов и программного обеспечения EdrawMax возглавляет список, когда речь идет о рисовании 2D-диаграмм. Это может помочь вам сделать ваши FBD с различными функциональными блоками с простым и удобным интерфейсом. Кроме того, EdrawMax имеет различные встроенные инструменты, которые можно использовать для рисования различных типов FBD.
Универсальное программное обеспечение для построения диаграмм
Легко создавайте более 280 типов диаграмм
Легко начинайте строить диаграммы с помощью различных шаблонов и символов
- Превосходная совместимость файлов: Импорт и экспорт чертежей в файлы различных форматов, например Visio
- Кроссплатформенная поддержка (Windows, Mac, Linux, Web)
Скачать бесплатно
Безопасность проверена | Переключиться на Mac >>
ПОПРОБУЙТЕ БЕСПЛАТНО
Безопасность подтверждена | Перейти на Linux >>
ПОПРОБУЙТЕ БЕСПЛАТНО
Безопасность подтверждена | Переключиться на Windows >>
Статьи по теме
Знакомство с картами Временная диаграмма UML Диаграмма взаимодействия UML Карта пути клиента Что такое Канбан Карта сочувствия
Введение в программирование функциональных блоков в RSLogix 5000
Введение в программирование функциональных блоковОдним из наиболее часто используемых языков программирования ПЛК является диаграмма функциональных блоков или FBD. Хотя этот язык редко используется для всей системы, он имеет большой смысл в тех областях, где имеет место непрерывный поток процессов или если есть потребность в сложных последовательностях инструкций, которые могут быть гораздо проще размещены в функциональных блоках, чем в релейной логике; мы увидим пример таких реализаций в этом уроке.
Программирование функциональных блоков — это язык, описанный в стандарте IEC 61131-3. Это визуальный язык программирования, который связывает различные блоки инструкций вместе и позволяет им выполнять процесс, основанный на условной логике.
Преимущество функциональных блок-схем заключается в том, что их очень легко отслеживать и понимать. Как правило, они имитируют определенный процесс, что облегчает понимание тем, кто не имеет опыта программирования ПЛК.
Цель этого руководства — познакомить вас с программированием диаграмм функциональных блоков в RSLogix 5000 и предоставить несколько примеров приложений, иллюстрирующих назначение языка. Наконец, мы рассмотрим процесс создания небольшого приложения функциональной блок-схемы и объясним варианты выбора, лежащие в основе используемых инструкций.
Что такое функциональная блок-схема?
В химической и технологической инженерии поток производственного потока обычно устанавливается в блоках, которые представляют различные области процесса. Такая диаграмма позволяет инженерам просмотреть процесс и понять, какие входные данные поступают в систему, какие преобразования происходят и какие выходные данные выходят из системы.
Блок-схема процесса производства бензола (Turton et al., 2012)Подобно блок-схемам химических процессов, функциональные блок-схемы в программировании ПЛК позволяют пользователям создавать систему, которая принимает несколько входных данных и передает их через различные блоки команд и изменяет указанные выходы.
Как упоминалось выше, сложно создать весь процесс на функциональных блок-схемах, поскольку компоновка становится сложной и сложной в управлении. Поэтому этот язык чаще всего сочетается с лестничной логикой или структурированным текстом.
Предварительные условия
- В этом учебном пособии не предполагается, что вам известны функциональные блоки. Однако мы рассмотрим большинство блоков команд за более короткое время, чем в большинстве инструкций лестничной логики. По большей части они работают точно так же, как и их аналоги в лестничной логике; пожалуйста, обратитесь к материалам по лестничной логике.
- Базовое понимание релейной логики
- Studio 5000 v30.11
- ПЛК CompactLogix — 1769-L24ER-QB1B
Основы функциональных блок-схем
Давайте рассмотрим базовый пример функционального блока, чтобы понять основы языка. Команда программирования ADD PLC принимает два операнда, добавляет их и сохраняет результат в выходном регистре. Напомню, вот пример инструкции ADD, запрограммированной в релейной логике:
Инструкция ADD примет значение «Целое число1», добавит его к «Целому2» и сохранит результат (143) в «Выходном регистре». То же самое можно ожидать и от схемы функциональных блоков этой инструкции. Однако расклад другой. Вот та же инструкция, реализованная в FBD:
Хотя результат идентичен, программирование FBD требует для работы дополнительных компонентов.
Блок ADD не позволит пользователю вводить регистры, которые будут привязаны к входам или выходам. Дополнительные структуры, называемые входной ссылкой и выходной ссылкой, должны быть добавлены к реализации. Эти структуры могут ссылаться на целые числа, а в других случаях — на логические или другие типы тегов, как и следовало ожидать в релейной логике. Нарисовав соединения от ссылок к функциональному блоку, пользователь укажет, какие ссылки должны использоваться при вычислении блока ADD.
По мере расширения использования функциональных блоков мы можем создать несколько более сложную комбинацию инструкций, как показано на диаграмме ниже.
На диаграмме выше мы видим один и тот же блок ADD. Однако теперь у нас есть два дополнительных блока: BOR и MUL. Кроме того, мы также можем заметить два тройных соединения, связанных с «Integer2» и «OutputRegister». В диаграммах функциональных блоков пользователь может направлять значения регистров в несколько пунктов назначения.
Примечание: невозможно направить два входных регистра на один вход блока команд. Однако можно направить один выход на два разных входа.
Инструкция BOR представляет собой логическую операцию «логическое ИЛИ». Эта функция берется из функций логических вентилей и оценивается как истина всякий раз, когда любой из входов равен 1 или логический ВЫСОКИЙ.
Примечание: соединения функционального блока BOR и обратно отмечены точками, а соединения на других блоках — сплошными. Кроме того, на каждом входе и выходе этого блока, а также на входе «EnableIN» блока MUL есть точка. Это сделано намеренно; эти соединения представляют логические значения, а сплошные линии представляют целые числа. RSLogix и Studio 5000 не позволят пользователю направлять неверные типы данных в инструкции и из них.
Инструкции на диаграмме пользовательского функционального блока
Как упоминалось выше, большинство инструкций, которые вы увидите в релейной логике, также будут доступны на диаграммах функциональных блоков. В дополнение к стандартным блокам Allen Bradley пользователь может создать свои собственные инкапсуляции кода, которые затем будут использоваться в FBD. Эта практика используется всякий раз, когда приложение требует использования аналогичных элементов, а реализация пользовательского функционального блока сэкономит время на этапе программирования и ввода в эксплуатацию. Кроме того, это позволяет программисту стандартизировать функцию и отправлять одно обновление во все экземпляры реализации одного и того же функционального блока.
Схема функциональных блоков Инструкции по программированию
В релейной логике у нас было различие между условными и исполнительными блоками. Проще говоря, условия, расположенные в левой части ступени, должны быть истинными, чтобы исполнительные блоки могли внести указанные в них изменения. В диаграммах функциональных блоков эта парадигма неочевидна, поскольку пользователь может создавать сложные макеты, и блоки переплетаются. Однако блоки по-прежнему можно рассматривать как условные или исполняемые. На приведенной выше диаграмме инструкция BOR использовалась для оценки состояния четырех входов, а инструкция MUL использовалась для изменения выходного регистра на основе значений входов.
Инструкции по манипулированию логическими битами
Манипуляции с логическими битами включают проверку условий входных битов и установку выходных данных на основе логики, определенной в инструкции. Это действие выполняется с помощью инструкций XIC, XIO в паре с ответвлениями цепочки. В схемах функциональных блоков для этого требуется использование инструкций BAND, BOR, BXOR и BNOT. Давайте подробно рассмотрим каждый из них и обсудим возможные области применения каждого из них.
Техническое примечание. Расширенные настройки FBD в RSLogix 5000
Каждая инструкция функциональной блок-схемы имеет набор параметров, которые могут изменять структуру инструкции, добавлять и/или убирать определенные функции.
Чтобы получить доступ к меню настроек функционального блока в RSLogix 5000, щелкните поле «…» в верхнем левом углу функции.
После открытия пользователю будет представлен список настроек, их описание, а также возможность включить/выключить настройку или установить для нее определенное значение. Обратите внимание, что программатор ПЛК может просматривать, но не редактировать настройки в рабочем режиме. Лист должен быть помещен в режим редактирования, чтобы можно было вносить изменения.
На приведенном выше снимке экрана показано меню настроек для инструкции BAND, показанной выше. Вход «EnableIn» выбран для отображения «скрытой» настройки по умолчанию, которую можно использовать для включения или отключения инструкции на основе определенного значения тега. Другими словами, если для строки «EnableIn» установлен флажок «vis», бит «EnableIn» появится в инструкции и разрешит динамическую привязку логического значения. По умолчанию это значение равно 1, чтобы всегда выполнять инструкцию.
Функциональная блок-схема BAND Инструкция
Инструкция BAND принимает фиксированное количество входных данных, обрабатывает их все с помощью логического оператора И и устанавливает выходной бит в 0 или 1 в зависимости от состояния входных данных.
Оператор И обычно используется в булевой логике, компьютерных компараторах и электронных схемах.
Команда BAND конфигурируется для приема от одного до восьми (8) входных данных, которые будут обрабатываться в один выходной бит. В приведенной ниже таблице показаны результаты обработки двух входных данных (LocalBOOL[1] и LocalBOOL[2]) в выходные данные LocalBOOL[0] 9.0003
Инструкция будет вести себя точно так же. Он возьмет два входа и обработает их на выходе в соответствии с логикой, описанной выше. Вот четыре состояния входов и соответствующий выход.
Важное примечание: Как упоминалось выше, можно получить доступ к настройкам инструкций и настроить BAND для приема до 8 различных входов. Это позволяет пользователю использовать одну инструкцию для одновременной оценки нескольких входных данных. Если есть необходимость оценить дополнительные входные данные, несколько инструкций могут быть объединены в цепочку.
Общий вариант использования инструкции BAND
Оператор BAND может использоваться для проверки определенных условий запуска части оборудования. Представьте, что у упаковщика есть несколько дверей с предохранительными выключателями. Несмотря на то, что для фиксации реле требуется цепь с безопасным уровнем защиты, программатор ПЛК будет использовать BAND, чтобы убедиться, что все дверцы закрыты, прежде чем устанавливать бит «Ready_To_Run». Другими словами, перед запуском машины должны быть соблюдены передняя защитная дверь, И задняя защитная дверь, И предохранительные устройства привода, И другие условия. После установки этого бита оператор может подать команду Пуск с помощью кнопки или ЧМИ.
Инструкция на функциональной блок-схеме BOR
Инструкция BOR или логическое ИЛИ служит той же цели, что и инструкция BAND. Однако BOR будет оценивать входные данные на основе логического оператора ИЛИ. В этом случае, если на каком-либо из входов установлена логическая «1», выход будет установлен на «1». Вот таблица истинности, которая используется для оценки состояния выхода:
Инструкция BOR принимает то же количество входных данных, что и BAND. Вот реализация на диаграммах функциональных блоков в RSLogix 5000.
Общий случай использования инструкции BOR
Инструкция BOR используется в случаях, когда любой активный вход должен вызвать условие. Давайте посмотрим на то же приложение, что и выше: упаковщик ящиков. Упаковщик ящиков переведен в режим «Работа» и занимается упаковкой ящиков. Пока он делает дело, возникает ошибка. Ожидаемое действие — остановка машины. В этом случае ожидаемая логика заключается в том, что подпрограмма будет отслеживать возникновение ЛЮБОЙ неисправности. Если дверь открыта, ИЛИ если коробка отсутствует, ИЛИ если давление низкое, ИЛИ возникает любое другое ненормальное состояние, машина выходит из строя, останавливается и отображается соответствующий аварийный сигнал.
Инструкция функционального блока BXOR
BXOR или логическая инструкция исключающее ИЛИ принимает два входа и устанавливает выход на основе набора условий. Эта логическая инструкция будет оцениваться как ИСТИНА, когда входы имеют разные значения. Другими словами, вы можете ожидать от этой инструкции следующую операцию или таблицу истинности:
Важно отметить, что в отличие от предыдущих инструкций, инструкция XOR принимает не более двух входных данных. Причиной этого является базовое условие этой инструкции: возвращать истину всякий раз, когда два входа имеют разные значения. Здравый смысл подсказывает, что независимо от того, что вы установите для трех или более входов, всегда будет одно и то же значение в двоичном формате. Другими словами, с помощью этой инструкции вы можете сравнивать только два входа. Вот как выглядит меню настроек:
Вот реализация этой инструкции в Studio 5000, а также ответ вывода на основе изменений входных значений:
Общий вариант использования инструкции BXOR
Согласно приведенной выше таблице истинности, BXOR даст Информация программатора ПЛК, когда один вход активен, а другой нет. Это важно в приложениях, использующих дифференциальную обратную связь. Например, рассмотрим технологический клапан с датчиками, которые считывают открытое и закрытое положение. Когда клапан находится в положении ОТКРЫТО, датчик 1 должен показывать «ВЫСОКИЙ», а датчик 2 должен показывать «НИЗКИЙ». В противоположной уставке датчик 1 должен показывать «НИЗКИЙ», а датчик 2 должен показывать «ВЫСОКИЙ». В случае, когда оба датчика показывают «ВЫСОКИЙ» или «НИЗКИЙ», клапан находится в неизвестном, неисправном состоянии. Инструкцию BXOR можно использовать для обнаружения такого состояния и выдачи аварийного сигнала.
Примечание. В приведенном выше приложении программист ПЛК должен использовать таймер TON, чтобы убедиться, что клапану было дано достаточно времени для перехода между двумя состояниями. В противном случае программа ПЛК может выйти из строя сразу во время перехода.
Инструкция функциональной блок-схемы BNOT
Инструкция функциональной блок-схемы BNOT принимает ввод и изменяет его на противоположное значение. Если вход «ВЫСОКИЙ», выход будет установлен в «НИЗКИЙ». Точно так же, если вход «НИЗКИЙ», выход будет установлен в «ВЫСОКИЙ».
В Studio 5000 инструкция может быть реализована следующим образом:
Общий вариант использования инструкции BNOT
Инструкция BNOT может быть реализована в релейной логике посредством использования цепочки XIO и OTE. Оценивая состояние определенного бита и устанавливая его в противоположное значение, программист может создать сценарий двойных условий. Например, когда бит «MachineRunning» установлен в 1, машина фактически работает. Программист ПЛК может выбрать постоянное использование XIO бита MachineRunning для проверки того, что он НЕ работает. Однако это невозможно при программировании схемы функциональных блоков. Программист должен будет создать инструкцию BNOT и установить для тега «MachineStopped» значение, противоположное значению MachineRunning.
Инструкции математической функциональной блок-схемы
При программировании функциональной блок-схемы очень легко реализовать математические инструкции без использования промежуточного регистра. Другими словами, большая часть аналогового масштабирования, сложных математических расчетов и проверки процессов должна выполняться на функциональных блок-схемах.
В релейной логике программист ПЛК, которому необходимо умножить два значения и вычесть результат из другого значения, должен создать два шага и регистр, в котором будет сохраняться это значение. В функциональных блок-схемах можно реализовать следующую схему для расчета преобразования температуры между градусами Фаренгейта и градусами Цельсия:
Обратите внимание, что цепочка функциональных диаграмм блогов может работать без необходимости сохранять выходные значения каждого блока. Программист может связать эти блоки один за другим и привязать выходные данные к следующему блоку. С помощью той же операции программист может выбрать отправку значений в градусах Цельсия и Фаренгейта на ЧМИ. На диаграммах функциональных блоков это можно сделать, нарисовав соединения с соответствующими блоками. Вот модифицированная схема инструкции выше:
В этом случае назначение тегов HMI выполняется одновременно с использованием регистров в инструкциях функциональных блоков.