Шаг 2 — Распределённые приложения
Этот туториал продолжает приложение Blinking из Шага 1 (Начало работы). Мы добавим счётчик — подсчёт количества миганий — и разместим его на втором устройстве с FORTE. Это ключевая особенность IEC 61499: распределение логики между несколькими устройствами.

Расширение приложения
Чтобы считать мигания, нужно добавить 2 новых FB в редактор приложения BlinkTestApp.
Перетащите из Palette (папка events):
E_PERMITE_CTU
Создайте соединения между FB, как показано на рисунке.
Соединения событий (event) и данных (data) нельзя смешивать.

Добавление второго устройства
Перейдите в редактор System Configuration (BlinkTest) и добавьте второе устройство из Palette. Счётчик будет работать на нём.
- Перетащите из Palette устройство FORTE_PC рядом с существующим.
- Переименуйте его в Counter.
- Задайте адрес
localhost:61500(устройства не могут иметь одинаковый адрес). - Переименуйте ресурс в Counter_RES.

Вернитесь в редактор приложения BlinkTestApp и замапируйте два новых FB на ресурс Counter_RES. После маппинга появятся пунктирные соединения между устройствами.

Настройка коммуникации между устройствами
Откройте редактор ресурса Testee.Blinky_RES или Counter.Counter_RES. Вы увидите неполные FB у E_SR или E_PERMIT — они символизируют разрывы соединений между устройствами. Нам нуж но добавить коммуникационные FB.

Настройка части Blinky
Перейдите в редактор ресурса Testee.Blinky_RES.
Перетащите из Palette (папка net) FB PUBLISH_1 и настройте соединения. FB PUBLISH нужно инициализировать — лучше подключить его событие INIT напрямую к START.

Установите:
QI = 1ID = "239.0.0.1:61000"(UDP multicast адрес для передачи данных)
Настройка части Counter
Перейдите в редактор ресурса Counter.Counter_RES.
Перетащите из Palette (папка net) FB SUBSCRIBE_1 и настройте соединения. FB SUBSCRIBE тоже нужно инициализировать.

Установите:
QI = 1ID = "239.0.0.1:61000"(тот же адрес, что у PUBLISH)
PUBLISH_X отправляет сообщения по сети, SUBSCRIBE_X их принимает. Число X — количество передаваемых элементов данных. В нашем случае передаётся 1 значение, поэтому используем PUBLISH_1 / SUBSCRIBE_1.
Значение ID задаёт UDP multicast адрес (239.0.0.1) и порт (61000). Это не связано с адресами localhost:61499 / localhost:61500, которые используются для управления устройствами через TCP.
Запуск обоих устройств
Перейдите в Deployment Perspective.
- Установите Port 61499 и нажмите Launch Local 4diac FORTE.
- Установите Port 61500 и нажмите Launch Local 4diac FORTE ещё раз.
- Убедитесь, что в консоли отображается путь к FORTE и кнопка Terminate активна.
- Выберите оба устройства Counter и Testee в списке развёртывания.
- Нажмите кнопку Deploy.
- Убедитесь, что в Deployment Console нет красных предупреждений.

Проверка работы
Откройте Monitor Mode и наблюдайте за значениями. Счётчик должен увеличиваться каждый раз, когда мигает индикатор.

Что дальше?
- Шаг 3 — Удалённое развёртывание (Ларус) — перенос приложения на реальное устройство
- Шаг 4 — Создание типов FB — создание собственных функциональных блоков