Как стать автором
Поиск
Написать публикацию
Обновить
51.67

Универсальный сервис по сбору телеметрии с CAN-шин на технике

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров4.3K

Всем привет! Меня зовут Артём Сидоров. Я ведущий разработчик из ИТ-команды «Северстали». Сегодня хочу рассказать, как мы реализовали «Универсальный сервис по сбору телеметрии с CAN-шин на технике».

Что такое CAN-шина

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

 

Пример объединения узлов автомобиля в CAN-шине
Пример объединения узлов автомобиля в CAN-шине

Принцип работы

Совокупность устройств (узлов) подключается к одной линии связи по двухпроводной витой паре, причём каждое устройство может как передавать, так и принимать данные. Сигнал CAN можно представить следующей схемой: 

  1. идентификатор;

  2. данные;

  3. контрольная сумма. 

CAN-шина имеет различные стандарты, в нашей работе почти всегда используется «SAE J1939» стандарт, так как это стандарт тяжёлых транспортных средств.

Для чего понадобился сервис?

Сервис нужен для сбора телеметрии транспортного средства (ТС). После сбора и расшифровки данных можно провести анализ и выяснить, в каком состоянии ТС и когда его нужно ремонтировать, и в каком узле. Наша команда сразу захотела подкинуть нейронку для обучения и на основании её предсказаний составлять планы на ремонт. На текущий момент это на стадии проектирования, но пока не об этом.

Ох уж эти нейросети
Ох уж эти нейросети

Также эта информация сильно поможет работе предприятия. Например, по работе подвески возможно вычислять плохие участки дороги, по весу в кузове можно узнать, сколько руды и породы было вывезено из определённого сектора и т. д.

 Описание сервиса

Перейдём к главному: сервис разработан на языке программирования C# и является Windows Service, который получает настройки по приёму сигналов из базы данных на MS SQL Server и получает данные относительно этих настроек по протоколу TCP. 

На стороне ТС находится устройство приёма, а именно CAN-преобразователь. Он получает данные с CAN-шины и отправляет их по Ethernet. Для работы был куплен промышленный CAN-преобразователь. Пример на картинке ниже: 

CAN-преобразователь
CAN-преобразователь

После получения сигнала сервис проверяет, является ли значение критическим. Если нет, то проверяет, попадает ли в период забора. Часто сигналы отправляются с периодом в 10-100 мс для того, чтобы не засорять БД, мы ограничили забор относительно наших потребностей. Также в БД находится CANID и по каким параметрам расшифровывать сигналы. Например, в одном блоке данных и под одним CANID могут находиться несколько значений по разным сигналам, поэтому нужно знать, с какого по какой бит мы должны взять данные, а также, на какое значение мы должны умножить и прибавить значение.  

Пример того, как выглядят настройки в системе

Наименование сигнала

PGN

Адрес отправителя

с * байта

по * байт

Множитель

Шаг

Интервал записи

Тип интервала записи

Инклинометр Y

0xF013

0x2B

3

4

0,01

-90

15

минута

После отбора нужных сигналов данные записываются в БД и расшифровываются. 

Примерно так это можно изобразить на схеме
Примерно так это можно изобразить на схеме

В качестве примера работы сервиса можно поставить наш монитор работы автосамосвалов (АС). В этом мониторе сигналы разделены на группы ABC, что помогает быстро понять, в какой системе АС произошла проблема.

Монитор работы АС
Монитор работы АС

Итоги проведённой работы

По итогу сервис выглядит максимально просто, основная логика расшифровки находится на стороне сервера, для быстрой реализации чего-то нестандартного. На этапе планирования была идея паять CAN-преобразователи самим, но это было нецелесообразно, так как проще купить готовое решение. На рынке таких много, и почти все они работают по одному принципу. Есть достаточно дешёвые и крепкие образцы.

Этот сервис мы используем на многих видах карьерной техники и других устройствах, благодаря нему мы смогли предсказывать возможные поломки транспорта и устранять их до наступления более глобальных и дорогих неисправностей. Также мы получили доступ к большому количеству данных, с помощью которых мы можем улучшить работу предприятия и сократить затраты.

Теги:
Хабы:
0
Комментарии27

Публикации

Информация

Сайт
www.severstal.com
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия