Язык функциональных диаграмм МЭК 61131-3.
В этом случае графическая программа состоит из функциональных блоков, соединений между ними и переменных соответствующих входам/выходам ПЛК. Программирование на этом языке представляет собой размещение (из специальных библиотек) на поле набора логических блоков («И», «ИЛИ», «НЕ», триггеров, таймеров, счётчиков, блоков обработки аналогового сигнала, блоков математических операций, блоков инициализации сетевого протокола) и установления связи между ними. Входом блока может являться вход ПЛК, внутренняя переменная ПЛК, константа, либо выход другого блока. Выходы блоков могут быть записаны во внутреннюю переменную ПЛК, поданы на входы других блоков, либо непосредственно на выходы ПЛК. Программа исполняется контроллером слева направо и сверху вниз, циклически (после выполнения последнего блока, снова выполняется первый). FBD представление всегда получается нагляднее, чем в текстовых языках.
Рассмотрим построение программы FBD на простейшем примере. Предположим, что мы имеем некий гидравлический объект и хотим с помощью лампы сигнализировать, что он работает исправно, если выполняются следующие условия:
1. Насос включен (это сигнализируется вспомогательным контактом на пусковом устройстве насоса);
2. Емкость заполнена маслом (это сигнализируется специальным контактом датчика уровня, который замыкается, когда уровень масла достаточен);
3. Давление масла соответствует норме (это сигнализируется контактом датчика давления, который замыкается при соответствующем давлении).
Если обозначить:
- сигнальную лампочку как y
- контакт пускателя насоса - а
- контакт датчика уровня масла - b
контакт датчика давления - c,
то алгоритм работы нашего устройства будет описываться простейшей логической формулой:
y = a·b·c
На рис. представлена программа, построенная на основе логической формулы.
Она состоит из трех входов (I1,I2 иI3), сигналы с которых поступают блок логического умножения (операция «И») и далее к выходуQ1. При наличии на всех трех входах логической единицы (переменного напряжения 220В) логическая единица поступает на реле выходаQ1 и его контакты замыкаются, зажигая контрольную лампочку.
[http://www.studfiles.ru/preview/1862107/page:3/]
Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входы и выходы которых соединены линиями связи (connections). Эти связи, соединяющие выходы одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.
Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата.
Рис.2. Функциональная схема FBD.
[http://kazanets.narod.ru/PLC_PART2.htm]
Параллельные тексты EN-RU
There is no intentional time delay associated with this element although using the Programmable Scheme Logic (PSL), time delays could be applied if required.
[Schneider Electric] |
Для данной функции не предусмотрена собственная задержка срабатывания, однако, при необходимости, её можно реализовать в диаграмме функциональных блоков.
[Перевод Интент] |