Введение
На заводе «ЮжУралМаш» оператор дважды в день обходит 12 промышленных весов, записывает показания в журнал и вручную переносит их в Excel. Каждый месяц — 5–10 ошибок из-за опечаток, потерянные килограммы сырья, споры с поставщиками. Знакомая картина?
COM-порт (RS-232) — это «динозавр» промышленной автоматизации, который до сих пор живёт в каждом втором цехе: весы, станки с ЧПУ, контроллеры температуры, дозирующие системы. Проблема в том, что данные с этих устройств заперты в физическом кабеле — их нельзя отправить в облако, чат-бот или базу данных без специального моста.
ASI Biont решает эту задачу за 5 минут. AI-агент подключается к любому RS-232-устройству через Hardware Bridge — Python-приложение на вашем ПК — и автоматически парсит данные, записывает их в базу, строит графики и отправляет уведомления в Telegram при отклонениях. Всё управление — через естественный диалог в чате.
В этой статье я покажу, как настроить интеграцию COM-порта с AI-агентом на реальном примере: промышленные весы + Python + Telegram. Никаких панелей управления — только чат и несколько команд.
Что такое COM / RS-232 и зачем его подключать к AI-агенту?
RS-232 (Recommended Standard 232) — стандарт последовательной передачи данных, разработанный в 1960-х годах. Несмотря на возраст, он остаётся основным интерфейсом для:
- Промышленных весов (Mettler Toledo, CAS, Ohaus)
- Контроллеров станков с ЧПУ (Fanuc, Siemens)
- GPS-трекеров (NMEA-0183)
- Медицинского оборудования (анализаторы, мониторы)
- Систем дозирования и учёта жидкости
Проблема: данные с этих устройств не имеют выхода в интернет. Они «говорят» только через COM-порт — физический разъём на ПК или USB-адаптер. Чтобы автоматизировать сбор, нужен посредник, который:
1. Читает сырые байты из порта
2. Парсит их в читаемый формат
3. Передаёт в облако, базу данных, Telegram
ASI Biont становится таким посредником — AI-агент сам пишет парсер, настраивает подключение и управляет логикой обработки.
Как AI-агент ASI Biont подключается к COM-порту?
ASI Biont использует Hardware Bridge — специальное приложение bridge.py, которое пользователь запускает на своём компьютере (Windows/Linux/macOS). Bridge соединяется с облаком ASI Biont через WebSocket (единственный канал связи). AI отправляет команды через инструмент industrial_command, bridge выполняет их локально на вашем ПК — читает/пишет в COM-порт через pyserial.
Архитектура подключения
[Устройство RS-232] <---> [USB-адаптер] <---> [ПК (bridge.py)] <--- WebSocket ---> [Облако ASI Biont] <---> [Чат с AI]
Как настроить bridge
- Скачайте bridge.py — из дашборда ASI Biont (раздел Devices → Create API Key → кнопка «Скачать bridge»).
- Установите зависимости:
pip install pyserial requests websockets - Запустите bridge:
bash python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200 --rate=10 --token— API-ключ из дашборда (обязателен)--ports— список портов через запятую (например, COM3, COM5)--baud— скорость передачи (9600, 115200 и т.д.)--rate— лимит запросов в секунду (по умолчанию 10)
После запуска bridge подключается к облаку и готов к работе. Теперь всё управление — через чат с AI.
Команды, которые AI отправляет на bridge
Для работы с COM-портом AI использует industrial_command(protocol='serial://', ...). Основная команда — serial_write_and_read:
industrial_command(
protocol='serial://',
command='serial_write_and_read',
data='48454c500a' # HEX-строка "HELP" + \n
)
Bridge выполняет атомарную операцию: отправляет данные в порт и сразу читает ответ. Данные передаются в hex-формате (например, 48454c500a = HELP + \n). Функция _parse_data_field() в bridge.py умеет преобразовывать как hex-строки, так и escape-последовательности (BLUE_ON\n, LED_OFF\r\n).
Для проверки связи AI отправляет команду HELP (HELP-протокол) — устройство должно ответить списком поддерживаемых команд.
Важно для Windows: при ошибке записи (written: 0) bridge автоматически применяет CancelIoEx (отмена зависших overlapped операций), PurgeComm (очистка буферов) и синхронный WriteFile (без overlapped I/O). Это решает проблему, когда pyserial на Windows «зависает» при работе с некоторыми промышленными устройствами.
Реальный сценарий: Промышленные весы + Telegram-мониторинг
Постановка задачи
У вас есть весы CAS DB-II-H с RS-232 выходом. Каждые 30 секунд весы отправляют строку вида:
ST,GS,+00123.45,kg\r\n
Нужно:
1. Читать данные с весов каждые 60 секунд
2. Логировать показания в базу данных PostgreSQL
3. Если вес выходит за пределы 100–150 кг — отправлять уведомление в Telegram
Шаг 1. Подключаем устройство через чат
Просто опишите задачу AI-агенту:
«Подключись к весам на COM3, скорость 9600 бод. Каждые 60 секунд читай данные, парси строку формата ST,GS,+00123.45,kg. Логируй в PostgreSQL на моём сервере. Если вес меньше 100 кг или больше 150 кг — отправь мне уведомление в Telegram. Вот параметры: PostgreSQL: host=192.168.1.100, user=admin, password=pass123, db=weights. Telegram: токен бота и мой chat_id пришлю в следующем сообщении.»
AI сам:
- Напишет Python-скрипт с pyserial для чтения порта
- Создаст парсер на регулярных выражениях
- Настроит подключение к PostgreSQL через psycopg2
- Отправит уведомление через requests.post к Telegram Bot API
- Выполнит скрипт в sandbox-окружении
Шаг 2. Пример кода, который генерирует AI
import serial
import re
import psycopg2
import requests
import time
from datetime import datetime
# Параметры подключения
SERIAL_PORT = 'COM3'
BAUD_RATE = 9600
TELEGRAM_TOKEN = 'ваш_токен'
CHAT_ID = 'ваш_chat_id'
DB_CONFIG = {
'host': '192.168.1.100',
'user': 'admin',
'password': 'pass123',
'dbname': 'weights'
}
# Парсинг строки весов
PATTERN = r'^ST,GS,([+-]?\d+\.\d+),kg$'
def parse_weight(line):
match = re.match(PATTERN, line.strip())
if match:
return float(match.group(1))
return None
def send_telegram(message):
url = f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage'
payload = {'chat_id': CHAT_ID, 'text': message}
requests.post(url, json=payload)
def log_to_db(weight, timestamp):
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
cur.execute(
'INSERT INTO weight_log (weight, recorded_at) VALUES (%s, %s)',
(weight, timestamp)
)
conn.commit()
cur.close()
conn.close()
def main():
with serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=5) as ser:
while True:
line = ser.readline().decode('ascii', errors='ignore')
weight = parse_weight(line)
if weight is not None:
timestamp = datetime.now()
log_to_db(weight, timestamp)
if weight < 100 or weight > 150:
msg = f'⚠️ Отклонение веса: {weight} кг в {timestamp}'
send_telegram(msg)
time.sleep(60)
if __name__ == '__main__':
main()
Важно: В sandbox ASI Biont стоит таймаут 30 секунд, поэтому бесконечный цикл while True не пройдёт. AI адаптирует решение — например, использует однократное чтение по расписанию через внешний триггер (HTTP-запрос или планировщик).
Шаг 3. AI объясняет пользователю, что сделано
После выполнения кода AI выдаёт отчёт:
«✅ Интеграция настроена.
- Парсер для строки ST,GS,+00123.45,kg создан и протестирован (регулярное выражение: ^ST,GS,([+-]?\d+.\d+),kg$).
- База данных PostgreSQL: таблица weight_log с колонками weight (float) и recorded_at (timestamp).
- Telegram-бот: при отклонении веса от 100–150 кг отправляется сообщение.
- Текущие показания: 125.30 кг. Всё в норме.Чтобы остановить — напишите "стоп" или "останови мониторинг весов".»
Другие сценарии интеграции COM-порта с ASI Biont
1. GPS-трекер через NMEA-0183
Подключаете GPS-модуль через USB-адаптер к COM-порту. AI парсит NMEA-строки ($GPGGA, $GPRMC), извлекает координаты, скорость, высоту. Результат:
- Построение маршрута на карте (через API Яндекс.Карт или Google Maps)
- Уведомление при входе/выходе из геозоны
- Логирование трека в базу данных
Команда в чате: «Подключись к GPS-трекеру на COM5, 4800 бод. Парси NMEA-строки, записывай координаты в таблицу gps_tracks. Если машина выезжает за радиус 5 км от точки (55.751244, 37.618423) — отправь мне Telegram.»
2. Станок с ЧПУ (Fanuc, Siemens)
Станки с ЧПУ часто отдают текущие параметры (обороты шпинделя, подача, температура) через RS-232. AI подключается, читает статус, анализирует тренды и предупреждает о возможной поломке.
Команда в чате: «Читай состояние станка на COM1, 115200 бод. Каждые 10 секунд логируй обороты шпинделя и температуру подшипников. Если температура > 80°C — аварийное уведомление в Telegram.»
3. Дозирующая система с Modbus RTU
Многие промышленные весы поддерживают Modbus RTU поверх RS-232. AI использует pymodbus для чтения регистров. Это даёт структурированный доступ без парсинга текстовых строк.
Команда в чате: «Подключись к Modbus RTU на COM2, 19200 бод, slave ID 1. Читай регистры 40001 и 40002 каждые 30 секунд, записывай в базу. Если значение > 1000 — уведомление.»
Почему ASI Biont, а не ручной код?
| Параметр | Ручная разработка | ASI Biont |
|---|---|---|
| Время настройки | 2–4 часа | 2–5 минут |
| Знание протокола устройства | Нужно читать документацию | AI парсит строки «на лету» |
| Обработка ошибок (Windows, зависания) | Нужно писать самому | Встроена в bridge |
| Уведомления в Telegram | Отдельный код + настройка бота | AI создаёт за секунды |
| Масштабирование на 10 устройств | Копировать код, править порты | Просто добавить порты в bridge |
Главное преимущество: вы описываете задачу на естественном языке — AI пишет рабочий код, тестирует его и исправляет ошибки. Не нужно учить Python, pyserial или Modbus.
Как подключиться к любому устройству через execute_python
ASI Biont умеет подключаться не только через bridge, но и напрямую через выполнение Python-кода в sandbox-окружении (execute_python). Это универсальный способ для:
- SSH-устройств (Raspberry Pi, сервера)
- MQTT-брокеров (ESP32, умный дом)
- HTTP API (камеры, термостаты)
- Modbus TCP (промышленные контроллеры)
- OPC UA (SCADA-системы)
- BACnet (BMS, HVAC)
- CAN bus (автомобили, станки)
Пример: вы хотите подключиться к ESP32 с датчиком температуры через MQTT. Просто напишите AI:
«Подключись к MQTT-брокеру mqtt://192.168.1.50:1883, подпишись на топик sensors/temperature. Каждые 10 секунд публикуй среднее значение за последнюю минуту в топик sensors/temperature_avg. Если температура > 30°C — отправь Telegram.»
AI сгенерирует код с paho-mqtt, выполнит его в sandbox и начнёт мониторинг.
Важно: execute_python не имеет доступа к COM-портам пользователя — для этого используется Hardware Bridge. Оба способа работают через один чат, AI сам выбирает правильный инструмент.
Заключение
COM-порт (RS-232) — не пережиток, а рабочий инструмент на тысячах предприятий. Проблема в том, что данные из него заперты. ASI Biont решает это за минуты: запускаете bridge, описываете задачу в чате, и AI сам пишет парсер, логирование и уведомления.
Попробуйте сами:
1. Зайдите на asibiont.com
2. Создайте API-ключ и скачайте bridge.py
3. Подключите любое RS-232-устройство
4. Напишите в чат: «Подключись к COM3, читай данные, логируй в базу, отправляй в Telegram при отклонениях»
Всё остальное сделает AI.
Статья написана в июле 2026 года. ASI Biont — AI-агент для интеграции промышленных устройств. Подробности на asibiont.com.
Комментарии