Initial: backup from Claude Project 'навозоудаление OWEN'

- 8 project files from Claude Project Knowledge (MD)
- CHAT_DIGEST.md: synthesis of 5 chats (architecture, status, solved issues)
- INDEX.md: full manifest with notes on missing PDFs and .owle files
- Missing: ManureRemoval_v2.owle (local), 2 PDF manuals (binary, too large for write_file)
This commit is contained in:
admin
2026-04-30 12:26:07 +03:00
commit 802671f443
12 changed files with 739 additions and 0 deletions
+262
View File
@@ -0,0 +1,262 @@
# Навозоудаление OWEN — выжимка из чатов
**Дата компиляции:** 30 апреля 2026
**Источник:** conversation_search по проекту "Система навозоудаления"
**Найдено уникальных чатов:** 5 (с 4 февраля по 16 февраля 2026)
---
## Архитектура решения (ПЛК, датчики, исполнительные устройства)
### Топология
```
┌─────────────────────────────────────────────────────┐
│ ШКАФ КОРПУСА №1 │
│ │
│ ПР200-220.2.2.0 │
│ ├─ COM1 (Slot 1) → Modbus SLAVE → СП307 панель │
│ │ 9600, 8N2, адрес ПЛК = 16 │
│ └─ COM2 (Slot 2) → Modbus MASTER → 4× ONI SFB-33 │
│ 9600, 8N1 (или 8N2), интервал опроса 100 мс │
│ │
│ СП307-Б (7" сенсорный) │
│ ├─ PLC порт → ПР200 (Modbus RTU Master) │
│ └─ Download порт → MAX485 → ESP32 (удалёнка через │
│ WiFi → CRM сервер) │
│ │
│ 4× ONI SFB-33-D55-A-10 (плавные пуски) │
│ Адреса Modbus: 1, 2, 3, 4 │
└─────────────────────────────────────────────────────┘
```
### Двигатели и защита
| № | Тип | Мощность | Iном (FLA) | Уставка перегрузки | ONI |
|---|-----|----------|------------|--------------------|-----|
| 1 | Горизонтальный | 4 кВт | 12 А | **15.0 А (125%)** | #1 |
| 2 | Горизонтальный | 4 кВт | 12 А | **15.0 А (125%)** | #2 |
| 3 | Наклонный | 2.2 кВт | 10 А | **11.5 А (115%)** | #3 |
| 4 | Наклонный | 2.2 кВт | 10 А | **11.5 А (115%)** | #4 |
### Соответствие входов/выходов ПР200
```
Входы: Выходы:
I1 → MC_Motor1.btn_Start Q1 ← MC_Motor1.Run
I2 → MC_Motor1.btn_Stop Q3 ← MC_Motor2.Run
I3 → MC_Motor2.btn_Start Q5 ← MC_Motor3.Run
I4 → MC_Motor2.btn_Stop Q7 ← MC_Motor4.Run
I5 → MC_Motor3.btn_Start F1-F4 — светодиоды (планируется)
I6 → MC_Motor3.btn_Stop
I7 → MC_Motor4.btn_Start
I8 → MC_Motor4.btn_Stop
```
### Карта Modbus (ONI SFB-33, COM2 Master)
**Чтение (FC 0x04, Input Registers):**
| Параметр | Адрес | Тип | Формула |
|----------|-------|-----|---------|
| Средний ток | 30007 | UINT16 | I = value × FLA / 100 |
| Статус системы | 30009 | UINT16 | Биты: Stop/Accel/Bypass/Run |
| Код аварии | 30011 | UINT16 | 0=норма, 1=перегрев, 3=превышение тока |
**Запись настроек (FC 0x06, Holding Registers):**
| Параметр | Адрес | Диапазон | Формула |
|----------|-------|----------|---------|
| FLA (номинальный ток) | 40002 | 1-150 А | прямо в Амперах |
| UStart% (нач. напряжение) | 40010 | n=0-13 | UStart% = 30 + n×3 |
| TStart (время разгона) | 40011 | n=0-15 | TStart = n×2 сек |
| TStop (время торможения) | 40012 | n=0-15 | TStop = n×2 сек |
| **Управление через Modbus** | **40013** | 0 или 1 | **0=потенциометры, 1=Modbus — ОБЯЗАТЕЛЬНО 1!** |
**Команды (FC 0x05, Coils):**
| Команда | Адрес | Действие |
|---------|-------|----------|
| Пуск/Стоп | 00001 | 0=Стоп, 1=Пуск |
| Сброс аварии | 00008 | 1=Сброс (импульс!) |
### Карта Modbus (ПР200 Slave, COM1, для СП307)
| Регистр | Имя | Направление |
|---------|-----|-------------|
| 512-515 | SL_Fault1..4 | ПЛК → Панель |
| 516-519 | SL_Overload1..4 | ПЛК → Панель |
| 520-523 | SL_Current1..4 | ПЛК → Панель |
| 524-527 | SL_Reset1..4 | Панель → ПЛК |
| 528 | SL_Mode | Панель → ПЛК (на будущее) |
| 529 | SL_EmgStop | Панель → ПЛК |
### Блок MotorControl (актуальная версия от 15 февраля)
```pascal
VAR_INPUT
btn_Start: BOOL; // Кнопка ПУСК (физическая или Toggle)
btn_Stop: BOOL; // Кнопка СТОП
btn_EmgStop: BOOL; // Аварийный стоп (PanelEmgStop)
Current: UDINT; // Ток от ONI через Modbus
CurrentLimit: UDINT; // Уставка перегрузки
Reset: BOOL; // Сброс аварии (физ. или PanelReset)
END_VAR
VAR_OUTPUT
Run: BOOL; // Команда на двигатель
Fault: BOOL; // Флаг аварии (UDINT по факту)
Overload: BOOL; // Флаг перегрузки (UDINT по факту)
ONI_Command: BOOL; // ИМПУЛЬС сброса для ONI Modbus
CurrentOut: UDINT; // Ток на выход для панели
END_VAR
```
**Логика сброса:** повторное нажатие ПУСК при наличии Fault → импульс ONI_Command → запись в катушку 00008 ONI → сброс аварии в плавном пуске.
### Кабельная разводка
- **ПР200 ↔ ONI:** A/B перепутаны! ПР200 A+ → ONI B, ПР200 B → ONI A+ (учтено в проекте)
- **ПР200 ↔ СП307:** DB-9F на стороне панели, pin 7 = A, pin 8 = B (разъём заказан)
### Удалённый мониторинг (на будущее)
ESP32 + MAX485 (~600₽/система) подключается к Download-порту СП307 (Modbus RTU Slave). 9 систем = ~5400₽ vs 22 500₽ для RS-485↔Ethernet конвертеров. ESP32 → WiFi → роутер → CRM-сервер на Node.js.
---
## Текущий статус (% готовности, что работает, что нет)
**Прогресс по разным чатам менялся: 70% (4 фев) → 85% (6 фев) → ~30% после рестарта на новом проекте ManureRemoval_v2 (16 фев).**
### Актуальное состояние (на 16 февраля 2026)
Идёт переделка с нуля на новый проект `ManureRemoval_v2.owle` с принципиальными улучшениями:
- Toggle-логика вместо отдельных ПУСК/СТОП (освобождает входы под датчики)
- Запись настроек ONI (UStart, TStart, TStop) прямо из ПЛК через Modbus
- Полноценный Modbus Slave для СП307 (18 переменных, регистры 512-529)
- Подход: создать FBD-логику на главной схеме → выделить → Создать макрос (это работает в OWEN Logic, в отличие от попыток создать FBD-блок напрямую)
### Что работает (✅)
- Блок MotorControl скомпилирован, 0 ошибок (UDINT для Current/CurrentLimit/Fault/Overload)
- 4 экземпляра MC_Motor1..4 на FBD схеме
- Все 8 кнопок I1-I8 подключены
- Выходы Run → Q1, Q3, Q5, Q7
- Modbus Master на Слоте 2 настроен (4 устройства ONI, адреса 1-4)
- Modbus Slave на Слоте 1 настроен (адрес 16, 18 переменных)
- Сетевые переменные созданы: Current_Motor1..4, FaultReset_Motor1..4
- Конфигуратор СП3хх установлен, проект «Панель_навозоудаления» создан
- Дизайн 3 экранов согласован (главный / настройки с паролем / режим)
### Что в работе (⏳)
- Связь сетевых переменных Modbus с входами/выходами блоков на FBD
- Создание FBD-макроса MotorControl_Logic (выделить блоки → правый клик → Создать макрос)
- Тиражирование макроса на M2, M3, M4
### Что не начато (❌)
- Экраны панели СП307 (рисование в Конфигураторе СП3хх)
- Мониторинг связи ONI (переменные Статус/Опрос)
- Автоматический режим работы по датчикам (телега, уровень в приямке)
- Моточасы и логирование
- ESP32 удалённый мониторинг
---
## Открытые вопросы / TODO
### 🔴 Критично
1. **Дочистить переменные подключения Modbus** к блокам MotorControl (Current_Motor1..4 → MC_MotorN.Current; FaultReset_Motor1..4 ← MC_MotorN.ONI_Command).
2. **Включить управление через Modbus** — в каждый ONI записать `40013 = 1`, иначе записи в 40010-40012 будут проигнорированы.
3. **Построить FBD-макрос MotorControl_Logic** на главной схеме и тиражировать на M2-M4 (~2-3 часа работы).
4. **Скомпилировать (F7) и загрузить в ПР200** через USB.
### 🟠 Высокий приоритет
5. **Экраны панели СП307** в Конфигураторе СП3хх:
- Главный: 4 карточки моторов 2×2 (Run/Fault/Overload индикаторы, Current÷10 для отображения, кнопка Сброс на каждый)
- Настройки (с паролем 1234): UStart%, TStart, TStop, уставка перегрузки, FLA на каждый мотор
- Режим: Ручной / Авто (заглушка)
6. **Тестовый стенд** — собрать с минимумом железа: 220 В, 8 кнопок, 4 лампы 220 В на Q1/Q3/Q5/Q7 (выходы у ПР200-220 — сухие реле, 8 А @ 220 В AC).
### 🟡 Средний приоритет
7. Мониторинг связи ONI (переменные Poll_ONI1..4 = TRUE; Status_ONI1..4).
8. Светодиоды F1-F4 = Fault1..4 (индикация на корпусе ПР200).
### 🟢 Низкий приоритет (на будущее)
9. **Автоматика** по сценарию: датчик телеги (I3?) → последовательный пуск M1→M2→M3→M4 с задержкой 5 сек → контроль уровня в приямке (I4 high / I5 low) → стоп горизонтальных при заполнении приямка → доочистка 10 сек после отъезда телеги.
10. Моточасы каждого двигателя.
11. Логирование аварий с временем.
12. Удалённый мониторинг через ESP32+MAX485 на Download-порт СП307.
### ❓ Вопросы для уточнения
- Регистр 30007 в OWEN Logic — вводится как `7`, `6` или `30007`? (зависит от того, как программа считает смещение; начать с `7`, при отсутствии чтения попробовать `6`)
- На 9 систем: 9 ESP32 (по одному на корпус, 5400₽) или 3 ESP32 (по 3 системы каждый, 1800₽)?
---
## Решённые проблемы (что починили, как)
### 1. Ошибки компиляции в блоке MotorControl (16 → 11 → 12 → 0)
**Решение:** упростили блок — убрали TON-таймеры, оставили только BOOL + REAL (потом перешли на UDINT). Принцип: «простая работающая версия лучше сложной нерабочей».
### 2. ModbusRead, который ломал симуляцию
**Решение:** нашли остаточный блок ModbusRead на схеме и удалили. Симуляция OWEN Logic при наличии Modbus-блоков может валиться — для тестов проще загружать в реальный ПР200 через USB.
### 3. Перепутанные A/B на RS-485 ПР200↔ONI
**Решение:** учтено в монтаже — ПР200 A+ → ONI B, ПР200 B → ONI A+. Не меняем в проекте, меняем в кабеле.
### 4. ONI_Command копировал Run вместо импульса
**Решение:** перевели ONI_Command на детектор фронта (R_TRIG) от Reset — теперь это короткий импульс именно для записи в катушку 00008 ONI.
### 5. Куча проводов на схеме (72 на 4 двигателя)
**Решение:** сократили интерфейс блока MotorControl, сетевые переменные Modbus используются прямо внутри блока, наружу выведены только минимально необходимые сигналы. Стало ~20 проводов вместо 72.
### 6. Нельзя создать пользовательский FBD-блок
**Решение:** в OWEN Logic пользовательские функциональные блоки только на ST. НО: можно выделить FBD-элементы на главной схеме → правый клик → **«Создать макрос»** — получается переиспользуемый визуальный блок. Это и есть профессиональный путь.
### 7. Симулятор OWEN Logic не работал, не понятно где вводить переменные
**Решение:** в упрощённой версии OWEN Logic нет дерева проекта как в CODESYS. Глобальные переменные создаются через таблицу переменных и через элементы «Константа» прямо на FBD-схеме (правый клик → Вставка → Константа).
### 8. Дорогое удалённое подключение для 9 систем (RS-485↔Ethernet конвертеры по ~2500₽)
**Решение:** использовать встроенный Download-порт СП307 как Modbus RTU Slave + ESP32 с MAX485 (~600₽). Экономия ~17 100₽ на парк из 9 систем.
### 9. Сброс аварии без свободных входов
**Решение:** все 8 входов заняты ПУСК/СТОП. Сброс реализован двумя путями: (а) повторное нажатие ПУСК при активном Fault → ONI_Command импульс; (б) кнопка «Сброс» на панели СП307 → SL_Reset1..4 (рег. 524-527) → PanelReset вход блока.
---
## Полезные ссылки и команды
### Файлы проекта
- `test2.owle` — старый проект (на ПК пользователя)
- `ManureRemoval.owle` — наследие от предыдущего программиста (с заготовкой автоматики, не работает)
- `ManureRemoval_v2.owle` — текущий, переделанный с нуля
### Документация ОВЕН
- ПР200 функционал: https://owen.ru/product/pr200/functional
- ПР200 спецификации: https://owen.ru/product/pr200/specifications
- ПР200 примеры: https://owen.ru/product/pr200/primeri_primeneniya
- РП OWEN Logic версия 2.11 — приложен к проекту PDF
- Руководство ONI SFB-33 — приложен к проекту PDF (`onisfbrukov.pdf`)
### Софт
- **OWEN Logic 2.10.367.0** — основная среда (FBD), для ПР200 + СП307. **НЕ CODESYS!**
- **Конфигуратор СП3хх (SP3xx Configurator)** — для рисования экранов СП307
### Компиляция и загрузка
- Build → Compile (F7) — должно быть 0 ошибок
- Online → Загрузить (или Alt+F8 / Ctrl+F11) — выбрать USB-порт COM3..COM10
### Стандартные параметры Modbus
- COM2 Master ↔ ONI: **9600, 8N1**, период опроса 100-1000 мс, таймаут 1000 мс, 3 попытки
- COM1 Slave ↔ СП307: **9600, 8N2**, адрес ПЛК = 16
### Принципы, которые проект подтвердил
1. Делать сразу как надо, без переделок (запрос пользователя — переделать всё под Modbus-управление настройками ONI и панелью СП307, а не оставлять дискретное управление).
2. Простая рабочая версия лучше сложной нерабочей.
3. Адреса в OWEN Logic не вводятся через `%IX0.0` — I1..I8 уже сами на схеме, тащить проводом.
4. На сложных задачах макрос (FBD) выгоднее ST-блока для понимания, ST-блок выгоднее для расчётов.