Адаптеры (Adapter Interfaces)
Источник
Основано на официальной документации Eclipse 4diac, лицензия EPL-2.0.
Адаптер — механизм IEC 61499 для объединения нескольких событийных и данных-соединений в одно адаптерное соединение. Это упрощает FB-сети и обеспечивает повторное использование интерфейсных шаблонов.
Когда использовать адаптеры
- Несколько FB обмениваются одинаковым набором событий и данных (например, Init/Read/Data)
- Нужно обеспечить полиморфизм: разные реализации одного интерфейса
- Сложная FB-сеть с большим числом перекрёстных соединений
Концепция
Адаптер определяет два интерфейса:
| Сторона | Название | Описание |
|---|---|---|
| Socket (розетка) | Использующая сторона | FB, который вызывает операции через адаптер |
| Plug (вилка) | Предоставляющая сторона | FB, который реализует операции адаптера |
Соединение Socket ↔ Plug заменяет все индивидуальные событийные и данные-соединения, определённые в типе адаптера.
Создание адаптерного типа в IDE

- File → New → Type → Adapter Type
- Задайте имя (например,
SensorAdapter) - В редакторе интерфейса определите:
- Event Inputs (от Socket к Plug): например,
INIT,READ - Event Outputs (от Plug к Socket): например,
INITO,IND - Data Inputs (от Socket к Plug): например,
CONFIG(STRING) - Data Outputs (от Plug к Socket): например,
VALUE(REAL),STATUS(BOOL)
- Event Inputs (от Socket к Plug): например,
Пример: SensorAdapter
Adapter Type: SensorAdapter
─────────────────────────────────
Socket → Plug:
Events: INIT, READ
Data: CONFIG (STRING)
Plug → Socket:
Events: INITO, IND
Data: VALUE (REAL), STATUS (BOOL)
Использование адаптера в FB
Добавление Socket в FB-интерфейс

- Откройте тип FB (Basic или Composite)
- В редакторе интерфейса, раздел Sockets
, нажмите Add
- Выберите тип адаптера (
SensorAdapter) - Задайте имя экземпляра (например,
Sensor1)
Добавление Plug в другой FB
- Аналогично, в разделе Plugs
, добавьте тот же тип адаптера
- Задайте имя (например,
SensorPlug)
Соединение в Application Editor
В Application Editor адаптерные порты отображаются как треугольники. Соедините Socket одного FB с Plug другого перетаскиванием — одно соединение заменит все пары событий и данных.
