Система безпеки oCBot: Захист від аварій
Дистиляція та ректифікація, це процеси, пов'язані з нагріванням горючих рідин та виділенням легкозаймистих спиртових парів. Тому безпека є найважливішим аспектом побудови та експлуатації будь-якої автоматики. oCBot містить гнучкі інструменти для автоматичного виявлення аварійних ситуацій та миттєвого знеструмлення системи.
Дворівнева концепція безпеки#
Система безпеки в oCBot побудована за гнучким дворівневим принципом:
Конфігурація на рівні периферії: Ще на етапі налаштування обладнання та давачів у веб-інтерфейсі ви маєте можливість призначити будь-який давач або фізичний пристрій як потенційне джерело аварії. Це дає змогу визначити межі безпечної роботи (наприклад, критичні температури чи стани контактів) безпосередньо для кожного пристрою, позначивши відповідний чекбокс.

Логіка на рівні сценаріїв та скриптів: У C++ скриптах та сценаріях автоматизації ці давачі використовуються для реагування на події в реальному часі. У налаштуваннях скрипта на вкладці «Безпека» («Аварії») ви можете описувати будь-які умови та алгоритми порівняння, ініціюючи аварійне зупинення (
triggerEmergencyShutdown) при виході показників за встановлені межі.
Такий підхід гарантує повну свободу налаштування та дозволяє адаптувати безпеку під особливості будь-якого процесу.
Основні типи аварійних давачів#
Для захисту обладнання та приміщення рекомендується встановити та налаштувати такі давачі:
1. Давач температури ТСА (Трубка Зв'язку з Атмосферою)#
- Призначення: Детекція прориву спиртових парів. Якщо вимкнеться охолоджуюча вода дефлегматора, гаряча пара почне виходити через ТСА.
- Логіка роботи: давач температури DS18B20 закріплюється на виході ТСА. Якщо температура перевищує встановлений поріг (наприклад, > 50°C), це свідчить про аварію.
2. Давач розливу рідини (протікання)#
- Призначення: Детекція протікання води охолодження або переливу спирту на підлогу.
- Логіка роботи: Два контакти, розташовані на мінімальній відстані від підлоги. При потраплянні води опір між ними різко падає, замикаючи цифровий вхід автоматики.
3. Давач надлишкового тиску в кубі#
- Призначення: Захист від вибуху куба у разі засмічення колони або закриття кранів.
- Логіка роботи: Механічний пресостат або аналоговий сенсор тиску.
давачі безпеки повинні мати найвищий пріоритет обробки в коді. Опитування цих давачів та реакція на аварію мають відбуватися постійно, незалежно від стану виконання основного алгоритму перегонки.
Приклад реалізації безпеки у кастомному скрипті oCBot#
Для гарантування безпеки у сценаріях використовують блок перевірки умов у методі loop(). Ось приклад безпечного циклу перегонки:
#include "OcbScript.h"
class SafeDistillation : public OcbScript {
private:
int tsaSensorId; // давач температури ТСА (DS18B20)
int leakSensorId; // давач розливу на підлозі (цифровий пін)
int heaterRelayId; // Реле нагріву (ТЕН)
int waterValveId; // Клапан подачі води охолодження
const float maxTsaTemp = 48.0; // Максимально допустима температура ТСА
public:
SafeDistillation() {
tsaSensorId = 1;
leakSensorId = 4;
heaterRelayId = 2;
waterValveId = 5;
}
void init() override {
logMessage("Сценарій з контролем безпеки запущено.");
}
void loop() override {
// 1. Зчитуємо показники безпеки
float tsaTemp = getPeripheralValue(tsaSensorId);
bool isLeaking = (getPeripheralValue(leakSensorId) > 0.5); // 1.0 - протікання
// 2. Перевірка на аварійні ситуації
if (tsaTemp > maxTsaTemp) {
triggerEmergencyShutdown("АВАРІЯ: Перегрів ТСА! Температура: " + String(tsaTemp, 1) + "°C");
return;
}
if (isLeaking) {
triggerEmergencyShutdown("АВАРІЯ: Виявлено протікання рідини на підлозі!");
return;
}
// 3. Основний алгоритм перегонки (якщо все безпечно)
// Наприклад, тримаємо ТЕН увімкненим
setPeripheralValue(heaterRelayId, 1.0);
}
// Функція негайного безпечного вимкнення обладнання
void triggerEmergencyShutdown(String reason) {
setPeripheralValue(heaterRelayId, 0.0); // Знеструмлюємо ТЕН
setPeripheralValue(waterValveId, 0.0); // Перекриваємо воду або залишаємо для охолодження куба (залежно від логіки)
logMessage(reason);
logMessage("СИСТЕМА ЗУПИНЕНА! ВСІ НАГРІВАЧІ ВИМКНЕНО!");
stopScript(); // Зупиняємо роботу автоматики
}
};
Ніколи не покладайтеся виключно на програмне забезпечення для захисту від надлишкового тиску! На кришці вашого перегінного куба обов'язково повинен бути встановлений механічний підривний (скидний) клапан безпеки, налаштований на тиск спрацьовування не більше 50 кПа (для побутових дистиляторів).