added run_sequence_diagram.png
This commit is contained in:
parent
293e1e8018
commit
f3d4e91c80
64
README.md
64
README.md
@ -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 ИИ)
|
||||
|
||||
|
||||
BIN
UML/sequence/run_sequence_diagram.png
Normal file
BIN
UML/sequence/run_sequence_diagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
55
UML/sequence/run_sequence_diagram.puml
Normal file
55
UML/sequence/run_sequence_diagram.puml
Normal file
@ -0,0 +1,55 @@
|
||||
@startuml
|
||||
participant "HGM6110" as SG
|
||||
participant "Контроллер двигателя" as EC
|
||||
participant "Реле топлива" as R
|
||||
participant "Стартер" as S
|
||||
|
||||
note over SG
|
||||
Задержка пуска (1–10 с)
|
||||
end note
|
||||
|
||||
SG -> R : Включение реле топлива
|
||||
note over SG
|
||||
Выход топлива (2–5 с)
|
||||
end note
|
||||
|
||||
SG -> EC : Команда запуска
|
||||
EC -> S : Стартер ВКЛ
|
||||
S -> EC : Прокрутка (до 10 с)
|
||||
|
||||
alt Успешный запуск
|
||||
EC --> SG : Частота > порога
|
||||
|
||||
note over SG
|
||||
Безопасное время (3–5 с)
|
||||
end note
|
||||
|
||||
alt Низкое давление масла
|
||||
note over SG : АВАРИЯ: Low Oil Pressure
|
||||
SG -> EC : Стоп
|
||||
else Перегрев
|
||||
note over SG : АВАРИЯ: High Temp
|
||||
SG -> EC : Стоп
|
||||
else Нормально
|
||||
note over SG : Холостой ход (5–20 с)
|
||||
note over SG : Прогрев (10–180 с)
|
||||
|
||||
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 : Пауза (5–10 с)
|
||||
SG -> EC : Повтор пуска (до 3 раз)
|
||||
end
|
||||
end
|
||||
|
||||
@enduml
|
||||
Loading…
Reference in New Issue
Block a user