Микропроцессорная техника систем автоматизации



бет18/77
Дата27.11.2023
өлшемі4,68 Mb.
#128711
1   ...   14   15   16   17   18   19   20   21   ...   77

Язык FBD


Одним из популярных языков программирования ПЛК является графический язык функциональных блоковых диаграмм – Function Block Diagram (FBD).
Написанная на данном языке программа для контроллера состо- ит из некоторого списка цепей, которые одна за другой выполня- ются сверху – вниз. Кроме того, здесь имеется возможность присвоения отдельным цепям меток, в этом случае станет доступно использование инструкций перехода на метку, чтобы изменять по- следовательность исполнения цепей и создавать условия и циклы. Таким образом, программа, написанная на графическом языке FBD, представляет собой набор связанных друг с другом функциональ- ных блоков, выходы и входы которых соединены линиями связи (рис. 30). Линии связи отражают определенные программные пе- ременные, через которые происходит обмен данными от блока к блоку.

Рис. 30. Вид программы на языке FBD

Отдельный блок несет на себе конкретную функцию (логиче- ское «И», «НЕ», счетчик и т. д.), при этом один блок может иметь несколько выходов и входов. Изначально значения переменных задаются константами или со специальных входов, а выходы их связываются дальше с другими переменными программы или с вы- ходами ПЛК.


В процессе программирования на языке FBD применяются как стандартные блоки из библиотек, так и блоки, написанные на FBD или на иных языках стандарта МЭК 61131-3. Блок представляет собой элемент программы, своего рода подпрограмму, функцио- нальный блок или функцию (логическое «НЕ», «ИЛИ», «И», таймер, счетчик, триггер, математическая операция, обработка аналогового сигнала и т. д.).
Из таких блоков графически составляются выражения, обра- зующие цепи: к выходу одного блока присоединяется следующий блок, далее – еще блок, и так образуются цепи. По ходу цепи поря- док выполнения блоков соответствует порядку их соединения, а результат выполнения цепи либо подается на выход ПЛК, либо за- писывается в какую-то внутреннюю переменную.
В качестве примера на рис. 31 представлен фрагмент программы управление насосом, подающим воду в бак.
Как LD, так и FBD, используют для некоторых блоковых ко- манд понятие «поток сигнала» (EN и ENO). Некоторые команды (например, арифметические операции и команды пересылки) ото- бражают параметры для EN и ENO. Эти параметры относятся к по- току сигнала и определяют, выполняется ли команда в этом цикле.



Рис. 31. Программа 2-хпозиционного регулирования уровня воды в баке, написанная на языке FBD

EN (Enable In = разблокировать вход) является булевым входом для блоков в LD и FBD. Поток сигнала (EN = 1) должен присутст- вовать на этом входе, чтобы блоковая команда выполнялась. Если вход EN блока LD присоединен непосредственно к левой ши- не электропитания, то блок всегда будет исполняться.


ENO (Enable Out = разблокировать выход) является булевым выходом для блоков в LD и FBD. Если у блока имеется поток сиг- нала на входе EN и блок выполняет свою функцию без ошибок, то выход ENO передает поток сигнала (ENO = 1) следующему эле- менту. Если в исполнении блоковой команды обнаружена ошибка, то поток сигнала прерывается (ENO = 0) у блоковой команды, ко- торая вызвала ошибку.
Выполнение FBD-цепей идет слева направо, сверху вниз. Блоки, расположенные левее, выполняются раньше. Блок начинает вычис- ляться только после вычисления значений всех его входов. Даль- нейшие вычисления не будут продолжены до вычисления значений на всех выходах. Другими словами, значения на всех выходах гра- фического блока появляются одновременно. Вычисление цепи счи- тается законченным только после вычисления значений на выходах всех входящих в нее элементов.




Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   77




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет