Размер базы InfluxDB при длительной записи
Замер: CM4 (RK3566), telegraf 1.28 → InfluxDB 2.7, датчик DL-303 по Modbus TCP, 5 значений (CO, CO2, вл ажность, температура, точка росы), опрос раз в 1 с, 23–25.10.2026.
Замер: CM4 (RK3566), telegraf 1.28 → InfluxDB 2.7, датчик DL-303 по Modbus TCP, 5 значений (CO, CO2, вл ажность, температура, точка росы), опрос раз в 1 с, 23–25.10.2026.
Когда разрабатываешь систему мониторинга или SCADA, часто нужно протестировать опрос датчиков — но реального оборудования под рукой нет. Или нужно показать демо заказчику без физических устройств. Или хочется отладить логику мастера не выезжая на объект.
Именно для этого мы написали modbus_slave — эмулятор Modbus RTU slave устройств на C, который работает на Linux и Windows, не требует зависимостей и умеет отдавать реальные данные из файлов.
Идея простая: один процесс слушает RS-485 шину и отвечает на запросы от любого из 30 адресов. Для мастера это выглядит как несколько физических устройств на линии — он не видит разницы.
Мастер (PC/ПЛК) RS-485 шина modbus_slave (NAPI2)
mbpoll -a 1 ──────────────────────────► slave ID 1 → /tmp/cpu.dat
mbpoll -a 2 ──────────────────────────► slave ID 2 → /tmp/time.dat
mbpoll -a 3 ──────────────────────────► slave ID 3 → random
Регистры читаются из обычных текстовых файлов — одно число на строку.
Файлы живут в /tmp (tmpfs — RAM диск), SD карта не изнашивается.
# Скачать статический бинарь
wget https://github.com/lab240/modpoll-slave/raw/main/bin/modbus_slave_aarch64
chmod +x modbus_slave_aarch64
# Запустить — 3 датчика, порт ttyS7
./modbus_slave_aarch64 -p /dev/ttyS7 -b 115200 -a 3
modbus_slave.exe -p COM4 -b 115200 -a 3
mbpoll -m rtu -b 115200 -P none -a 1 -r 1 -c 20 /dev/ttyUSB0