Язык функциональных блоковых диаграмм (FBD) и его применение

СОДЕРЖАНИЕ:

Понимание языков программирования IEC61131-3

вт, 10.05.2011, 11:05

Язык функциональных блочных диаграмм (FBD)

Хотя, язык релейно-контактных схем является наиболее распространенным, обзор, выполненный журналом Control Engineering несколько месяцев назад, показал растущее применение других языков программирования. Примером является язык функциональных блочных диаграмм. Несмотря на то, что скорость его распространения несколько замедлилась за последнее время, относительно таких языков как структурированный текст, язык функциональных блочных диаграмм является вторым по степени популярности.

Рис. 2. В Функциональной блочной диаграмме блоки «соединены» вместе в последовательность, которую
легко отслеживать. Этот язык использует такие же команды, как и релейно-контактный, но схема визуально
более понятна пользователю,который не обладает специальным знаниями в релейной логике.

Многими аспектами этот графический язык напоминает электрическую схему даже больше, чем релейно-контактный язык. В функциональной блочной диаграмме блоки «соединены» вместе в последовательность, которую легко отслеживать. Этот язык использует такие же команды, как и релейно-контактный, но схема визуально более понятна пользователю, который не обладает специальными знаниями в релейной логике. Основным преимуществом этого языка является легкость отслеживания программы – просто двигайтесь по пути. Этот язык идеален для простых программ, состоящих из цифровых входов, таких как фотоэлектрические датчики, и выходов, таких как клапаны трубопроводов, и может использоваться в любых приложениях наряду с релейно-контактным языком или вместо него.

Однако, этот язык не идеален для больших программ, использующих специальные входы и выходы, а также функции. При использовании языка нужен большой объем экранного пространства, что делает программу нечитаемой при достижении определенного размера. Также при написании программы на языке функциональных блочных диаграмм требуется предварительная подготовка в виде прописывания алгоритма перед тем, как писать код, поскольку впоследствии будет достаточно сложно внести изменения.

Программирование логических контроллеров на языке функциональных логических блоков

Помимо языка программирования РКС для ПЛК существует и другой язык программирования, например, язык FBD (Function Block Diagram) — графический язык программирования стандарта IEC61131-3, который широко используется для программирования промышленных логических контроллеров. Программирование на языке FBD представляет собой размещение на рабочем поле программы набора различных библиотечных блоков, так называемых алгоблоков, и установление связи между ними. Каждый алгоблок имеет настройки, которые могут редактироваться для придания ему тех или иных свойств.

Рассмотрим язык программирования FBD на примере программно-технического комплекса (ПТК) KONTAR для автоматизации и диспетчеризации территориально распределенных объектов, выпускаемого Московским заводом тепловой автоматики (МЗТА). Комплекс состоит из трех микроконтроллеров: МС8, МС5 и релейного модуля MR8 фирмы Silicon Laboratories, которые объединяются в локальную сеть по интерфейсному каналу RS485. В этом случае контроллер МС8 является ведущим (Master), а остальные — ведомыми (Slaves). К контроллеру МС8 по интерфейсу RS-232C подключен модуль расширения МЕ4. Соединенные таким образом устройства (МС8 и МЕ4) представляют собой «расширенный» контроллер. Связь локальной сети с верхним уровнем управления осуществляется через Master- контроллер но каналу Ethernet (дословно но каналу «эфирной сети»), У всех этих микроконтроллеров одна система команд однокристального микроконтроллера семейства INTEL i8051, что дает возможность разрабатывать алгоритм функционирования любого из этих модулей в одной инструментальной системе — в пакете программирования KONGRAF. Свободно программируемые контроллеры делают легким решение многих задач автоматизации: от мониторинга нескольких технологических параметров до комплексной автоматизации зданий и групп сооружений.

Имеются исполнения контроллеров с симисторными и транзисторными выходными ключами. Контроллеры, имеющие симисторные выходные ключи, могут непосредственно управлять исполнительными механизмами клапанов, заслонок, магнитными пускателями и т.д. Контроллеры с транзисторными выходными ключами обычно устанавливаются в комплекте с релейными модулями MR8, которые выполняют функции усиления мощности и расширения дискретных входов. Входное напряжение переменное, 220 и 24 В. У контроллера МС8 имеется восемь универсальных аналоговых входов (AI) плюс четыре дискретных гальванически изолированных входа (DI), восемь дискретных выходов (DO) и два аналоговых выхода (АО). К дискретным выходам может быть подключена нагрузка с напряжением 48 В при потребляемом постоянном токе не выше 0,5 A/выход. Возможные диапазоны измерения сигналов аналоговыми выходами: от 0 до 20 мА постоянного тока на нагрузку не более 0,5 кОм; от 0 до 5 мА постоянного тока на нагрузку не более 2 кОм. В последнем случае напряжение на нагрузке изменяется от 0 до 10 В постоянного тока.

Программирование контроллера, т.е. создание, редактирование, отладка и компиляция программ, производится при помощи персонального компьютера с использованием пакета программирования KONGRAF в операционной системе Windows. Пакет программирования KONGRAF позволяет в наглядной графической форме запрограммировать желаемый алгоритм на основе предлагаемой библиотеки алгоритмов, в которой содержатся не только отдельные функциональные узлы, но и готовые проекты управления типовыми объектами.

Разработанный функциональный алгоритм (ФА) или выбранный готовый проект транслируется в исполняемый код в виде bin-файлов (например, на web-сервере изготовителя, доступном через сеть Internet). Загрузка ФА может происходить по интерфейс^5-232С посредством подключения программируемого контроллера к компьютеру или по сети Ethernet.

Рассмотрим проектирование программы в пакете KONGRAF для логической релейной защиты, приведенной на рис. 4.8. Начинаем с создания главного блока проекта, где в открывшемся окне (рис. 4.34) задаем Имя проекта и выбираем тип протокола. Далее на рабочее поле главного блока проекта помещаем те модули ПТК KONTAR, которые будут задействованы в проекте: это модули МС8 и МЕ20 (рис. 4.35). Они выбираются в меню — Библиотека функций —> Приборные блоки —> Контроллеры и перемещаются мышкой в окно главного блока проекта, в результате чего всплывают окна Создать новый прибор, где в поле Имя прибора задаем имена Реле защ. и Вход КА5, а в поле Тип — Контроллер МС8 и Модуль МЕ20. Модуль МЕ20 необходим для расширения дискретных входов контроллера МС8, который имеет четыре дискретных входа, а по схеме их требуется пять. Для настройки свойств блока 1.МС8 необходимо нажать правой кнопкой мыши на изображение этого блока и в открывшемся контекстном меню выбрать команду Свойства (см. рис. 4.35). При этом откроется диалоговое окно свойств этого блока, где задаются комментарий, заголовок, тин прибора или функции и сетевой номер (рис. 4.36). Во вкладке Блок, в поле Тип прибора/функции оставляем Контроллер МС8 и выбираем Тип MASTER, что значит «главный» (рис. 4.36). Для удобства работы можно изменять размеры рабочего поля для размещения алгоблоков, выбрав в главном меню команду Вид —> Рабочая область, и затем в открывшемся окне установить высоту и ширину поля.

Рис. 4.34. Создание проекта в пакете KONGRAF

Рис. 4.35. Библиотека функций и окно главного блока проекта

Рис. 4.36. Свойства вкладки Блок окна Свойства ФБ Контроллер МС8

Во вкладке Входы/Выходы окна Свойства ФБ Контроллер МС8

устанавливается необходимое количество входов и выходов в поле Количество (рис. 4.37): для аналоговых входов AI — 0; для аналоговых выходов АО — 0; для дискретных входов DI — 5; для дискретных выходов DO — 3.

Приборный список создается на вкладке Списки нажатием кнопки «+», где соответствующие данные вводятся в поля Имя и Комментарий. Настройка свойства блока ME20-Slave происходит аналогично. После настройки свойств контроллеров МС8 и МЕ20 их вид в окне главного блока проекта показан на рис. 4.38.

Рис. 437. Свойства вкладки Входы/Выходы окна Свойства ФБ

Рис. 438. Главный блок проекта после настройки

Затем, дважды щелкнув левой кнопкой мыши, следует открыть алгоритмический блок контроллера МС8 и «наполнить» его, т.е. создать алгоритм работы релейной защиты, перетаскивая из окна Библиотека в активное окно алгоритмического блока необходимые алгоблоки.

На рис. 4.39 приведены фрагменты начала создания алгоритма работы для логической релейной защиты, представленной на рис. 4.8. Параллельное подключение замыкающих контактов реле КА1, КА2 и К АЗ реализовано логическим элементом ИЛИ, взятым из библиотеки функций: Логические функции Основные функции —> ИЛИ —> Логическое ИЛИ.

Рис. 439. Фрагмент начала создания алгоритма работы на языке FBD для логической релейной защиты

Далее нажатием правой кнопки мыши на изображение функционального блока ИЛИ следует выбрать в контекстном меню команду Свойства. При этом откроется диалоговое окно свойств этого блока.

На вкладке Параметры (рис. 4.40) установить:

для Q[ 1] — Имя КАР, Список Сигнал Q[ 1]; Список симулятора — поставить галочку и задать имя КА1, чтобы добавить параметр для симуляции; Значение TRUE (истина);

для Q[2] — Имя КА2; Список Сигнал Q[2]; Список симулятора

поставить галочку и задать имя КА2; Значение FALSE (ложь);

для Q[3] — Имя КАЗ Список Сигнал Q[3]; Список симулятора поставить галочку и задать имя КАЗ Значение FALSE (ложь).

Аналогично заполняются и другие функциональные блоки.

На рис. 4.41 показан алгоритмический блок контроллера МС8, где приведен полный функциональный алгоритм логической релейной защиты на языке FBD.

Перед записью программы в контроллер ее необходимо откомпилировать и проверить правильность ее работы на симуляторе, который находится в том же пакете KONGRAF. Если в программе будут обнаружены ошибки, то появится сообщение с их перечислением. После записи программы в контроллер правильность ее работы можно проверить при работе контроллера.

Рис. 4.40. Свойства функционального блока Логическое ИЛИ,

Рис. 4.41. Полный функциональный алгоритм логической релейной защиты

В программе использован таймер — функциональный блок КТ Задержка включения с установленной выдержкой времени, равной времени ступени защиты 0,5 с. При подаче сигнала на вход КТ он начинает отсчитывать время. Когда пройдет заданное время, таймер выдаст сигнал замыканием своих контактов.

Желательно после создания каждой логически завершенной части алгоритма системы управления функционального блока провести симуляцию этой части алгоритма. Симуляция проводится с целью определения неточностей в проекте и оперативного их исправления до трансляции и загрузки исполняемого кода в модули ПТК KONTAR.

Для поиска необходимого параметра (которые ранее были включены в какие-либо списки) можно воспользоваться вкладкой Списки в окне Свойства ФБ Контроллер МС8. В список симулятора можно также включить параметры, которые не включены ни в один список.

Для просмотра всех параметров активного функционального блока (приборного или главного блоков), добавленных в список симулятора, вызывается окно симулятора: Проект —> Симулятор или нажатием кнопки ^ на панели инструментов. Параметры помечаются специальными маркерами. Красная стрелка вправо означает, что параметр является входным (его значение может быть изменено), синяя стрелка влево — выходным.

Настройка симулятора заключается в создании необходимого количества диаграмм для вывода графиков и размещении на них параметров, требуемых для отображения в графическом виде. К настройке относится также установка параметров времени цикла, времени, даты и длительности процесса. По умолчанию в окне симулятора содержится только одна диаграмма. В каждой такой диаграмме можно разместить неограниченное количество параметров. Для размещения параметра, его выбирают из списка параметров и, удерживая на нем левую кнопку мыши, перемещают на диаграмму. При этом внизу диаграммы появится имя этого параметра и цвет его будущего графика (выбирается автоматически).

Для создания новой диаграммы нажимают кнопку g| на панели инструментов. Окно диаграмм можно разбить также на страницы, на которых можно создать дополнительные диаграммы. Всего можно создать пять страниц и на каждой — не более пяти диаграмм. Для создания новой страницы нажимают кнопку Jy)J на панели инструментов.

На рис. 4.42 показано состояние схемы логической защиты при однофазном КЗ в точке К1 трансформатора Т1, когда сработало реле КА1 и не сработали реле КА4 и КА5. Состояние реле для симуляции было задано ранее. В этом случае промежуточное реле KL, дающее сигнал на отключение выключателя Q1, сработало без выдержки времени (таймер не начал отсчитывать время) и отключило выключатель Q1. Срабатывание защиты при КЗ в трансформаторе запоминается указательным реле КН1 (реализовано RS-триггером). Для съема сигнала защиты служит ФБ Задание логического значения.

На рис. 4.43 показано состояние схемы логической защиты при двухфазном КЗ в точке К2, когда сработали реле КА1, КА2 и КА4 и не сработала основная защита выключателя Q2. В этом случае промежуточное реле KL не срабатывает, и таймер КТ начинает отсчитывать время, равное 0,5 с. После отсчета заданного времени КТ подает сигнал на включение реле KL, которое отключает выключатель Q1, при этом срабатывает сигнального реле КН2. Защита выключателя Q1 в этом случае является резервной для защиты от замыканий за трансформатором в точке К2. Съем сигнала защиты производится ФБ Задание логического значения.

Рис. 4.42. Окно симуляции логической релейной защиты Рис. 4.43. Окно симуляции релейной защиты с указательными с указательными реле. Отключение без выдержки времени реле. Отключение с выдержкой времени выключателем Q1 однофазного КЗ в трансформаторе Т1 двухфазного КЗ в точке К2

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

Каждый электрик должен знать:  Какое освещение в прихожей оптимальное фото, советы

functional block diagram

функциональная блок-схема

[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]

Тематики

  • информационные технологии в целом
  • functional block diagram

язык FBD
Диаграмма функциональных блоков. Один из пяти стандартизированных языков программирования ПЛК.
[http://kazanets.narod.ru/PLC_PART2.htm]

Язык FBD (Functional Block Diagram , Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (f unctional flocks, FBs ), входы и выходы которых соединены линиями связи ( connections ). Эти связи, соединяющие выходы одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.

Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата.

Рис.2. Функциональная схема FBD .

Тематики

  • автоматизированные системы
  • FBD
  • Functional Block Diagram

Англо-русский словарь нормативно-технической терминологии . academic.ru . 2015 .

Смотреть что такое «functional block diagram» в других словарях:

Functional flow block diagram — The Functional Flow Block Diagram (FFBD) is a multi tier, time sequenced, step by step flow diagram of the system’s functional flow. [The first version of this article is completely based on the [http://www.faa.gov/about/office org/headquarters… … Wikipedia

Block diagram — is a diagram of a system, in which the principal parts or functions are represented by blocks connected by lines, that show the relationships of the blocks. [http://pascal.computer.org/sev display/index.action SEVOCAB: Software and Systems… … Wikipedia

block diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Grafinis valdymo sistemų ir vyksmų vaizdavimo būdas, naudojamas tų sistemų ir vyksmų bei jų atskirų elementų paskirčiai apibūdinti ir paaiškinti. atitikmenys: angl. block … Penkiakalbis aiškinamasis metrologijos terminų žodynas

block diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Schema, aiškinanti atskirose funkcinėse matuoklio grandinėse arba matuoklyje vykstančius vyksmus ir naudojama nagrinėjant jo veikimo principą, taip pat jį derinant,… … Penkiakalbis aiškinamasis metrologijos terminų žodynas

block diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Schema, aiškinanti tam tikrus vyksmus, vykstančius atskirose funkcinėse grandinėse arba gaminyje; naudojama gaminio veikimo principams nagrinėti, taip pat jį derinant,… … Penkiakalbis aiškinamasis metrologijos terminų žodynas

block diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Schema, aiškinanti tam tikrus vyksmus, vykstančius grandinėje arba atskirose jos dalyse. atitikmenys: angl. block diagram; functional diagram vok. Funktionsübersicht, f;… … Penkiakalbis aiškinamasis metrologijos terminų žodynas

Function block diagram — A function block diagram is a diagram, that describes a function between input variables and output variables. A function is described as a set of elementary blocks. Input and output variables are connected to blocks by connection lines. An… … Wikipedia

Functional decomposition — refers broadly to the process of resolving a functional relationship into its constituent parts in such a way that the original function can be reconstructed (i.e., recomposed) from those parts by function composition. In general, this process of … Wikipedia

Diagram — Further information: Chart Sample flowchart representing the decision process to add a new article to Wikipedia. A diagram is a two dimensional geometric symbolic representation of information according to some visualization technique. Sometimes … Wikipedia

functional diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Grafinis valdymo sistemų ir vyksmų vaizdavimo būdas, naudojamas tų sistemų ir vyksmų bei jų atskirų elementų paskirčiai apibūdinti ir paaiškinti. atitikmenys: angl. block … Penkiakalbis aiškinamasis metrologijos terminų žodynas

functional diagram — funkcinė schema statusas T sritis Standartizacija ir metrologija apibrėžtis Schema, aiškinanti atskirose funkcinėse matuoklio grandinėse arba matuoklyje vykstančius vyksmus ir naudojama nagrinėjant jo veikimo principą, taip pat jį derinant,… … Penkiakalbis aiškinamasis metrologijos terminų žodynas

Язык функциональных блоковых диаграмм

Язык функциональных блоковых диаграмм (FBD, functional block diagram, диаграмма функциональных блоков) является, так же как и LD, языком графического программирования, использующим аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional blocks, FBs), входы и выходы которых соединены линиями связи (connections). Эти связи, соединяющие выходы одних блоков со входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое «или» и т.д.) и может иметь в общем случае произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков — входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с переменными программы.

Графически в программе каждый функциональный блок представляется обычно прямоугольником с входными и выходными переменными (рис. 2.1.32), внутри которого имеется обозначение функции, выполняемой блоком.

Приведем основные формальные правила языка FBD:

  • • функциональные блоки могут располагаться в поле программы произвольно;
  • • не может быть свободных (несоединенных) входов и выходов функционального блока;
  • • любая связь (NET) может иметь имя переменной;
  • • входы и выходы функциональных блоков, присоединенные к связям, имеющим одинаковые имена, считаются соединенными;

Рис. 2.1.32. Функциональный блок языка FBD

• очередность выполнения блоков в программе: слева направо, сверху вниз.

На входе FBD-блока может быть:

  • • константное выражение;
  • • любая внутренняя или входная переменная;
  • • выходная переменная.

На выходе FBD-блока может быть любая внутренняя или выходная переменная.

Логика программы выводится из соединений между блоками. Иными словами, выход одного блока (одной команды) может использоваться для того, чтобы разрешить другому блоку (другой команде) создать необходимую логику управления.

Программы на языке FBD напоминают электрические принципиальные схемы логических устройств и формально соблюдают алгоритмы их работы. На рис. 2.1.33 для сравнения показан один и тот же элемент программы, созданный при помощи языков LD и FBD для реализации логической функции нескольких переменных.

Рис. 2.1.33. Элемент программы, созданной при помощи языка LD и FBD

Язык FBD содержит таймеры, счетчики, триггеры и другие элементы, которые были рассмотрены при описании языка LD. Изображение их в программе на FBD в целом повторяет то, как они выглядят в LD. Несмотря на всю схожесть с электрическими схемами, язык FBD содержит метки, операторы условного и безусловного переходов, которые свойственны традиционным процедурным языкам программирования. В качестве библиотечных блоков используются не только элементарные функции, но и алгоритмы П-, ПИ-, ПИД-регулирования, фильтрации сигналов, стабилизации заданных параметров. Набор из математических и статистических функциональных блоков позволяет просто организовать необходимые вычисления и обработку сигналов.

В табл. 2.1.2 приведены примеры базовых функций языка FBD.

Примеры базовых функций языка FBD

Функции двоичного типа

NOT, AND, OR, XOR, SET, RESET

Функции управления программой

RETURN, GOTO, CALL, TSTART, TSTOP, GSTART, GSTOP

Программирование ПЛК на языке FBD.

ЛАБОРАТОРНАЯ РАБОТА 4

Тема:Система автоматического регулирования тепловой пушки.

Цель работы:Изучить принципы составления прикладных программ для

промышленных логических контроллеров на языке FBD пакета CoDeSys.

1.Разработать принципиальную электрическую схему автоматического управления технологической установкой.

3.Разработать алгоритм работы блока управления.

4.Разработать прикладную программу для ПЛК в среде codesys.

5.Протестировать работу схемы.

Объект исследования:Система автоматического регулирования тепловой пушки.

Предмет исследования:Воздух вентилятором 1 прогоняется через тепловую пушку. В зависимости от установки температуры включается определенное количество нагревательных элементов 2. Следует учесть, что нагревательные элементы не должны работать при выключенном вентиляторе. 3-измеритель температуры.

Методология: FBD – это графический язык программирования. Он работает с последовательностью цепей, каждая из которых содержит логическое или арифметическое выражение, вызов функционального блока, переход или инструкцию возврата. В данной работе применяется метод программирования, в основе которого лежит понятие алгоритма, т.е. набора инструкций, описывающих порядок действий для достижения результата решения задачи за конечное число действий. Все программы разрабатываются в среде codesys.

Электрическая принципиальная схема тепловой пушки.

Рисунок 1- Схема электрическая принципиальная

ЕК1, ЕК2- нагреватели;

SA1.1, SA1.2, SA1.3- переключатели режимов (сеть, нагреватели).

Построение алгоритма работы блока управления.

Рисунок 2- Алгоритм работы блока управления

Программа на языке FBD в среде CODESYS.

Рисунок 3- Листинг программы на языке FBD

Рисунок 4- Описание переменных

Приведенные выше переменные описываются в блоке POU PLC_PRG и используются в качестве вспомогательных переменных. Входные и выходные переменные описываются в разделе глобальных переменных. Входные: Kp, OD, BD, BDUP. Выходные: k1, k2, D, DPCH. Все переменные в блоке глобальных переменных принадлежат к типу BOOL.

Отчет.

1. Включили компьютер.

2. Запустили пакет CoDeSys.

3. Создали проект программы. При создании проекта использовали язык релейных диаграмм FBD.

4. Выбрали тип контроллера, PLC150.U-L.

5. Изучили принципы составления прикладных программ для

промышленных логических контроллеров на языке FBD пакета CoDeSys.

6. На основании заданной технологической схемы и описания технологического процесса разработали:

— принципиальную электрическую схему автоматического управления

-алгоритм работы блока управления;

— прикладную программу для ПЛК.

7. Дали описание работы принципиальной схемы.

8. Запустили программу на исполнение.

9. Протестировали работу схемы под управлением компьютера.

10. По завершению эксперимента остановили коммутационную программу.

Вывод: Изучили принципы составления прикладных программ для

промышленных логических контроллеров на языке FBD пакета CoDeSys.

Создали проект программы. Разработали алгоритм работы блока управления.

Разработали алгоритм работы блока управления. Протестировали работу схемы под управлением компьютера.

Язык функциональных блоков — FBD

Язык программирования FBD (Function Block Diagram) является составной частью стандарта IEC-61131 и так же входит в стандарт IEC-61499.

Язык программирования FBD представляет собой графический язык, спроектированный для описания процессов прохождения сигналов. Язык FBD имеет сходство с электрическими схемами, потому инженеры — схемотехники, не имея опыта программирования, легко смогут составить на его базе электрическую схему системы управления.

FBD являетсяграфическим языком и применяется для построения комплексных процедур, состоящих из различных функциональных библиотечных блоков – арифметических, тригонометрических, регуляторов, мультиплексоров и т.д. Он подходит также для управления непрерывными процессами и процессами регулирования. При этом осуществляется представление функций посредством блоков, связанных между собой. Соединения между выходами функциональных блоков в явном виде могут отсутствовать, а выход блока может соединяться со входами одного или нескольких блоков.

Основными объектами языка FBD являютсяэлементарные функции и элементарные функциональные блоки (ФБ). Они находятся в библиотеке, логика их работы (программа) написана на языке С и не может быть изменена в редакторе FBD (изменять можно только их параметры). Кроме них можно использовать функции и ФБ пользователя, которые конструируются пользователем из элементов языка FBD.

Разработка программы осуществляется с помощью графического редактора посредством формирования блок-схемы из перечисленных выше компонентов, которые объединяются друг с другом либо посредством внешних (фактических) параметров (переменные, соответствующие входам и выходам), либо непосредственно линиями связи – графическими связями.

Идеология программирования на языке FBD подразумевает, что время исполнения каждой программы должно быть вполне определенным, т.е. детерминированным. Другими словами ни одна программа не имеет права зациклиться на неопределенное время, например на ожидании какого-либо события.

FBD — программа очень напоминает функциональную схему электронного устройства. Каждый ФБ имеет фиксированное количество входных точек связи и фиксированное количество выходных точек связи.

FBD — программа описывает функцию между входными и выходными переменными. Эта функция представляется совокупностью элементарных ФБ. Тип каждой переменной должен быть тем же, что и тип соответствующего входа. Входом FBD — блока может быть константа, любая внутренняя, входная или выходная переменная.

Данный язык программирования, помимо прочего, может использоватся для описания шагов и переходов в языке SFC. Функциональные блоки инкапсулируют данные и методы, чем подобны объектно-ориентированным языкам программирования, но они не поддерживают наследование и полиморфизм.

Diplom Consult.ru

Язык FBD (Function Block Diagram) – графический язык программирования высокого уровня, обеспечивающий управление потоками данных всех типов. Позволяет использовать очень мощ­ные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечателен для небольших приложений. Хорош для сложных ве­щей подобно ПИД регуляторам, массивам и т. д. Имеет большую библиотеку блоков. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

Объекты языка FBD:

EFB (Elementary Function Block) – элементарные функции и элементарные функциональные блоки; они находятся в библиоте­ках. Логика обработки в EFB (программа) написана на языке С и не может быть изменена в редакторе FBD. Изменять можно только параметры блоков;

Каждый электрик должен знать:  Коэффициент передачи многозвенной системы

DFB (Derived Function Block) – функции и функциональные блоки пользователя; они конструируются пользователем из EFB;

UDEFB (User Defined Elementary Function Block) – разработан­ные пользователем на языке С; они оформляются как объекты библиотек.

Для EFB, DFB и UDEFB принято общее обозначение – FFB (Functions/Function Block). Каждый из перечисленных объектов представляет собой подпро­грамму, которая помещается в одну из библиотек, используемых при разработке программы работы ПЛК. Таким образом обеспечи­вается возможность вызова и хранения FFB в форме библиотек.

Разработка программы для ПЛК осуществляется с помощью гра­фического редактора FBD посредством формирования блок-схемы из перечисленных выше FFB, которые объединяются друг с другом ли­бо посредством внешних (фактических) параметров FFB (перемен­ные, соответствующие входам и выходам FFB), т. е. таблично, либо непосредственно линиями связи – графическими связями. Редактиро­вание обычно выполняется с помощью мыши или клавиатуры.

Последовательность (очередность) обработки отдельных FFB в программе (в каждой FBD-секции) определяется потоком данных внутри секции.

Теоретически каждая секция может включать любое число FFB и, соответственно, любое число входов и выходов. Однако жела­тельно разделить сложную программу на ряд логических единиц, т. е. на различные секции.

В дополнение к перечисленным выше объектам языка FBD ре­дактор позволяет поместить текст (комментарий) в секцию FBD. На рисунке 7.1 приведен общий вид секции FBD.

Рисунок 7.1 – Представление секции FBD

Элементарные функции и функциональные блоки – ЕFВ

Элементарные функции (EF) не имеют внутренних состояний. Если входные значения одинаковы, значение выхода будет одинаковым для всех вызовов функции (например, сложение двух значений дает одинаковый результат при каждом вызове).

Элементарная функция представляется графически как рамка со входами и одним выходом. Эти входы всегда располагаются слева от рамки, а выход справа.

Название функции, например, тип функции, изображается в центре рамки.

Номер выполнения функции показан справа от типа функции.

Счетчик функции показан над рамкой. Счетчик функции это порядковый номер функции в текущей секции. Счетчики функции не могут изменяться.

Рисунок 7.2 – Графическое изображение элементарной функции

Графическое изображение элементарной функции приведено на рис. 7.2.

Функции не имеют внутренних состояний (условий) – это ком­бинационные схемы. Одним и тем же значениям входных величин будут соответствовать одни и те же значения величин на выходе для всех (неоднократных) исполнений функций. Например, функ­ция сложения двух величин обеспечивает тот же самый результат при каждом (неоднократном) исполнении.

Элементарные функциональные блоки (EFB) имеют внутренние состояния. Если входы имеют одинаковые значения, значение выхода может быть разным для каждого выполнения (например, в счетчике, значение выхода увеличивается на 1).

Элементарный функциональный блок представляется графически как рамка с входами и выходами. Входы всегда располагаются слева от рамки, а выходы справа.

Функциональные блоки могут иметь более одного выхода.

Название функционального блока, например, тип функционального блока, изображается в центре рамки.

Номер выполнения функционального блока показан справа от типа функционального блока. Имя экземпляра показано над рамкой. Имя экземпляра является уникальным идентификатором для функционального блока в проекте. Имя экземпляра создается автоматически и имеет следующую структуру: FBI_n

FBI = Экземпляр Функционального Блока

n = порядковый номер функционального блока в проекте

Это автоматически генерируемое имя может быть изменено для наглядности. Имя экземпляра (максимум 32 символа) должно быть уникальным в пределах всего проекта и не является чувствительным к регистру. Имя экземпляра должно соответствовать общим соглашениям об именовании.

Графическое изображение элементарного функционального блока приведено на рис. 7.3. С левой стороны располагаются вхо­ды, с правой – выходы.

Рисунок 7.3 – Графическое изображение элементарного функционального блока

Все FFB могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом).

Конфигурирование (включение или выключение) параметров EN и ENO осуществляется в диалоговом окне Property (свойства) FFB, которое вызывается посредством команд Object, Property (Объекты, Свойства), или двойным нажатием левой клавиши (ЛК) мыши на изображении FFB.

Если FFB вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые FFB, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые FFB, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0.

Поведение FFB одинаково как в случае вызова FFB с EN = 1, так и при вызове без параметров EN/ENO.

Производные функциональные блокиDFB

Пользовательские (или производные) функциональные блоки DFB являются функциональными блоками, которые сконструированы пользователем из EFB-объектов в среде Concept-DFB.

В DFB не существует различий между функцией и функцио­нальным блоком. Не принимая во внимание их внутреннюю струк­туру, к ним всегда обращаются как к функциональным блокам.

Графическое изображение функционального блока типа DFB приведено на рисунке 7.4.

Рисунок 7.4 – Графическое изображение функционального блока типа DFB

Назначение DFB (DFB_ЕХАМР) представляется внутри блока, а обозначение имени экземпляра DFB (FBI_1_1) – над блоком.

Имя экземпляра устанавливается автоматически, но оно может редактироваться в диалоговом окне свойств DFB. Имя экземпляра должно быть уникальным во всем проекте. Если вводимое имя совпадает с уже существующим, то будет выдано предупреждение, тогда необходимо будет выбрать другое имя. Имя экземпляра должно соответствовать стандарту на имена, в противном случае будет выдано сообщение об ошибке.

Автоматически созданное имя экземпляра будет всегда иметь Структуру

где FBI – блок DFB; n – порядковый номер секции; m – порядко­вый номер DFB-объекта в секции.

При программировании DFB имеется различие между двумя типами переменных: внутренними переменными и входными/выходными переменными.

Внутренними переменными являются переменные, которые используются только внутри логики DFB. Эти переменные могут быть изменены только в среде Concept-DFB. Такое изменение за­тем применяется ко всем экземплярам создаваемого DFB. Разре­шенные типы переменных: нелокализованные (неразмещенные) переменные, нелокализованные многоэлементные (структурные) переменные, константы и литералы.

Нелокализованные переменные, нелокализованные многоэлементные переменные и константы объявляются в редакторе пере­менных (Variable Editor).

Связь. Связи являются соединениями между FFB. Несколько связей могут быть соединены с FFB выходом. Пункты любого такого соединения отмечаются жирной точкой. Входы/выходы, которые будут соединены, должны иметь соответствующие типы данных. Связи могут быть отредактированы в режиме Выбора. Перекрывание с другими объектами разрешается. Связи не могут использоваться для конфигурации контуров, потому что не возможно ясно определить порядок обработки в секции. Контуры должны решаться с помощью фактических параметров.

Несвязанным входам FFB назначается по умолчанию значение ”0”.

Порядок обработки в первую очередь определяется порядком при размещении FFB. Если FFB впоследствии соединяются с помощью графических связей, порядок обработки определяется потоком данных.

Используйте команду меню Objects → View FFB execution order, чтобы просмотреть порядок обработки. Это выполняется с помощью отображения номера выполнения (номер в круглых скобках) после имени экземпляра или номера функции (рисунок 7.5).

Рисунок 7.5 – Порядок обработки

Целенаправленное реверсирование в порядке обработки двух FFB может быть произведено с командой меню Objects → Reverse FFB execution order, но только, если потоковое правило будет не нарушено (рисунок 7.6 и 7.7).

Рисунок 7.6 – Изменение порядка обработки двух сетей, размещенных в контуре

На рисунке 7.6 показано как обмен достигается переключением двух FFB, которые связаны через переменную обратной связи контура.

Рисунок 7.7 – Изменение порядка обработки FFB

На рисунке 7.7 Показано изменение порядка обработки FFB (или сетей), которые обрабатываются согласно порядку размещения.

Операция замены позволяет создание (постепенно, в случае необходимости, если вставляются несколько FFB) другого привилегированного порядка обработки.

FFB внутри одной секции выполняются согласно предопределенному порядку. FFB, которые используют фактические параметры на входах и которым не были распределены никакие значения, работают с начальными значениями этих фактических параметров.

Конфигурирование контуров исключительно через связи не позволяется (рисунок 7.8), потому что не имеется никакой опции для чистого определения потока данных (выход одного FFB является входом следующего FFB, его выход в свою очередь является входом первого).

Рисунок 7.8 – Неразрешенный контур через связи

Такая логика должна быть решена с помощью фактических параметров так, чтобы чистое определение потока данных было возможно (рисунки 7.9 и 7.10)

Рисунок 7.9 – Разрешенный контур (вариант 1)

Рисунок 7.10 – Разрешенный контур (вариант 2)

Позволяются также контуры через несколько фактических параметров. С такими контурами, порядок обработки может управляться с обратным ходом через несколько выполнений, в случае необходимости, команды меню Objects → Reverse FFB execution order (рисунок 7.11).

Рисунок 7.11 – Контур через фактические переменные

Пример 7.1. Использование функциональных блоков RS и TON.

Имеется бак, в который поступает жидкость, и насос для откачки этой жидкости. Бак имеет нижний датчик и верхний датчик уровня жидкости (датчик замыкается и переходит в состояние 1, когда контакты датчика покрыты жидкостью). Имеется реле, запускающее мотор насоса. Требуется реализовать следующий алгоритм управления насосом.

1. При срабатывании датчика верхнего уровня жидкости через 3 секунды включается мотор.

2. Он работает, пока уровень жидкости не уменьшился до уровня нижнего датчика, затем мотор отключается.

Обозначения контактов и обмоток реле:

vu – верхний датчик уровня

nu – нижний датчик уровня

zd – реле запуска мотора насоса

На рисунке 7.12 приведено решение данной задачи. На рисунке 7.13 – окно редактора переменных.

Рисунок 7.12 – Решение на языке FBD к примеру 7.1

Язык функциональных блоковых диаграмм

Язык функциональных блоковых диаграмм (FBD, functional block diagram, диаграмма функциональных блоков) является, так же как и LD, языком графического программирования, использующим аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional blocks, FBs), входы и выходы которых соединены линиями связи (connections). Эти связи, соединяющие выходы одних блоков со входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое «или» и т.д.) и может иметь в общем случае произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков — входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с переменными программы.

Графически в программе каждый функциональный блок представляется обычно прямоугольником с входными и выходными переменными (рис. 2.1.32), внутри которого имеется обозначение функции, выполняемой блоком.

Приведем основные формальные правила языка FBD:

  • • функциональные блоки могут располагаться в поле программы произвольно;
  • • не может быть свободных (несоединенных) входов и выходов функционального блока;
  • • любая связь (NET) может иметь имя переменной;
  • • входы и выходы функциональных блоков, присоединенные к связям, имеющим одинаковые имена, считаются соединенными;

Рис. 2.1.32. Функциональный блок языка FBD

• очередность выполнения блоков в программе: слева направо, сверху вниз.

На входе FBD-блока может быть:

  • • константное выражение;
  • • любая внутренняя или входная переменная;
  • • выходная переменная.

На выходе FBD-блока может быть любая внутренняя или выходная переменная.

Логика программы выводится из соединений между блоками. Иными словами, выход одного блока (одной команды) может использоваться для того, чтобы разрешить другому блоку (другой команде) создать необходимую логику управления.

Программы на языке FBD напоминают электрические принципиальные схемы логических устройств и формально соблюдают алгоритмы их работы. На рис. 2.1.33 для сравнения показан один и тот же элемент программы, созданный при помощи языков LD и FBD для реализации логической функции нескольких переменных.

Рис. 2.1.33. Элемент программы, созданной при помощи языка LD и FBD

Язык FBD содержит таймеры, счетчики, триггеры и другие элементы, которые были рассмотрены при описании языка LD. Изображение их в программе на FBD в целом повторяет то, как они выглядят в LD. Несмотря на всю схожесть с электрическими схемами, язык FBD содержит метки, операторы условного и безусловного переходов, которые свойственны традиционным процедурным языкам программирования. В качестве библиотечных блоков используются не только элементарные функции, но и алгоритмы П-, ПИ-, ПИД-регулирования, фильтрации сигналов, стабилизации заданных параметров. Набор из математических и статистических функциональных блоков позволяет просто организовать необходимые вычисления и обработку сигналов.

В табл. 2.1.2 приведены примеры базовых функций языка FBD.

Примеры базовых функций языка FBD

Функции двоичного типа

NOT, AND, OR, XOR, SET, RESET

Функции управления программой

RETURN, GOTO, CALL, TSTART, TSTOP, GSTART, GSTOP

FBD В cреде CoDeSys 2.3.9. Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, — презентация

Презентация была опубликована 7 лет назад пользователемcourses.edu.nstu.ru

Похожие презентации

Презентация на тему: » 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 Конец Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям.

Язык функциональных блоковых диаграмм (FBD) и его применение

Главная задача ПЛК – это выполнение прикладной программы управления технологическим процессом. Очевидно, что незапрограммированный контроллер – это всего лишь пустая железяка, не приносящая никакой пользы человечеству.

Какие программы может выполнять промышленный контроллер? Ответ прост: практически любые. Современный контроллер свободно программируем, т.е. предоставляет разработчику возможность создавать пользовательские программы произвольной структуры без ограничений их функциональности, будь то программа управления пастеризатором на молочном комбинате или управление колонной ректификации на НПЗ. По сути, единственным ограничением здесь может быть объем свободных ресурсов контроллера.

Что нужно, чтобы запрограммировать ПЛК? Грамотный специалист. Во-вторых, персональный компьютер или портативный программатор, подключенный к контроллеру по сети. В-третьих, программный пакет разработки, поставляемый, как правило, за дополнительную плату. Иногда среда разработки входит в состав комплексного ПО для инсталляции и эксплуатации всей системы управления.

Современные средства разработки чрезвычайно функциональны и предлагают разработчику множество возможностей:

1. Разнообразные программные библиотеки, функциональные блоки, готовые процедуры и шаблоны. Использование предподготовленных компонентов сильно ускоряет процесс разработки программного обеспечения для ПЛК.

2. Инструменты для отладки, тестирования и симуляции прикладной программы. Последние позволяют выполнять программу ПЛК на персональном компьютере без загрузки в реальный контроллер.

3. Инструменты для автоматизированного документирования разработанной программы в соответствие с принятыми стандартами.

Но у программиста есть и более мощный инструмент. Дело в том, что современные средства разработки прикладного ПО для промышленных контроллеров, как правило, поддерживают до шести разных языков программирования.

Существует международный стандарт IEC 61131, разработанный Международной Электротехнической Комиссией (МЭК, IEC) и состоящий из восьми частей. Наиболее интересной является третья часть, IEC 61131-3, описывающая языки программирования ПЛК. Первоначальной целью стандарта IEC 61131-3 была унификация языков программирования ПЛК и предоставление разработчикам ряда аппаратно-независимых языков, что, по замыслу создателей стандарта, обеспечило бы простую переносимость программ между различными аппаратными платформами и снимало бы необходимость изучения новых языков и средств программирования при переходе разработчика на новый ПЛК.

К сожалению, цели в полном объеме достигнуты не были. Каждый производитель ПЛК сопровождает свой продукт собственной средой программирования, которая, как правило, не совместима с другими, да и о кросс-платформенности программного кода можно забыть. Тем не менее, в части описания языков программирования стандарт IEC 61131 остается чрезвычайно актуальным и является ориентиром для большинства разработчиков ПЛК.

Какие языки используются для программирования промышленных контроллеров? Ниже приведен краткий обзор языков стандарта.

Язык LD

Язык LD (LAD, Ladder) является графическим языком разработки, программа на котором представляет собой аналог релейной схемы. Пример программы на данном языке приведен на рис. 1. По идеи авторов стандарта, такая форма представления программы облегчит переход инженеров из области релейной автоматики на ПЛК.

К недостаткам данного языка можно отнести то, что по мере увеличения количества «реле» в схеме она становится сложнее для интерпретации, анализа и откладки. Еще один недостаток языка LD заключается в следующем: язык, построенный по аналогии с релейными схемами, может быть эффективно использован только для описания процессов, имеющих дискретный (двоичный) характер; для обработки «непрерывных» процессов (с множеством аналоговых переменных) такой подход теряет смысл.

Рис. 1. Язык релейных диаграмм LD.

Язык FBD

Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков – входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.

Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата.

Рис.2. Функциональная схема FBD.

Язык SFC

Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с другими языками (обычно с ST и IL), является графическим языком, в котором программа описывается в виде схематической последовательности шагов, объединенных переходами. Язык SFC построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131-3. Пример программы на языке SFC приведен на рис. 3.

Наиболее простым и естественным образом на языке SFC описываются технологические процессы, состоящие из последовательно выполняемых шагов, с возможностью описания нескольких параллельно выполняющихся процессов, для чего в языке имеются специальные символы разветвления и слияния потоков (дивергенции и конвергенции, в терминах стандарта IEC 61131-3).

Шаги последовательности располагаются вертикально сверху вниз. На каждом шаге выполняется определенный перечень действий (операций). При этом для описания самой операции используются другие языки программирования, такие как IL или ST.

Действия (операции) в шагах имеют специальные классификаторы, определяющие способ их выполнения внутри шага: циклическое выполнение, однократное выполнение, однократное выполнение при входе в шаг и т.д. В сумме таких классификаторов насчитывается девять, причем среди них есть, например, классификаторы так называемых сохраняемых и отложенных действий, заставляющие действие выполняться даже после выхода программы из шага.

После того, как шаг выполнен, управление передается следующему за ним шагу. Переход между шагами может быть условным и безусловным. Условный переход требует выполнение определенного логического условия для передачи управления на следующий шаг; пока это условие не выполнено программа будет оставаться внутри текущего шага, даже если все операции внутри шага уже выполнены. Безусловный переход происходит всегда после полного выполнения всех операций на данном шаге. С помощью переходов можно осуществлять разделение и слияние ветвей последовательности, организовать параллельную обработку нескольких ветвей или заставить одну выполненную ветвь ждать завершения другой.

Как и любому другому языку, SFC свойственны некоторые недостатки. Хотя SFC может быть использован для моделирования конечных автоматов, его программная модель не совсем удобна для этого. Это связано с тем, что текущее состояние программы определяется не переменной состояния, а набором флагов активности каждого шага, в связи с чем при недостаточном контроле со стороны программиста могут оказаться одновременно активными несколько шагов, не находящихся в параллельных потоках.

Еще одно неудобство языка связано с тем, что шаги графически располагаются сверху вниз, и переход, идущий в обратном направлении, изображается в неявной форме, в виде стрелки с номером состояния, в которое осуществляется переход.

Рис. 3. Язык последовательных функциональных схем SFC.

Язык ST

Язык ST (Structured Text, Структурированный Текст) представляет собой язык высокого уровня, имеющий черты языков Pascal и Basic. Данный язык имеет те же недостатки, что и IL, однако они выражены в меньшей степени. Пример программы на языке ST приведен на рис. 4.

С помощью ST можно легко реализовывать арифметические и логические операции (в том числе, побитовые), безусловные и условные переходы, циклические вычисления; возможно использование как библиотечных, так и пользовательских функций. Язык также интерпретирует более 16 типов данных.

Язык ST может быть освоен технологом за короткий срок, однако текстовая форма представления программ служит сдерживающим фактором при разработке сложных систем, так как не дает наглядного представления ни о структуре программы, ни о происходящих в ней процессах.

Рис. 4. Язык структурированного текста ST.

Язык IL

Язык IL (Instruction List, Список Команд) представляет собой ассемблероподобный язык, достаточно несложный по замыслу авторов стандарта, для его практического применения в задачах промышленной автоматизации пользователем, не имеющим, с одной стороны, профессиональной подготовки в области программирования, с другой стороны, являющимся специалистом в той или иной области производства. Однако, как показывает практика, такой подход себя не оправдывает.

Ввиду своей ненаглядности, IL практически не используется для программирования комплексных алгоритмов автоматизированного управления, но часто применяется для кодирования отдельных функциональных блоков, из которых впоследствии складываются схемы FBD или CFC. При этом IL позволяет достичь высокой оптимальности кода: программные блоки, написанные на IL, имеют высокую скорость исполнения и наименее требовательны к ресурсам контроллера.

Язык IL имеет все недостатки, которые присущи другим низкоуровневым языкам программирования: сложность и высокую трудоемкость программирования, трудность модификации написанных на нем программ, малую степень «видимого» соответствия исходного текста программы и решаемой задачи.

Пример программы на языке IL приведен на рис. 5.

Рис. 5. Язык инструкций IL.

Многие производители инструментальных средств, опирающиеся на стандарт IEC, не ограничиваются поддержкой рассмотренных выше пяти языков стандарта. Можно выделить, как минимум, еще один язык визуального программирования, который довольно популярен среди разработчиков.

Язык CFC

Язык CFC (Continuous Flow Chart) – еще один высокоуровневый язык визуального программирования. По сути, CFC – это дальнейшее развития языка FBD. Этот язык был специально создан для проектирования систем управления непрерывными технологическими процессами.

Проектирование сводится к выбору из библиотек готовых функциональных блоков, их позиционированию на экране, установке соединений между их входами и выходами, а также настройке параметров выбранных блоков. В отличие от FBD, функциональные блоки языка CFC выполняют не только простые математические операции, а ориентированы на управление целыми технологическими единицами. Так в типовой библиотеке CFC блоков находятся комплексные функциональные блоки, реализующие управление клапанами, моторами, насосами; блоки, генерирующие аварийные сигнализации; блоки PID-регулирования и т.д. Вместе с тем доступны и стандартные блоки FBD. Унаследовав от FBD саму концепцию программирования, язык CFC в наибольшей степени ориентирован на сам технологический процесс, позволяя разработчику абстрагироваться от сложного математического аппарата.

Рис. 6. Среда проектирования на языке CFC системы Simatic PCS7.

CFC прост в освоении, и при этом позволяет разрабатывать сложнейшие алгоритмы автоматизированного управления без каких-либо специфических знаний других языков программирования.

Добавить комментарий