СFD (Canny Function Diagram) — графический язык программирования, концептуально близкий к языку функциональных блоковых диаграмм (FBD). Язык частично совместим со стандартом МЭК 61131-3. Предназначен для программирования программируемых логических контроллеров (ПЛК). Программа на языке CFD представлена в виде функциональной диаграммы. Функциональная диаграмма формируется из библиотечных блоковых элементов - функциональных блоков, а также вспомогательных элементов, соединенных между собой линиями (сетями). Сети могут быть именованы.
Функциональные блоки языка:
выполняют какую-либо функцию (например, логические операции, арифметические операции, генерацию сигнала, функцию счетчика и т.п.) могут иметь или не иметь вход; обязательно имеют выход.
К вспомогательным блокам относятся:
константы – хранят и передают записанное число; регистры записи – используются для передачи значений в ПЛК; регистры чтения– используются для чтения информации от ПЛК.
Выполнение программы на языке CFD представляет собой последовательное циклическое вычисление элементов диаграммы. Как правило порядок вычисления устанавливается с верху в низ, слева на право.
Для исполнения программ на языке CFD в режиме симуляции и записи их в ПЛК применяется распространяемая бесплатно среда разработки CannyLab.
Язык CFD имеет высокий уровень абстракции, скрывает от пользователя технические детали принципов работы электронных схем, в следствие чего имеет достаточно низкий порог вхождения в разработкуШиколенко И.А. Перспективы обучения школьников и студентов программированию микроконтроллеров с помощью языка функциональных блоковых диаграмм на примере языка CFD // Оригинальные исследования (ОРИС). — 2020. — № 6. — С. 218-223.
Пример программы на языке CFD (функциональная диаграмма):
На вход блока №1 "Умножение" поступает информация из регистра "Контроля наличия питания +5В при подключении по USB" На вход блока блока №1 "Умножение" поступает значение константы "2". Блок №1 "Умножение" производит операцию умножения. Значение с выхода блока №1 "Умножение" поступает на вход блока №2 "Логическое НЕ". Блока №2 "Логическое НЕ" производит инверсию поступившего на вход значения. Значение с выхода блока №2 "Логическое НЕ" поступает в "Регистр включения зеленого светодиода" Если на вход "Регистра включения зеленого светодиода" поступает значение "1" у контроллера включается зеленый светодиод, если "0" – выключается.
См. также Языки программирования стандарта МЭК 61131-3:
FBD — Функционально блоковые диаграммы LD — Релейно-Контактные Схемы IL — Список Инструкций SFC — Последовательностные Функциональные Диаграммы ST — Структурированный Текст
Ссылки
Бесплатный редактор-симулятор СFD Описание Языка CFD на сайте разработчика
Примечания
Категория:Языки программирования по алфавиту Категория:Программируемые логические контроллеры