Перейти к основному содержимому

Разработка пользовательских функциональных блоков

Eclipse 4diac позволяет создавать собственные типы функциональных блоков для специфических задач.

Типы создаваемых FB

ТипКогда использовать
Basic FBПростая логика с конечным автоматом (ECC)
Composite FBОбъединение существующих FB в один блок
Service Interface FBВзаимодействие с I/O, сетью, ОС

Создание Basic FB в 4diac IDE

Шаг 1: Новый тип FB

  1. В палитре типов: правый клик → New FB Type
  2. Выберите Basic FB
  3. Введите имя, например MY_PID_CONTROLLER

Шаг 2: Определение интерфейса

В редакторе FB определите:

События:

ИмяТипОписание
INITEIИнициализация
REQEIВычислить выход
INITOEOИнициализация завершена
CNFEOВычисление завершено

Данные:

ИмяТипОписание
SPREALУставка (setpoint)
PVREALТекущее значение (process variable)
KPREALКоэффициент пропорциональности
OUTREALВыходное значение

Шаг 3: ECC (конечный автомат)

[START] ──INIT──► [INITIALIZED] ──REQ──► [COMPUTE]
▲ │
└───────────────────────┘
(возврат в INITIALIZED)

Действия в состоянии COMPUTE:

  • Алгоритм: COMPUTE_PID
  • Событие: CNF

Шаг 4: Алгоритм на Structured Text

ALGORITHM COMPUTE_PID
VAR
error: REAL;
END_VAR

error := SP - PV;
OUT := KP * error;
// Для полного ПИД добавьте интегральную и дифференциальную составляющие

END_ALGORITHM

Шаг 5: Сохранение и использование

Сохраните тип FB (Ctrl+S). Теперь его можно перетащить в любое приложение из Type Library.

Service Interface FB (для I/O и сети)

SIFB определяется в XML (.fbt файл) и реализуется на C++ в FORTE:

<!-- MY_SENSOR.fbt -->
<FBType Name="MY_SENSOR">
<InterfaceList>
<EventInputs>
<Event Name="INIT" />
<Event Name="REQ" With="OUT" />
</EventInputs>
<EventOutputs>
<Event Name="INITO" />
<Event Name="IND" With="OUT" />
</EventOutputs>
<OutputVars>
<VarDeclaration Name="OUT" Type="REAL" />
</OutputVars>
</InterfaceList>
</FBType>

Реализация в FORTE на C++ находится в:

forte/src/modules/my_module/MY_SENSOR.cpp

Тестирование FB

Используйте встроенный тестовый фреймворк 4diac:

  1. Создайте тестовое приложение с вашим FB
  2. Запустите на FORTE
  3. Используйте Watch Mode для инспекции значений
  4. Принудительно устанавливайте значения входов через Force Mode

Следующий шаг

Отладка приложений