Modbus RTU (RS-485) + ASI Biont: подключаем промышленные контроллеры, датчики и клапаны без единой строки кода

Введение

Промышленная автоматизация — это мир, где Modbus RTU по RS-485 остаётся золотым стандартом. Десятки тысяч контроллеров, датчиков температуры, давления, расходомеров, клапанов и насосов по всему миру общаются именно по этой шине. Но чтобы собрать с них данные, настроить мониторинг или управление, обычно приходится писать код, настраивать SCADA-системы или покупать дорогие шлюзы. ASI Biont меняет правила игры: вы просто описываете в чате, к какому устройству подключиться, и AI-агент сам пишет интеграцию. В этой статье — пошаговое руководство по подключению Modbus RTU (RS-485) к ASI Biont: от схемы до реального сценария управления клапаном через Telegram. Никакого кодирования вручную — только диалог с AI.

Что такое Modbus RTU (RS-485) и зачем его подключать к AI-агенту

Modbus RTU — один из старейших и самых надёжных промышленных протоколов. Данные передаются в двоичном формате (RTU — Remote Terminal Unit) по физическому интерфейсу RS-485, который обеспечивает связь на расстоянии до 1200 метров и устойчивость к помехам. Типичная сеть — мастер (обычно ПЛК или компьютер) и до 247 слейвов (датчиков, исполнительных механизмов).

Проблема: чтобы прочитать регистр с датчика или записать значение в контроллер клапана, нужно:
1. Знать адрес слейва, номер регистра (holding register, input register, coil).
2. Настроить COM-порт (baud rate, parity, stop bits).
3. Написать код на Python/C++/C# с использованием библиотеки pymodbus или libmodbus.
4. Разобрать ответ (обычно 2 байта данных).
5. Реализовать логику мониторинга и уведомлений.

Решение с ASI Biont: вы в чате пишете: «Подключись к Modbus RTU на COM3, 9600, 8N1, считай holding register 1 с адреса 1 каждые 5 секунд и отправляй в Telegram, если температура > 80°C». AI-агент сам генерирует код, запускает его на сервере (через execute_python) или отправляет команды через Hardware Bridge (bridge.py на вашем ПК), который напрямую общается с COM-портом. Всё — без единой строки кода с вашей стороны.

Какой способ подключения используется

Для Modbus RTU (RS-485) ASI Biont использует два основных способа:

Способ Когда применять Как работает
Hardware Bridge (bridge.py) Устройство подключено к COM-порту вашего ПК через USB-RS485 конвертер. Вы запускаете bridge.py на своём ПК (Windows/Linux/macOS). Bridge подключается к ASI Biont через WebSocket (единственный канал). AI отправляет команду через industrial_command с протоколом serial:// — bridge читает/пишет в COM-порт через pyserial. Данные передаются в hex-формате (например, data="010300000001840A" — Modbus RTU запрос). Bridge выполняет атомарную операцию: отправляет запрос в порт и сразу читает ответ.
execute_python (облачный sandbox) Устройство доступно по сети (например, Ethernet-RS485 шлюз), или вы хотите использовать библиотеку pymodbus напрямую через TCP-to-RTU. AI пишет Python-скрипт с pymodbus, который выполняется в sandbox-окружении на сервере ASI Biont (Railway). Скрипт подключается к Modbus TCP (через шлюз) или к RTU через последовательный порт, если порт проброшен через сеть (например, ser2net). Важно: execute_python не имеет доступа к локальным COM-портам — для этого используйте Hardware Bridge.

Почему Hardware Bridge — основной вариант для RS-485?

Потому что большинство промышленных датчиков и контроллеров не имеют Ethernet-выхода. Они подключаются через USB-RS485 конвертер (например, FTDI, CH340) к USB-порту ПК. Bridge.py — это единственный безопасный способ дать облачному AI доступ к вашему локальному COM-порту. Bridge работает через WebSocket (шифрованный), не открывает порты в интернет и не требует статического IP. Вы просто запускаете скрипт на своём компьютере, и AI получает канал связи.

Конкретный сценарий: мониторинг температуры и управление клапаном через Telegram

Представьте: на заводе есть Modbus RTU-датчик температуры (адрес 1, holding register 1 — температура в °C с множителем 10) и Modbus RTU-клапан (адрес 2, coil 1 — открыть/закрыть). Задача: AI-агент должен каждые 10 секунд опрашивать датчик, и если температура превышает 85°C — отправлять уведомление в Telegram и закрывать клапан (coil = 0).

Шаг 1. Подготовка оборудования

  1. Подключите датчик и клапан к USB-RS485 конвертеру (схема: A (D+) → A, B (D-) → B, GND → GND).
  2. Подключите конвертер к ПК (появится порт, например, COM3 на Windows, /dev/ttyUSB0 на Linux).
  3. Узнайте параметры Modbus сети: baud rate (9600), data bits (8), parity (None), stop bits (1) — обычно 9600 8N1.
  4. Установите Python 3.8+ на ПК и библиотеки: pip install pyserial requests websockets.

Шаг 2. Скачайте и запустите Hardware Bridge

Bridge.py скачивается только через дашборд ASI Biont: Devices → Create API Key → Скачать bridge. После скачивания запустите:

python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200

Флаг --rate=10 (опционально) ограничивает частоту запросов к порту, чтобы не перегружать устройство.

Bridge подключается к ASI Biont через WebSocket и готов к приёму команд.

Шаг 3. Опишите задачу в чате с AI-агентом

Вы пишете:

Подключись к Modbus RTU устройству через Hardware Bridge на порту COM3, baud rate 9600, 8N1. Адрес датчика температуры — 1, holding register 1, значение в °C с множителем 10. Адрес клапана — 2, coil 1. Каждые 10 секунд читай температуру. Если температура > 85°C, отправь сообщение в Telegram (токен: 123456:ABC, chat_id: 987654) и закрой клапан (coil = 0). Если температура упадёт ниже 75°C — открой клапан (coil = 1).

AI-агент понимает задачу и генерирует необходимые команды. Он не пишет Python-код напрямую (так как execute_python не имеет доступа к COM-порту), а использует industrial_command с протоколом serial://.

Шаг 4. Как AI формирует команды

Для чтения holding register 1 с адреса 1 AI отправляет Modbus RTU запрос:

industrial_command(protocol='serial://', command='write_and_read', port='COM3', baud=9600, data='010300000001840A')

Здесь:
- 01 — адрес слейва (1)
- 03 — функция чтения holding registers (0x03)
- 0000 — начальный адрес регистра (0)
- 0001 — количество регистров (1)
- 840A — CRC16 (вычисляется автоматически bridge.py, если не указан, или передаётся вручную)

Bridge отправляет эти 8 байт в COM-порт и читает ответ: 01 03 02 02 58 B8 73 (2 байта данных: 0x0258 = 600, что означает 60.0°C). Bridge возвращает ответ AI-агенту.

Для записи coil 1 на адресе 2 (закрыть клапан):

industrial_command(protocol='serial://', command='write_and_read', port='COM3', baud=9600, data='0205000000CDCD')

Где 0205000000CDCD — запись coil 1 в 0 (выключено).

Шаг 5. Автоматизация через execute_python (уведомления в Telegram)

AI-агент не может напрямую вызывать Telegram API из industrial_command. Для отправки сообщений он использует execute_python — пишет скрипт, который выполняется в sandbox-окружении. Вот как выглядит сгенерированный код:

import requests
import time

# Параметры от AI (заполняются автоматически)
TELEGRAM_TOKEN = "123456:ABC"
CHAT_ID = "987654"

def send_telegram_message(text):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
    payload = {"chat_id": CHAT_ID, "text": text}
    requests.post(url, json=payload)

# AI получает данные от bridge и принимает решение
# Этот скрипт выполняется по таймеру (каждые 10 секунд)
temperature = 60.0  # пример данных от bridge
if temperature > 85.0:
    send_telegram_message(f"⚠️ Авария! Температура {temperature}°C превышает 85°C. Закрываю клапан.")
    # Команда на закрытие отправляется через industrial_command
elif temperature < 75.0:
    send_telegram_message(f"✅ Температура {temperature}°C в норме. Открываю клапан.")

Важно: execute_python выполняется в sandbox с таймаутом 30 секунд. Поэтому бесконечные циклы (while True) запрещены — AI использует периодический вызов (каждые 10 секунд) через механизм scheduled tasks, который настроен в дашборде.

Шаг 6. Результат

Теперь:
- Каждые 10 секунд AI читает температуру.
- Если температура > 85°C — в Telegram приходит тревога, клапан закрывается.
- Если температура падает ниже 75°C — клапан открывается, приходит уведомление.
- Всё управление — через чат, без панелей управления и ручного кода.

Почему это выгодно: реальные цифры

Традиционная интеграция Modbus RTU устройства требует:
- 2-4 часа на написание и отладку кода на Python/C#.
- Знание Modbus протокола, CRC16, работы с COM-портами.
- Настройку отдельного сервера или скрипта для мониторинга.
- Дополнительное время на интеграцию с Telegram/email.

С ASI Biont:
- 5 минут на подключение bridge.py.
- 2 минуты на описание задачи в чате.
- AI пишет код за секунды.
- Не нужно знать Modbus — AI разбирается с CRC и адресами сам.

Подводные камни и как их избежать

  1. CRC16. Modbus RTU требует контрольную сумму. Bridge.py умеет вычислять CRC автоматически, если в команде не указан CRC. Но если вы передаёте данные вручную — убедитесь, что CRC правильный. AI-агент всегда вычисляет CRC через pymodbus или встроенную функцию.
  2. Таймауты. Некоторые датчики медленно отвечают (до 500 мс). Bridge использует таймаут по умолчанию 1 секунда. Если устройство медленнее — укажите --timeout 2 при запуске bridge.
  3. Конфликт портов. Если на COM3 уже работает другая программа (например, SCADA), bridge не сможет открыть порт. Закройте другие программы или используйте другой порт.
  4. Overlapped I/O на Windows. На Windows pyserial иногда использует overlapped I/O, что вызывает ошибки записи. Bridge автоматически применяет CancelIoEx + PurgeComm + синхронный WriteFile — это решает проблему. Если bridge выдаёт ошибку «written: 0», проверьте, не занят ли порт.

Другие сценарии интеграции Modbus RTU с ASI Biont

Сценарий Что делает AI
Мониторинг давления в трубопроводе Читает input register датчика давления, логирует в CSV, отправляет отчёт раз в час в Telegram.
Управление насосом по уровню в резервуаре Читает holding register уровнемера, включает/выключает насос (coil) при достижении порогов.
Сбор данных с энергомониторов Читает несколько holding registers (напряжение, ток, мощность) и строит график через matplotlib.
Аварийная сигнализация При чтении дискретного входа (coil) = 1 отправляет уведомление в Telegram и Slack.

Заключение

Modbus RTU (RS-485) — это не legacy, а живой стандарт, который будет работать ещё десятилетия. ASI Biont делает его дружелюбным: вы просто говорите AI, что нужно сделать, и он сам пишет код, подключается к устройству и управляет им. Никаких панелей, кнопок «добавить устройство» или ожидания обновлений — всё через диалог. Попробуйте сами: подключите свой первый Modbus датчик за 10 минут на asibiont.com.

← Все статьи

Комментарии

Читайте также

Космос как ускоренная лаборатория старения: что показало новое исследование

17 июля 2026

3D-мелые ручки или как не надо собирать 3D принтер в домашних условиях: разбор фатальных ошибок

17 июля 2026

15 промтов для машинного обучения: от препроцессинга до обучения моделей Scikit-learn, XGBoost и CatBoost

17 июля 2026

Интеграция Slack с ИИ: Как автоматизировать уведомления и рабочие процессы без кода с помощью ASI Biont

17 июля 2026

Как детектировать ДТП и допинг у лошадей: опыт с компьютерным зрением

17 июля 2026

2 часа на одно резюме: как 200 рекрутёров утонули в Word и что из этого выросло

17 июля 2026

Нейрохакинг и когнитивная оптимизация: как вернуть ясность ума и управлять продуктивностью мозга

17 июля 2026

Почему соблюдение GDPR в 2026 году требует специалистов нового типа: обзор курса Asibiont

17 июля 2026

Как «Копирайтинг и контент» на Asibiont превращает вас в машину убеждения (без воды)

17 июля 2026