added run_sequence_diagram.png

This commit is contained in:
pavel 2026-03-30 16:59:36 +03:00
parent 293e1e8018
commit f3d4e91c80
3 changed files with 118 additions and 1 deletions

View File

@ -1,2 +1,64 @@
# diesel_train
# SmartGen Reverse Engineering & CAN Bus Guide
Данный репозиторий/руководство посвящено техническому анализу и интеграции контроллеров **SmartGen** (серии HGM, HPD, HAT) в сторонние системы управления.
---
## 1. Реверс-инжиниринг CAN-шины (J1939)
В современных контроллерах SmartGen (например, **HGM7220**, **HGM9510**) CAN-шина используется для связи с блоком управления двигателем (ECU) и каскадирования генераторов.
### Основные задачи анализа CAN:
* **Слушание трафика (Sniffing):** Использование CAN-анализатора (например, USB-CAN или Arduino + MCP2515) для перехвата PGN-сообщений.
* **Протокол SAE J1939:** SmartGen использует стандарт J1939. Реверс-инжиниринг здесь заключается в сопоставлении ID сообщений с реальными параметрами (обороты, температура, давление масла).
* **Собственные PGN:** Некоторые данные (состояние контроллера, специфические аварии) передаются через проприетарные диапазоны PGN, которые требуют ручного декодирования.
### Популярные ID для мониторинга:
| Параметр | PGN (Hex) | Описание |
| :--- | :--- | :--- |
| **Engine Speed** | `00F004` | Обороты двигателя (EEC1) |
| **Coolant Temp** | `00FEEE` | Температура охлаждающей жидкости (ET1) |
| **Oil Pressure** | `00FEEF` | Давление масла (EFLP1) |
---
## 2. Протоколы и Интерфейсы
Помимо CAN, реверс-инжиниринг SmartGen затрагивает:
### RS485 (Modbus RTU)
Самый доступный способ интеграции. Большинство адресов регистров SmartGen открыты в официальных мануалах, но для старых или кастомных прошивок требуется:
1. Сканирование регистров (Holding Registers).
2. Анализ ответов для определения типов данных (Float, Int16, Bitmask).
### USB/PC Software
Программа **SmartGen Configuration Software** обменивается данными с контроллером через скрытые команды. Реверс-инжиниринг этого трафика позволяет создавать свои утилиты для быстрой прошивки и настройки парка генераторов.
---
## 3. Защита от обратной мощности (Reverse Power)
Если ваш запрос связан с термином *Reverse Power Protection* в контексте SmartGen (модули **HPD300**):
* **Назначение:** Предотвращение работы генератора в режиме мотора.
* **Логика:** Мониторинг вектора тока относительно напряжения. Если мощность становится отрицательной (потребление вместо выдачи), срабатывает реле.
* **Настройка:** Регулировка через потенциометры `Value` (порог в %) и `Delay` (задержка срабатывания).
---
## 4. Инструментарий для разработчика
Для работы с устройствами SmartGen рекомендуется:
1. **Железо:** USB-to-RS485 адаптер, USB-CAN анализатор (например, CandleLight или CANable).
2. **ПО:**
- `Wireshark` (с плагином для CAN).
- `Modscan` / `QModMaster` для проверки Modbus.
- `Python` + библиотеки `python-can` или `pymodbus`.
---
## Дисклеймер
*Данные материалы предназначены исключительно для образовательных целей и легальной интеграции оборудования. Автор не несет ответственности за выход оборудования из строя при попытках модификации прошивки.*
(сгенерировано google ИИ)

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -0,0 +1,55 @@
@startuml
participant "HGM6110" as SG
participant "Контроллер двигателя" as EC
participant "Реле топлива" as R
participant "Стартер" as S
note over SG
Задержка пуска (110 с)
end note
SG -> R : Включение реле топлива
note over SG
Выход топлива (25 с)
end note
SG -> EC : Команда запуска
EC -> S : Стартер ВКЛ
S -> EC : Прокрутка (до 10 с)
alt Успешный запуск
EC --> SG : Частота > порога
note over SG
Безопасное время (35 с)
end note
alt Низкое давление масла
note over SG : АВАРИЯ: Low Oil Pressure
SG -> EC : Стоп
else Перегрев
note over SG : АВАРИЯ: High Temp
SG -> EC : Стоп
else Нормально
note over SG : Холостой ход (520 с)
note over SG : Прогрев (10180 с)
note over SG : Авт ДГУ ВКЛ
note over SG : Нормальная работа
end
else Неудачный запуск
EC --> SG : Нет частоты
alt Перекрут (Overcrank)
note over SG : АВАРИЯ: Overcrank
SG -> EC : Блокировка пуска
else Низкое напряжение АКБ
note over SG : АВАРИЯ: Low Battery
else Повтор пуска
SG -> EC : Пауза (510 с)
SG -> EC : Повтор пуска (до 3 раз)
end
end
@enduml