Arduino с Eclipse 4diac
Arduino не поддерживает запуск FORTE напрямую (слишком мало RAM). Для интеграции используют один из следующих подходов.
Подход 1: Arduino как I/O расширитель
Arduino подключается к Raspberry Pi/ПК через Serial/USB и передаёт данные. FORTE работает на хост-устройстве.
Arduino (GPIO/Analog) ──[USB/Serial]──► RPi (FORTE) ──[MQTT]──► IDE
Прошивка Arduino (Firmata):
#include <Firmata.h>
void setup() { Firmata.begin(57600); }
void loop() { Firmata.processInput(); }
В FORTE: используйте SUBSCRIBE_1 для получения данных через Serial bridge.
Подход 2: Arduino + MQTT (ESP8266/ESP32)
Для WiFi-плат (ESP8266, ESP32) используйте MQTT-библиотеку:
#include <PubSubClient.h>
// Arduino публикует данные → MQTT → 4diac FORTE SUBSCRIBE
client.publish("sensors/temp", String(temperature).c_str());
В 4diac: SUBSCRIBE_1.ID = "mqtt://broker#sensors/temp"
Подход 3: Modbus RTU от Arduino
Arduino может эмулировать Modbus RTU slave:
#include <ModbusRTUSlave.h>
// Регистры с данными датчиков
holdingRegisters[0] = (uint16_t)(temperature * 10);
Через шлюз RS485→TCP: CLIENT_1.ID = "modbus[gateway_ip:502,1,3,0,4]"
Рекомендация
Для новых проектов предпочтительнее ESP32 — он поддерживает WiFi, имеет больше ресурсов и легко интегрируется с MQTT.