СFD  (Canny Function Diagram) — графический язык программирования, концептуально близкий к языку функциональных блоковых диаграмм (FBD). Язык частично совместим со стандартом МЭК 61131-3. Предназначен для программирования программируемых логических контроллеров (ПЛК). Программа на языке CFD представлена в виде функциональной диаграммы. Функциональная диаграмма формируется из библиотечных блоковых элементов - функциональных блоков, а также вспомогательных элементов, соединенных между собой линиями (сетями). Сети могут быть именованы.

Функциональные блоки языка:

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

К вспомогательным блокам относятся:

  • константы – хранят и передают записанное число;
  • регистры записи – используются для передачи значений в ПЛК;
  • регистры чтения– используются для чтения информации от ПЛК.

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

Для исполнения программ на языке CFD в режиме симуляции и записи их в ПЛК применяется распространяемая бесплатно среда разработки CannyLab[1].

Язык CFD имеет высокий уровень абстракции, скрывает от пользователя технические детали принципов работы электронных схем, в следствие чего имеет достаточно низкий порог вхождения в разработку[2].

Пример программы на языке CFD (функциональная диаграмма):

  1. На вход блока №1 "Умножение" поступает информация из регистра "Контроля наличия питания +5В при подключении по USB"
  2. На вход блока блока №1 "Умножение" поступает значение константы "2".
  3. Блок №1 "Умножение" производит операцию умножения.
  4. Значение с выхода блока №1 "Умножение" поступает на вход блока №2 "Логическое НЕ".
  5. Блока №2 "Логическое НЕ" производит инверсию поступившего на вход значения.
  6. Значение с выхода блока №2 "Логическое НЕ" поступает в "Регистр включения зеленого светодиода"
  7. Если на вход "Регистра включения зеленого светодиода" поступает значение "1" у контроллера включается зеленый светодиод, если "0" – выключается.
Пример функциональной диаграммы на языке CFD
Пример функциональной диаграммы на языке CFD

См. также править

Языки программирования стандарта МЭК 61131-3:

  • FBD — Функционально блоковые диаграммы
  • LD — Релейно-Контактные Схемы
  • IL — Список Инструкций
  • SFC — Последовательностные Функциональные Диаграммы
  • ST — Структурированный Текст

Ссылки править

Примечания править