Интеграция CAN bus с AI-агентом ASI Biont: мониторинг и управление промышленным оборудованием через CAN-шину

Введение

CAN (Controller Area Network) — это промышленный протокол, который десятилетиями используется в автомобильной промышленности, станкостроении, робототехнике и автоматизации зданий. CAN-шина позволяет подключать множество датчиков, контроллеров и исполнительных устройств с высокой надёжностью и минимальными задержками. Однако извлечение данных из CAN-сети и принятие решений на их основе часто требует написания сложного кода и постоянного мониторинга.

AI-агент ASI Biont решает эту проблему: он подключается к CAN-шине через industrial_command, используя библиотеку python-can, и позволяет считывать фреймы, отправлять команды и анализировать данные в реальном времени — без ручного программирования. Достаточно описать задачу на естественном языке, и AI самостоятельно подберёт протокол, сгенерирует код и выполнит интеграцию.

Как ASI Biont подключается к CAN bus?

ASI Biont поддерживает CAN bus через встроенный инструмент industrial_command. Этот инструмент предоставляет три основные команды:

Команда Описание
send_frame Отправить CAN-фрейм (ID + данные)
read_frame Прочитать один CAN-фрейм с ожиданием
monitor_bus Запустить мониторинг шины (поток фреймов)

Все команды выполняются в облаке (sandbox ASI Biont), где установлены все необходимые библиотеки, включая python-can. Для работы с физической CAN-шиной на локальном компьютере пользователь может использовать Hardware Bridge (bridge.py), который подключается к ASI Biont через WebSocket и обеспечивает доступ к USB-CAN адаптерам (например, USBtin, PCAN-USB). Однако в большинстве сценариев industrial_command работает напрямую с CAN-интерфейсами, доступными из облака (например, через TCP-соединение с CAN-шлюзом).

Реальный сценарий: мониторинг температуры двигателя

Рассмотрим типовую задачу: на заводе установлен дизельный генератор с CAN-шиной, передающей температуру охлаждающей жидкости, давление масла, обороты. Задача — логировать температуру и отправлять предупреждение в Telegram при превышении 95°C.

Шаг 1: Описываем задачу в чате с AI

Пользователь пишет:

«Подключись к CAN-шине генератора через интерфейс can0, скорость 250 кбит/с. Читай фреймы с ID 0x0CF00400 (температура). Данные — 2 байта, signed, масштаб 0.1. Если температура > 95°C, отправь сообщение в Telegram-бот.»

Шаг 2: AI выбирает протокол и генерирует интеграцию

AI распознаёт протокол CAN и использует industrial_command с командой monitor_bus для непрерывного чтения. Пример того, как AI выполняет команду:

# Это упрощённое представление реального вызова инструмента.
# AI не пишет этот код руками, а использует встроенный инструмент.
industrial_command(
    protocol='can',
    command='monitor_bus',
    params={
        'interface': 'can0',
        'bitrate': 250000,
        'filter_ids': [0x0CF00400],
        'callback': 'send_to_telegram'
    }
)

Шаг 3: AI обрабатывает данные и отправляет уведомление

В процессе мониторинга AI анализирует каждый фрейм. Если значение температуры превышает порог, AI вызывает execute_python, чтобы отправить сообщение в Telegram:

import requests

# Параметры бота (передаются пользователем через чат)
TOKEN = 'ваш_токен'
CHAT_ID = 'ваш_chat_id'

# Данные от CAN-фрейма приходят в sandbox как переменная event
temp = event['data'][0] * 256 + event['data'][1]  # little-endian
temp_c = temp * 0.1

if temp_c > 95:
    text = f"⚠️ Температура двигателя: {temp_c:.1f}°C — превышение!"
    requests.post(f"https://api.telegram.org/bot{TOKEN}/sendMessage",
                  json={"chat_id": CHAT_ID, "text": text})

Всё это происходит автоматически после описания задачи — пользователь только получает уведомления в Telegram.

Пошаговое руководство: от запроса до готовой интеграции

  1. Настройка оборудования: Подключите USB-CAN адаптер к компьютеру. Установите драйверы (например, для USBtin или PCAN-USB). Убедитесь, что интерфейс виден в системе (в Linux — ip link show can0).

  2. Скачивание bridge.py: В дашборде ASI Biont (Devices → Create API Key) скачайте bridge.py. Этот файл запускается на вашем ПК и связывает локальную CAN-шину с облаком ASI Biont через WebSocket.

  3. Запуск bridge: Откройте терминал и выполните:
    bash pip install pyserial requests websockets python-can python bridge.py --token=ВАШ_ТОКЕН_ИЗ_ДАШБОРДА --ports=can0 --baud=250000
    Bridge автоматически подключится к ASI Biont, и AI сможет управлять CAN-шиной.

  4. Диалог в чате: Напишите AI задачу, как в примере выше. AI сам выберет протокол CAN и начнёт мониторинг.

  5. Результат: Вы получаете готовую систему мониторинга без единой строки кода, написанной вручную.

Преимущества интеграции CAN bus с ASI Biont

  • Мгновенная интеграция: AI сам определяет протокол и параметры подключения. Не нужно разбираться в структуре CAN-фреймов или битовой маске.
  • Гибкость: Поддерживаются любые CAN-устройства — от автомобильных ECU до промышленных PLC.
  • Автоматизация: AI может не только читать, но и отправлять фреймы (например, включать клапан по команде «Снизь температуру»).
  • Расширяемость: Параллельно с CAN-шиной AI может подключаться к другим интерфейсам (MQTT, Modbus, HTTP) — всё в одном диалоге.

Дополнительные сценарии с CAN bus

Сценарий Команда AI Результат
Управление клапаном по ID 0x100 send_frame id=0x100 data=0x0123 Открывает клапан на 75%
Мониторинг давления в гидравлике monitor_bus filter_ids=0x0CF00200,0x0CF00300 Логирование + аварийное оповещение
Диагностика ошибок read_frame id=0x7DF (диагностический запрос) Сбор DTC кодов
Интеграция с MQTT AI читает CAN, публикует данные в MQTT-топик Данные уходят в облачную SCADA

Почему стоит попробовать?

Традиционная настройка CAN-мониторинга требует написания кода на C/C++ или Python, знания спецификаций CANopen/J1939, настройки фильтров и обработки прерываний. С ASI Biont весь процесс умещается в один запрос: «Подключись к CAN и отправляй данные в Telegram». AI берёт на себя рутину, а вы сосредотачиваетесь на анализе.

Заключение

CAN bus — мощный, но сложный протокол. ASI Biont делает его доступным: достаточно описать задачу на естественном языке, и AI-агент самостоятельно подключается к шине, читает фреймы и управляет устройствами. Никаких дашбордов с кнопками «добавить устройство» — только диалог в чате.

Попробуйте интеграцию прямо сейчас на asibiont.com. Опишите ваше CAN-устройство и получите готовую систему мониторинга за минуты.

← Все статьи

Комментарии

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