Введение
Промышленные контроллеры (ПЛК) с протоколом Modbus/TCP — основа автоматизации на современных заводах. Они управляют конвейерами, насосами, компрессорами, следят за температурой, давлением и вибрацией. Однако данные, которые собирают ПЛК, часто остаются «сырыми»: их анализируют вручную или с помощью статических SCADA-систем. AI-агент ASI Biont позволяет превратить эти данные в интеллектуальные сценарии: прогнозировать отказы, отправлять оповещения и автоматически запускать корректирующие действия — без написания сложного кода вручную. В этой статье мы разберём, как подключить ПЛК с Modbus/TCP к ASI Biont, настроить сбор телеметрии и реализовать предиктивное обслуживание.
Что такое Modbus/TCP и зачем его подключать к AI?
Modbus/TCP — это промышленный протокол, работающий поверх TCP/IP на порту 502. ПЛК предоставляет доступ к регистрам (holding registers, input registers), катушкам (coils) и дискретным входам. AI-агент может читать эти регистры в реальном времени, анализировать тренды, выявлять аномалии и управлять исполнительными механизмами. По данным отчёта McKinsey (2023), внедрение предиктивной аналитики на основе AI снижает внеплановые простои оборудования на 30–50% и сокращает затраты на обслуживание на 10–40%. ASI Biont делает эту технологию доступной для любого инженера: достаточно описать в чате, к какому ПЛК подключиться и какие регистры читать.
Как AI-агент подключается к ПЛК?
ASI Biont использует execute_python — sandbox-окружение на стороне облака, где AI пишет и выполняет Python-скрипты с библиотекой pymodbus. Пользователь просто пишет в чате:
«Подключись к ПЛК по Modbus/TCP, IP 192.168.1.100, порт 502. Прочитай holding registers с адреса 0 по 9 каждые 10 секунд. Если температура (регистр 2) превышает 85°C, отправь мне уведомление в Telegram и запиши событие в лог-файл.»
AI автоматически генерирует код, подключается к ПЛК, запускает мониторинг и настраивает уведомления. Никаких панелей управления, кнопок «добавить устройство» — всё через диалог.
Пример кода для чтения регистров (выполняется в execute_python)
from pymodbus.client import ModbusTcpClient
import time
# Подключение к ПЛК
client = ModbusTcpClient('192.168.1.100', port=502)
client.connect()
try:
# Чтение holding registers с адреса 0, количество 10
rr = client.read_holding_registers(0, 10)
if rr.isError():
print(f"Ошибка чтения: {rr}")
else:
data = rr.registers
print(f"Регистры: {data}")
temperature = data[2] / 10.0 # предположим, что значение в десятых градуса
print(f"Температура: {temperature} °C")
if temperature > 85.0:
# Отправка уведомления в Telegram через requests
import requests
bot_token = 'YOUR_BOT_TOKEN' # пользователь передаёт токен в чате
chat_id = 'YOUR_CHAT_ID'
message = f"⚠️ Аномалия! Температура {temperature} °C превышает порог 85 °C"
requests.post(f'https://api.telegram.org/bot{bot_token}/sendMessage',
json={'chat_id': chat_id, 'text': message})
finally:
client.close()
Важно: Sandbox ASI Biont имеет таймаут выполнения 30 секунд, поэтому бесконечные циклы (while True) недопустимы. Для долговременного мониторинга AI использует tool
industrial_commandс протоколомmodbus, который запускает фоновый процесс на сервере.
Реальный сценарий: предиктивное обслуживание компрессора
Представьте, что на заводе компрессор подключён к ПЛК через Modbus/TCP. ПЛК хранит в регистрах:
- Регистр 0: температура подшипника (целое число, °C)
- Регистр 1: вибрация (м/с², умноженная на 100)
- Регистр 2: давление масла (бар, умноженное на 10)
- Регистр 3: количество часов работы
Шаг 1. Описание задачи в чате
Пользователь пишет:
«Настрой мониторинг компрессора. Читай регистры 0-3 каждые 5 минут. Логируй данные в CSV-файл. Если температура > 90 °C или вибрация > 50 м/с² — отправь срочное уведомление в Telegram и создай отчёт в PDF с графиком за последний час.»
Шаг 2. AI генерирует и выполняет код
AI создаёт скрипт, который:
- Подключается к ПЛК по Modbus/TCP
- Читает регистры и сохраняет их в CSV
- При превышении порогов формирует PDF-отчёт с графиком (используя matplotlib и fpdf2)
- Отправляет уведомление в Telegram
from pymodbus.client import ModbusTcpClient
import csv, time, io
from datetime import datetime
import matplotlib.pyplot as plt
from fpdf import FPDF
import requests
PLC_IP = '192.168.1.100'
PLC_PORT = 502
BOT_TOKEN = 'ваш_токен'
CHAT_ID = 'ваш_chat_id'
client = ModbusTcpClient(PLC_IP, port=PLC_PORT)
client.connect()
data_log = []
try:
rr = client.read_holding_registers(0, 4)
if not rr.isError():
temp = rr.registers[0]
vib = rr.registers[1] / 100.0
press = rr.registers[2] / 10.0
hours = rr.registers[3]
now = datetime.now().isoformat()
row = [now, temp, vib, press, hours]
data_log.append(row)
# Логирование в CSV
with open('compressor_log.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(row)
# Проверка аномалий
if temp > 90 or vib > 50:
# Создание графика
times = [r[0] for r in data_log[-12:]] # последние 12 записей
temps = [r[1] for r in data_log[-12:]]
plt.figure(figsize=(10,4))
plt.plot(times, temps, marker='o')
plt.title('Температура подшипника (последний час)')
plt.xlabel('Время')
plt.ylabel('°C')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('temp_chart.png')
plt.close()
# Создание PDF-отчёта
pdf = FPDF()
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.cell(200, 10, 'Аварийный отчёт: компрессор', ln=True, align='C')
pdf.set_font('Arial', '', 12)
pdf.cell(200, 10, f'Время: {now}', ln=True)
pdf.cell(200, 10, f'Температура: {temp} °C', ln=True)
pdf.cell(200, 10, f'Вибрация: {vib} м/с²', ln=True)
pdf.image('temp_chart.png', x=10, y=50, w=180)
pdf.output('alarm_report.pdf')
# Отправка в Telegram
with open('alarm_report.pdf', 'rb') as f:
files = {'document': f}
requests.post(f'https://api.telegram.org/bot{BOT_TOKEN}/sendDocument',
data={'chat_id': CHAT_ID}, files=files)
message = f'🚨 Аномалия! T={temp}°C, V={vib} м/с². Отчёт прикреплён.'
requests.post(f'https://api.telegram.org/bot{BOT_TOKEN}/sendMessage',
json={'chat_id': CHAT_ID, 'text': message})
finally:
client.close()
Шаг 3. Автоматизация через AI-конструктор без кода
ASI Biont позволяет создавать сценарии без программирования — через AI-конструктор. Пользователь может настроить триггеры: «Если температура > 90°C, то отправить отчёт и вызвать специалиста». AI-агент сам свяжет эти действия: сформирует PDF, отправит в Telegram, создаст заявку в системе учёта. Всё это без единой строки кода — только описание на естественном языке.
Почему это выгодно?
- Экономия времени: Интеграция, которая раньше занимала дни, теперь выполняется за минуты. AI пишет код с pymodbus, paho-mqtt, paramiko и другими библиотеками — вам нужно только описать задачу.
- Гибкость: ASI Biont подключается к любому устройству через execute_python — не только Modbus/TCP, но и MQTT, OPC-UA, SSH, COM-порт. Не нужно ждать, пока разработчики добавят поддержку нового протокола.
- Предиктивное обслуживание: AI анализирует тренды, выявляет аномалии и запускает действия до того, как произойдёт отказ. Это снижает простои и ремонтные затраты.
- Простота: Всё управление — через чат. Никаких панелей, кнопок «добавить устройство», сложных настроек.
Заключение
Подключение промышленного контроллера с Modbus/TCP к AI-агенту ASI Biont — это простой и эффективный способ внедрить предиктивное обслуживание и автоматизировать мониторинг. AI-агент сам пишет код интеграции, читает регистры, анализирует данные и отправляет уведомления. Попробуйте прямо сейчас на asibiont.com — опишите в чате своё оборудование и получите готовую интеграцию за секунды.
Комментарии