CAN bus + ASI Biont: как AI-агент превращает данные с CAN-шины в прогнозы и экономию

Промышленные станки, роботы, автомобили — всё это «разговаривает» по протоколу 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 на незапланированных простоях.

Почему это выгодно?

  1. Мгновенная интеграция — не нужно ждать, пока разработчики добавят поддержку нового протокола. ASI Bionт подключается к любому устройству через execute_python, самостоятельно генерируя код на Python с использованием pyserial, paramiko, paho-mqtt, pymodbus, aiohttp, opcua-asyncio и десятков других библиотек. Пользователь просто описывает задачу в чате.
  2. AI сам пишет код — вы не тратите часы на отладку скриптов. Алгоритм знает, как парсить CAN-фреймы, как работать с DBC-файлами, как отправлять уведомления.
  3. Прогнозы на основе данных — AI не просто мониторит, но и строит модели: линейную регрессию для температуры, пороговые детекторы для вибрации. Всё это выполняется в sandbox на лучших Python-библиотеках: numpy, scipy, scikit-learn.
  4. Любая платформа — Windows, Linux, macOS, Raspberry Pi. Bridge или SSH — выбор за пользователем.

Как начать?

  1. Зайдите на asibiont.com и зарегистрируйтесь.
  2. В чате напишите: «Подключи 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-фреймы».
  3. AI сам определит способ подключения и начнёт работу.

Никаких панелей управления, кнопок «добавить устройство» — только диалог. Попробуйте прямо сейчас — и вы увидите, как CAN-шина заговорит с вами на языке прогнозов.

← Все статьи

Комментарии