This commit is contained in:
Mephimeow
2026-04-29 11:52:46 +00:00
parent 2b4d6c3441
commit 0f8a80b6e1
3 changed files with 544 additions and 0 deletions
+400
View File
@@ -0,0 +1,400 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Линия переработки лома — Схема процесса</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }
header {
text-align: center;
padding: 2rem 1rem 1rem;
background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
border-bottom: 1px solid #334155;
}
header h1 { font-size: 1.8rem; font-weight: 700; color: #38bdf8; }
header p { color: #94a3b8; margin-top: 0.5rem; }
.diagram {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 1.5rem;
padding: 2rem;
max-width: 1400px;
margin: 0 auto;
}
.stage {
background: #1e293b;
border: 2px solid #334155;
border-radius: 12px;
padding: 1.5rem;
width: 280px;
position: relative;
transition: all 0.3s ease;
cursor: default;
}
.stage:hover {
transform: translateY(-4px);
border-color: #38bdf8;
box-shadow: 0 8px 24px rgba(56, 189, 248, 0.2);
}
.stage-header {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 1rem;
}
.stage-icon {
width: 40px;
height: 40px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
}
.stage-num {
font-size: 0.75rem;
font-weight: 600;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.stage-title {
font-size: 1.1rem;
font-weight: 600;
color: #f1f5f9;
}
.stage-details {
list-style: none;
margin-top: 0.75rem;
}
.stage-details li {
font-size: 0.85rem;
color: #94a3b8;
padding: 0.25rem 0;
border-bottom: 1px solid #1e293b;
display: flex;
justify-content: space-between;
}
.stage-details li:last-child { border-bottom: none; }
.stage-details .label { color: #64748b; }
.stage-details .value { color: #cbd5e1; font-family: monospace; }
.arrow {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
color: #38bdf8;
font-size: 2rem;
animation: pulse 2s infinite;
}
.arrow-down {
width: 100%;
flex-direction: column;
}
@keyframes pulse {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
.group-label {
width: 100%;
text-align: center;
font-size: 0.9rem;
font-weight: 600;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 1rem 0 0.5rem;
position: relative;
}
.group-label::before, .group-label::after {
content: '';
position: absolute;
top: 50%;
width: 20%;
height: 1px;
background: #334155;
}
.group-label::before { left: 5%; }
.group-label::after { right: 5%; }
/* Цвета для разных групп */
.group-raw .stage-icon { background: #1e3a5f; }
.group-raw { border-color: #2563eb; }
.group-sort .stage-icon { background: #581c87; }
.group-sort { border-color: #9333ea; }
.group-process .stage-icon { background: #7c2d12; }
.group-process { border-color: #f97316; }
.group-output .stage-icon { background: #14532d; }
.group-output { border-color: #22c55e; }
.telemetry {
margin-top: 1rem;
padding: 0.5rem 0.75rem;
background: #0f172a;
border-radius: 6px;
font-size: 0.75rem;
font-family: monospace;
color: #38bdf8;
border: 1px solid #1e293b;
}
.telemetry::before {
content: 'MQTT: ';
color: #64748b;
}
.legend {
display: flex;
justify-content: center;
gap: 2rem;
padding: 1rem;
flex-wrap: wrap;
}
.legend-item {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.85rem;
color: #94a3b8;
}
.legend-dot {
width: 12px;
height: 12px;
border-radius: 4px;
}
@media (max-width: 768px) {
.stage { width: 100%; max-width: 360px; }
.arrow { transform: rotate(90deg); width: 30px; }
}
</style>
</head>
<body>
<header>
<h1>Линия переработки лома во вторичный гранулят</h1>
<p>Технологическая схема и телеметрия</p>
</header>
<div class="legend">
<div class="legend-item"><div class="legend-dot" style="background:#2563eb"></div> Сырье</div>
<div class="legend-item"><div class="legend-dot" style="background:#9333ea"></div> Сортировка</div>
<div class="legend-item"><div class="legend-dot" style="background:#f97316"></div> Переработка</div>
<div class="legend-item"><div class="legend-dot" style="background:#22c55e"></div> Готовая продукция</div>
</div>
<div class="diagram">
<!-- ГРУППА 1: СЫРЬЕ -->
<div class="group-label">Приемка и складирование сырья</div>
<div class="stage group-raw">
<div class="stage-header">
<div class="stage-icon">🚛</div>
<div>
<div class="stage-num">Этап 01</div>
<div class="stage-title">Разгрузка лома</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Рампа, весы</span></li>
<li><span class="label">Вход</span><span class="value">Лом полимеров</span></li>
<li><span class="label">Выход</span><span class="value">Взвешенная партия</span></li>
</ul>
<div class="telemetry">/sensor/weight/party</div>
</div>
<div class="arrow"></div>
<div class="stage group-raw">
<div class="stage-header">
<div class="stage-icon">📦</div>
<div>
<div class="stage-num">Этап 02</div>
<div class="stage-title">Склад сырья</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Зона хранения</span></li>
<li><span class="label">Контроль</span><span class="value">Уровень запасов</span></li>
<li><span class="label">Операция</span><span class="value">Буферизация</span></li>
</ul>
<div class="telemetry">/storage/raw/level</div>
</div>
<!-- ГРУППА 2: СОРТИРОВКА -->
<div class="group-label">Идентификация и сортировка</div>
<div class="stage group-sort">
<div class="stage-header">
<div class="stage-icon">📷</div>
<div>
<div class="stage-num">Этап 03</div>
<div class="stage-title">QR-сканирование</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Camera Module v3</span></li>
<li><span class="label">ПО</span><span class="value">pyzbar + OpenCV</span></li>
<li><span class="label">Результат</span><span class="value">Тип полимера</span></li>
</ul>
<div class="telemetry">/qr/result</div>
</div>
<div class="arrow"></div>
<div class="stage group-sort">
<div class="stage-header">
<div class="stage-icon">🤖</div>
<div>
<div class="stage-num">Этап 04</div>
<div class="stage-title">Сортировочный узел</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">S7-1200, приводы</span></li>
<li><span class="label">Логика</span><span class="value">Принять / Отклонить</span></li>
<li><span class="label">Скорость</span><span class="value">до 2 м/с</span></li>
</ul>
<div class="telemetry">/sorter/decision</div>
</div>
<!-- ГРУППА 3: ПЕРЕРАБОТКА -->
<div class="group-label">Переработка</div>
<div class="stage group-process">
<div class="stage-header">
<div class="stage-icon">⚙️</div>
<div>
<div class="stage-num">Этап 05</div>
<div class="stage-title">Дробление</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Шредер / Дробилка</span></li>
<li><span class="label">Привод</span><span class="value">SEW MOVITRAC</span></li>
<li><span class="label">Контроль</span><span class="value">Вибрация, ток</span></li>
</ul>
<div class="telemetry">/drive/vibration, /drive/current</div>
</div>
<div class="arrow"></div>
<div class="stage group-process">
<div class="stage-header">
<div class="stage-icon">💧</div>
<div>
<div class="stage-num">Этап 06</div>
<div class="stage-title">Мойка / Флотация</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Ванна, насосы</span></li>
<li><span class="label">Контроль</span><span class="value">Уровень, T воды</span></li>
<li><span class="label">Среда</span><span class="value">Вода + реагенты</span></li>
</ul>
<div class="telemetry">/sensor/level, /sensor/temp</div>
</div>
<div class="arrow"></div>
<div class="stage group-process">
<div class="stage-header">
<div class="stage-icon">🌡️</div>
<div>
<div class="stage-num">Этап 07</div>
<div class="stage-title">Сушка</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Центрифуга + сушилка</span></li>
<li><span class="label">Контроль</span><span class="value">T агента, влажность</span></li>
<li><span class="label">Цель</span><span class="value">< 2% влаги</span></li>
</ul>
<div class="telemetry">/sensor/dry/temp, /sensor/humidity</div>
</div>
<div class="arrow"></div>
<div class="stage group-process">
<div class="stage-header">
<div class="stage-icon">🔥</div>
<div>
<div class="stage-num">Этап 08</div>
<div class="stage-title">Экструзия</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Экструдер</span></li>
<li><span class="label">Привод</span><span class="value">ABB ACS880</span></li>
<li><span class="label">Контроль</span><span class="value">Давление, T зон</span></li>
</ul>
<div class="telemetry">/extruder/pressure, /extruder/temp</div>
</div>
<!-- ГРУППА 4: ГОТОВАЯ ПРОДУКЦИЯ -->
<div class="group-label">Упаковка и отгрузка</div>
<div class="stage group-output">
<div class="stage-header">
<div class="stage-icon">🕳️</div>
<div>
<div class="stage-num">Этап 09</div>
<div class="stage-title">Бункер гранулята</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Силос</span></li>
<li><span class="label">Контроль</span><span class="value">Уровень заполнения</span></li>
<li><span class="label">Объем</span><span class="value">до 10 м³</span></li>
</ul>
<div class="telemetry">/storage/granulate/level</div>
</div>
<div class="arrow"></div>
<div class="stage group-output">
<div class="stage-header">
<div class="stage-icon">🦾</div>
<div>
<div class="stage-num">Этап 10</div>
<div class="stage-title">Манипулятор</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Робот-упаковщик</span></li>
<li><span class="label">Безопасность</span><span class="value">Pilz PNOZ m1p</span></li>
<li><span class="label">Цикл</span><span class="value">~30 сек/паллет</span></li>
</ul>
<div class="telemetry">/robot/cycle, /robot/pallets</div>
</div>
<div class="arrow"></div>
<div class="stage group-output">
<div class="stage-header">
<div class="stage-icon"></div>
<div>
<div class="stage-num">Этап 11</div>
<div class="stage-title">Склад готовой продукции</div>
</div>
</div>
<ul class="stage-details">
<li><span class="label">Оборудование</span><span class="value">Зона хранения</span></li>
<li><span class="label">Контроль</span><span class="value">Инвентаризация</span></li>
<li><span class="label">Отгрузка</span><span class="value">По заказу</span></li>
</ul>
<div class="telemetry">/storage/finished/stock</div>
</div>
</div>
</body>
</html>
+102
View File
@@ -0,0 +1,102 @@
# Схема линии переработки лома во вторичный гранулят
## 1. Технологический процесс (Flowchart)
```mermaid
graph TD
%% Стили
classDef storage fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
classDef process fill:#fff3e0,stroke:#ff6f00,stroke-width:2px;
classDef control fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px;
classDef output fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px;
subgraph СЫРЬЕ
A[Разгрузка лома]:::storage
B[Склад сырья]:::storage
end
subgraph СОРТИРОВКА
C[QR-сканер + Камера]:::process
D[Сортировочный узел]:::control
end
subgraph ПЕРЕРАБОТКА
E[Подача / Дробление]:::process
F[Мойка / Флотация]:::process
G[Сушка]:::process
H[Экструзия / Грануляция]:::process
end
subgraph ГОТОВАЯ ПРОДУКЦИЯ
I[Бункер гранулята]:::storage
J[Манипулятор / Паллетирование]:::output
K[Склад готовой продукции]:::storage
end
A --> B
B --> C
C -- "Тип отклонен" --> B
C -- "Тип принят" --> D
D --> E
E --> F
F --> G
G --> H
H --> I
I --> J
J --> K
%% Данные в систему
C -.->|MQTT: QR-данные| M[Edge Controller]
D -.->|MQTT: Состояние| M
E -.->|MQTT: Ток/Вибрация| M
H -.->|MQTT: Температура/Давление| M
J -.->|MQTT: Счетчик паллет| M
```
## 2. Архитектура управления и данных
```mermaid
graph LR
subgraph УРОВЕНЬ ПОЛЕВОГО ОБОРУДОВАНИЯ
S1[QR Камера]
S2[Датчики ЧРП]
S3[Датчики T/P/V]
S4[Манипулятор ПЛК]
end
subedge Edge Gateway
G1[Node-RED / Python Bridge]
end
subedge MQTT BROKER
MQ[Mosquitto]
end
subedge SCADA & ХРАНЕНИЕ
DB[(InfluxDB)]
Graf[Grafana]
end
S1 -->|/qr/result| G1
S2 -->|/drive/telemetry| G1
S3 -->|/sensor/telemetry| G1
S4 -->|/robot/status| G1
G1 --> MQ
MQ --> DB
DB --> Graf
```
## 3. Таблица соответствия этапов и оборудования
| Этап | Действие | Оборудование (из `Line/`) | Телеметрия (MQTT) |
|:---|:---|:---|:---|
| **1. Разгрузка** | Приемка лома, взвешивание | `infrastructure_rittal`, `sensor_current` (весы) | Вес партии, ID поставки |
| **2. QR Сортировка** | Сканирование, валидация | `controller_raspberrypi`, `QR/scanner.py` | Тип полимера, цвет, статус |
| **3. Подача** | Загрузка на конвейер | `drive_danfoss`, `sensor_position` | Скорость ленты, наличие объекта |
| **4. Дробление** | Шредер / Дробилка | `sensor_vibration`, `drive_sew` | Вибрация подшипников, ток мотора |
| **5. Мойка** | Очистка, флотация | `sensor_level`, `sensor_temperature` | Уровень воды, T, расход химии |
| **6. Сушка** | Удаление влаги | `sensor_temperature` (бесконтактный) | T агента, влажность на выходе |
| **7. Экструзия** | Плавление, грануляция | `controller_siemens`, `drive_abb` | Давление в голове, T зон, нагрузка |
| **8. Манипулятор** | Упаковка, паллетирование | `safety_pilz`, `comm_hilscher` | Цикл завершен, кол-во коробок |
+42
View File
@@ -0,0 +1,42 @@
Контроллер (Edge / API Gateway)
* WAGO PFC200 (серия 750-83xx)
* IFM CR1201
* Beckhoff CX7000 / CX8000
* Siemens SIMATIC S7-1200 (с опцией OPC UA/REST)
* Raspberry Pi 4/5 + CODESYS (для прототипов)
Привод и ЧРП
* Danfoss VLT® AutomationDrive FC 302
* ABB ACS880
* Schneider Electric Altivar Process ATV600
* SEW-Eurodrive MOVITRAC® B / MOVI-C
* Lenze i550 Protect
Датчики (IO-Link)
* **Вибрация:** IFM VVB002, SICK VSE18
* **Температура (бесконтактная):** IFM O1D, OMRON E5CC
* **Позиция/Сход ленты:** SICK WTB4, Banner Q4X, IFM O5P
* **Ток/Мощность:** Danfoss MCD500 (встроенный мониторинг), Carlo Gavazzi EM210
* **Уровень/Присутствие:** Pepperl+Fuchs UC2000 (ультразвук)
Безопасность (Safety)
* Pilz PNOZ m1p / PNOZ X3
* Siemens SIRIUS 3SK1
* Schneider Electric Preventa XPS
Middleware / SCADA
* Node-RED (Industrial)
* Ignition Edge
* Kepware KEPServerEX
* Eclipse Mosquitto (MQTT Broker)
* Grafana + InfluxDB (для визуализации телеметрии)
Коммуникация
* Hilscher netTAP (шлюзы протоколов)
* Moxa NPort (Serial-to-Ethernet)
* Turck BL67 (модульные шлюзы)
Корпус и инфраструктура
* Rittal VX25 (шкаф управления)
* Phoenix Contact QUINT POWER (источники питания)
* Weidmüller IE-SW (промышленные коммутаторы)