802671f443
- 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)
263 lines
18 KiB
Markdown
263 lines
18 KiB
Markdown
# Навозоудаление 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-блок выгоднее для расчётов.
|