Введение
Промышленный стандарт Modbus RTU поверх RS-485 остаётся основой для сбора данных с датчиков температуры, давления, расходомеров и счётчиков электроэнергии на заводах, в насосных станциях и тепличных хозяйствах. Однако классическая схема «PLC → SCADA → человек» требует написания бекенда (C#, Python, Node-RED), настройки MQTT-брокера и выделенного сервера для алертов. ASI Biont меняет эту парадигму: AI-агент подключается к вашим Modbus-устройствам через Hardware Bridge, самостоятельно пишет код опроса регистров и отправляет данные в облако для мониторинга и уведомлений — всё через диалог в чате, без панелей управления и кнопок «добавить устройство».
Что такое Modbus RTU (RS-485) и зачем его подключать к AI-агенту
Modbus RTU — протокол последовательной передачи данных, работающий поверх физического интерфейса RS-485. В одной сети может быть до 247 slave-устройств (датчиков, счётчиков, исполнительных механизмов), а master (обычно ПЛК или ПК) опрашивает их по очереди. Глобальная установленная база устройств Modbus RTU оценивается в десятки миллионов единиц (источник: Modbus Organization, 2023). Подключение такого парка к AI-агенту даёт:
- Автоматический сбор данных — AI опрашивает регистры по заданному расписанию.
- Интеллектуальную аналитику — AI ищет аномалии (скачки температуры, падение давления) и отправляет алерты в Telegram.
- Управление без кода — достаточно описать задачу на естественном языке.
Как ASI Biont подключается к Modbus RTU (RS-485)
ASI Biont не имеет прямого доступа к COM-портам пользователя, так как выполняется в облаке (Railway). Для работы с RS-485 используется Hardware Bridge — небольшое приложение bridge.py, которое пользователь запускает на своём ПК или Raspberry Pi (Windows/Linux/macOS). Bridge подключается к ASI Biont через HTTP long polling и транслирует команды AI в последовательный порт.
Схема подключения:
[Датчик Modbus RTU] ←RS-485→ [USB-RS485 конвертер] ←USB→ [ПК с bridge.py] ←HTTPS→ [ASI Biont (облако)]
Параметры настройки bridge.py:
- Порт: COM3 (Windows) или /dev/ttyUSB0 (Linux)
- Baud rate: 9600 (стандарт для большинства промышленных счётчиков)
- Data bits: 8, Stop bits: 1, Parity: None
AI использует industrial_command tool с протоколом serial://, например:
industrial_command tool: serial://COM3?baud=9600&command=read_holding_registers&slave=1&address=0&count=2
Bridge выполняет команду через pyserial и возвращает результат.
Реальный сценарий: контроль насосной станции с тремя датчиками
Задача
На объекте установлены:
- Датчик давления (Modbus slave ID=1, регистр 0 — давление в бар, регистр 1 — статус)
- Датчик температуры (Modbus slave ID=2, регистр 2 — температура в °C)
- Счётчик моточасов насоса (Modbus slave ID=3, регистр 10 — часы работы)
Требуется: каждые 5 минут считывать показания, если давление падает ниже 2.5 бар — отправить алерт в Telegram, если температура превышает 80°C — остановить насос (запись в регистр 3 slave=1).
Диалог в чате с AI-агентом
Пользователь:
«Подключись к моей насосной станции через Hardware Bridge. Порт COM3, скорость 9600. Опрашивай каждые 5 минут датчики: slave 1 регистры 0-1 (давление и статус), slave 2 регистр 2 (температура), slave 3 регистр 10 (моточасы). Если давление < 2.5 бар — отправь мне сообщение в Telegram, если температура > 80°C — запиши 1 в регистр 3 slave 1 (остановка насоса).»
AI-агент генерирует и выполняет код (фрагмент):
import time
import serial
from pymodbus.client import ModbusSerialClient
from pymodbus.exceptions import ModbusException
import requests
# Настройка Modbus RTU через bridge (локально на ПК пользователя)
# Поскольку bridge.py уже запущен, AI отправляет команды через HTTP API bridge
BRIDGE_URL = "http://localhost:8080" # адрес bridge.py
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
def read_modbus(slave_id, address, count=1):
"""Читает регистры через bridge"""
payload = {
"port": "COM3",
"baud": 9600,
"command": "read_holding_registers",
"slave": slave_id,
"address": address,
"count": count
}
resp = requests.post(f"{BRIDGE_URL}/command", json=payload)
return resp.json()["values"]
def write_modbus(slave_id, address, value):
"""Записывает регистр через bridge"""
payload = {
"port": "COM3",
"baud": 9600,
"command": "write_register",
"slave": slave_id,
"address": address,
"value": value
}
requests.post(f"{BRIDGE_URL}/command", json=payload)
def send_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": TELEGRAM_CHAT_ID, "text": message})
while True:
try:
# Давление (slave 1, регистр 0)
pressure = read_modbus(1, 0)[0] / 100.0 # предположим, масштаб 0.01 бар
# Статус (slave 1, регистр 1)
status = read_modbus(1, 1)[0]
# Температура (slave 2, регистр 2)
temperature = read_modbus(2, 2)[0] / 10.0 # масштаб 0.1°C
# Моточасы (slave 3, регистр 10)
hours = read_modbus(3, 10)[0]
print(f"Давление: {pressure} бар, Статус: {status}, Темп: {temperature}°C, Моточасы: {hours}")
if pressure < 2.5:
send_telegram(f"⚠ Авария: давление {pressure} бар ниже нормы!")
if temperature > 80:
send_telegram(f"🔥 Критическая температура {temperature}°C — остановка насоса!")
write_modbus(1, 3, 1) # остановка
time.sleep(300) # 5 минут
except ModbusException as e:
send_telegram(f"Ошибка Modbus: {e}")
time.sleep(60)
AI самостоятельно подставляет параметры порта, slave ID и адреса регистров. Пользователь не пишет ни одной строки кода — только описывает логику.
Результат
- Данные собираются в облаке ASI Biont.
- При падении давления AI отправляет алерт в Telegram за 1–2 секунды.
- При перегреве насос автоматически отключается.
- Вся обработка (логирование, алерты, управление) выполняется AI-агентом — не нужен отдельный SCADA-сервер.
Почему это выгодно
| Критерий | Классический подход (PLC + SCADA) | ASI Biont + Modbus RTU |
|---|---|---|
| Время настройки | 2–5 дней (написание бекенда, отладка) | 5 минут (диалог в чате) |
| Стоимость инфраструктуры | Сервер, лицензии SCADA, MQTT-брокер | Бесплатный bridge.py + облако AI |
| Изменение логики | Правка кода, перезагрузка | Изменить описание в чате |
| Поддержка новых устройств | Разработка драйвера | AI сам пишет код через execute_python |
Другие сценарии интеграции
Помимо насосной станции, ASI Biont можно использовать с Modbus RTU для:
- Автоматизации теплицы: опрос датчиков влажности почвы (регистры 0–4), управление клапанами полива (запись в регистр 10).
- Удалённого мониторинга склада: считывание показаний счётчиков электроэнергии (регистры 30001–30010) и формирование отчётов.
- Контроля компрессорной станции: мониторинг температуры подшипников (регистры 20–25), автоматический останов при вибрации.
Как начать: пошаговая инструкция
- Подготовьте оборудование:
- Датчик/счётчик с интерфейсом Modbus RTU (RS-485).
- USB-RS485 конвертер (например, FTDI USB-RS485 или Waveshare).
-
ПК или Raspberry Pi для запуска bridge.py.
-
Скачайте bridge.py с asibiont.com (ссылка в разделе документации).
-
Запустите bridge.py с параметрами:
bash python bridge.py --port COM3 --baud 9600 -
Откройте чат с AI-агентом на asibiont.com и опишите задачу:
«Подключись к моему счётчику воды через bridge на COM3, скорость 9600, slave ID=1. Каждые 10 минут считывай регистры 0–2 (расход, давление, температура) и отправляй мне в Telegram, если расход превышает 100 л/мин.»
-
AI сделает всё остальное — сгенерирует код, выполнит его, и вы начнёте получать данные через 1 минуту.
Заключение
Modbus RTU (RS-485) — это не устаревший протокол, а надёжная основа для промышленной автоматизации. ASI Biont устраняет главный барьер — необходимость писать бекенд для опроса регистров и настройки алертов. Благодаря Hardware Bridge и execute_python AI-агент подключается к любому Modbus-устройству за секунды, а вся обработка данных и уведомления берёт на себя облачный AI-конструктор.
Попробуйте интеграцию уже сегодня: перейдите на asibiont.com, запустите bridge.py и опишите в чате свою задачу. Никаких панелей управления — только диалог с AI.
Комментарии