diff --git a/README.md b/README.md index 55123a0..c423812 100644 --- a/README.md +++ b/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 ИИ) diff --git a/UML/sequence/run_sequence_diagram.png b/UML/sequence/run_sequence_diagram.png new file mode 100644 index 0000000..a788e94 Binary files /dev/null and b/UML/sequence/run_sequence_diagram.png differ diff --git a/UML/sequence/run_sequence_diagram.puml b/UML/sequence/run_sequence_diagram.puml new file mode 100644 index 0000000..50036a7 --- /dev/null +++ b/UML/sequence/run_sequence_diagram.puml @@ -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 \ No newline at end of file