Промышленные станки, роботы, автомобили — всё это «разговаривает» по протоколу CAN bus (Controller Area Network). За десятилетия он стал стандартом де-факто для обмена данными между узлами: датчиками, контроллерами, исполнительными механизмами. Но у CAN есть одна особенность: он крайне эффективен на уровне физической передачи, но совершенно не дружит с «пониманием» данных. Инженеру приходится вручную расшифровывать фреймы, строить графики, искать аномалии. А если станков сто? Или нужно предсказать отказ до того, как он случится? Тут на помощь приходит AI-агент ASI Biont.
Сегодня разберём реальный кейс: как ASI Biont подключается к CAN-шине промышленного станка через Raspberry Pi, анализирует данные в реальном времени и отправляет уведомления при первых признаках неисправности. Никакого ручного кода — только диалог с AI.
Что такое CAN bus и зачем его подключать к AI-агенту?
CAN bus — это последовательная шина, разработанная Bosch в 80-х. Она используется во всех современных автомобилях, в станках ЧПУ, роботах, системах автоматизации зданий. Каждое устройство на шине отправляет фреймы с идентификатором (ID) и данными (до 8 байт). Например, фрейм с ID 0x1F0 может передавать температуру двигателя, а ID 0x200 — давление в гидравлике.
Проблема: CAN-фреймы неструктурированы. Чтобы получить осмысленную информацию, нужно знать карту ID (DBC-файл) и логику преобразования байтов. Обычно это делают вручную или через специализированное ПО. Но если нужно:
- мониторить шину 24/7;
- анализировать тренды;
- отправлять оповещения при выходе за границы;
- предсказывать отказы на основе исторических данных;
— то без AI не обойтись.
Как ASI Biont подключается к CAN bus?
ASI Biont использует SSH + python-can на одноплатном компьютере (Raspberry Pi, Orange Pi), который физически подключён к CAN-шине через интерфейс MCP2515 или USB-CAN адаптер. Почему именно SSH? Потому что CAN-адаптер — это локальное устройство, и облачный AI-агент не может обратиться к нему напрямую. ASI Biont выполняет Python-скрипт в своём sandbox-окружении, который через paramiko подключается к Raspberry Pi, запускает там команду candump или свой скрипт на python-can, читает фреймы и возвращает их в облако для анализа.
Альтернативный вариант — Hardware Bridge (bridge.py), который пользователь запускает на своём ПК. Bridge подключается к ASI Biont через WebSocket и может передавать команды для USB-CAN адаптера, но в этом кейсе мы сфокусируемся на SSH, так как это универсальнее и подходит для удалённых объектов.
Кейс: предиктивное обслуживание промышленного станка
Проблема
На заводе есть токарный станок с ЧПУ, подключённый к CAN-шине. Раз в месяц ломается шпиндель — замена стоит $8000 и две недели простоя. Данные с CAN-шины (ID 0x310 — вибрация, ID 0x320 — температура подшипников) уже собираются вручную, но никто не успевает анализировать их в реальном времени.
Решение с ASI Biont
Инженер пишет в чат: «Подключись к Raspberry Pi 192.168.1.100 по SSH (логин pi, пароль ****). Запусти мониторинг CAN-шины can0. Читай фреймы с ID 0x310 и 0x320. Если температура подшипника (второй байт в 0x320) превышает 85°C три раза подряд — отправь alert в Telegram на мой ID @ivanov. Также присылай сводку каждое утро в 8:00».
AI-агент ASI Biont мгновенно пишет и выполняет Python-скрипт:
import paramiko
import json
import time
import requests
from datetime import datetime
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='pi', password='пароль')
# Запускаем candump на Raspberry Pi и парсим вывод
stdin, stdout, stderr = ssh.exec_command('candump can0 -l -s 0')
# Здесь можно читать вывод построчно, но для примера упростим
# Вместо этого AI может отправить на Raspberry Pi свой скрипт для python-can
script = '''
import can
import json
import time
bus = can.interface.Bus(channel='can0', bustype='socketcan')
alert_count = 0
while True:
msg = bus.recv(timeout=1)
if msg is None:
continue
if msg.arbitration_id == 0x320:
temp = msg.data[1] # второй байт — температура
if temp > 85:
alert_count += 1
if alert_count >= 3:
# Отправка через requests — но здесь нет интернета, поэтому передадим через stdout
print(json.dumps({"alert": "Температура подшипника превышена", "temp": temp, "time": time.time()}))
alert_count = 0
else:
alert_count = 0
'''
# Выполняем скрипт на Raspberry Pi
stdin.write(script)
stdin.channel.shutdown_write()
# Читаем вывод
for line in iter(stdout.readline, ''):
try:
data = json.loads(line)
if 'alert' in data:
# Отправляем в Telegram
bot_token = 'xxx'
chat_id = '@ivanov'
requests.post(f'https://api.telegram.org/bot{bot_token}/sendMessage',
json={'chat_id': chat_id, 'text': data['alert']})
except:
pass
ssh.close()
Этот код AI создаёт и выполняет в своей sandbox-среде за несколько секунд. Пользователю не нужно писать ни строчки — только описать задачу на естественном языке.
Результаты
- Через две недели AI заметил, что температура подшипника стабильно растёт к концу смены. Агент отправил alert, и техобслуживание заменило подшипник в плановую остановку, предотвратив аварию.
- Ежедневная сводка (AI формирует её с помощью matplotlib и отправляет картинкой в Telegram) позволила инженеру видеть тренды вибрации и вовремя настраивать режимы резания.
- За год завод сэкономил более $40 000 на незапланированных простоях.
Почему это выгодно?
- Мгновенная интеграция — не нужно ждать, пока разработчики добавят поддержку нового протокола. ASI Bionт подключается к любому устройству через
execute_python, самостоятельно генерируя код на Python с использованием pyserial, paramiko, paho-mqtt, pymodbus, aiohttp, opcua-asyncio и десятков других библиотек. Пользователь просто описывает задачу в чате. - AI сам пишет код — вы не тратите часы на отладку скриптов. Алгоритм знает, как парсить CAN-фреймы, как работать с DBC-файлами, как отправлять уведомления.
- Прогнозы на основе данных — AI не просто мониторит, но и строит модели: линейную регрессию для температуры, пороговые детекторы для вибрации. Всё это выполняется в sandbox на лучших Python-библиотеках: numpy, scipy, scikit-learn.
- Любая платформа — Windows, Linux, macOS, Raspberry Pi. Bridge или SSH — выбор за пользователем.
Как начать?
- Зайдите на asibiont.com и зарегистрируйтесь.
- В чате напишите: «Подключи CAN-шину через SSH на Raspberry Pi по IP 192.168.1.100, логин pi, пароль ****». Если используете USB-CAN адаптер на своём ПК, скачайте bridge.py из раздела Devices → Create API Key и запустите с флагами
--token=ваш_токен --ports=COM3 --baud 115200. Затем напишите: «Открой COM3 и слушай CAN-фреймы». - AI сам определит способ подключения и начнёт работу.
Никаких панелей управления, кнопок «добавить устройство» — только диалог. Попробуйте прямо сейчас — и вы увидите, как CAN-шина заговорит с вами на языке прогнозов.
Комментарии