Часть 1. Как я производство автоматизировал: от «я всё делаю руками» к «система уже всё сделала»
или как кнопка "Проверить" ускорила проверку и выпуск устройств контроля питания в несколько раз.
Предисловие
«“Я знаю, что ничего не знаю” — говорил Сократ. Именно так я чувствовал себя, когда решил автоматизировать проверку модулей, требующую множества ручных операций».
Зовут меня Никита aka sadoviy_gnom, и сегодня я расскажу, как превратил рутинные проверки электронных модулей в почти магический процесс. Но обо всём по порядку.
Немного обо мне
«Как-то раз я случайно погасил подстанцию. Коллеги до сих пор шутят, что в тот день все вспомнили, как выглядит звёздное небо.»
Об опыте в сфере энергетики
- Релейная защита - настраивал «умные» защиты, которые за миллисекунды определяли, где случилось КЗ (короткое замыкание, а не «кто здесь»).
- Телемеханика - это как геймпад для энергосистемы. Ты сидишь за компом, а где-то в тайге твои команды включают выключатели на ВЛ.
А если серьезно, кто знает - понимает что все немного сложнее... :)
Чему научился:
— Страху. Осознание, что от твоей работы зависит порой критическая инфраструктура, — лучший мотиватор не косячить.
— Точности. Одна небольшая оплошность в настройке — и может получится фейерверк.
— Терпению. Когда ждёшь дежурного, сначала целый день, а потом всю ночь, для того чтобы выполнить плановые работы за 15 минут.
О программировании
- Я жил с мечтой стать «программистом», начиная с Pascal. Потом был Delphi и это было как пересесть с велосипеда на космический корабль, который почему-то назывался «Borland».
- После я застрял в Java-джунглях. Сертификаты OCA 1Z0-808 и 1Z0-809 стали моими талисманами.
Как я попал на производство?
— Условие вакансии: «Знаете любой ЯП? Хоть эльфийский? Опыт в сфере АСУТП есть?!»
— Моё резюме: «Java, базовый SQL и 100% уверенность, что “NullPointerException” — это про меня».
Итог: Меня взяли. Видимо, за упорство (ну еще, потому что в предметной области я хорошо разбирался).
Почему я вообще за это взялся?
Представьте: небольшая компания, производящая устройства для автоматизации энергетических систем и не только. Я имел опыт, а потому хорошо понимал боль заказчиков.
После месяца работы на производстве и наблюдений за тем, как коллеги “залипали” на одних и тех же тестах, я не выдержал. Тогда я и понял: ручная проверка — это не просто долго и скучно, а иногда даже опасно.
Почему руки больше не вариант
Время. Один модуль — 4 часа. Десять модулей — неделя. А объем производства увеличивается? Заказчик ждет?
Надёжность. Система не может заболеть или филонить если ей стало лень.
Безопасность. Шаловливые руки всегда хотят полезть куда-то и потрогать что-то
Свобода. Представьте: оператор, который вместо того, чтобы как робот стоять рядом с устройством, наконец-то может... *продолжи фразу
*
созерцатьработать над другой задачей.
Автоматизация — это не про увольнения. Это про то, чтобы оператор контролировал процесс, а не был его заложником.
«Автоматизировать нельзя оставить» — запятая здесь была очевидна. Но как собрать систему, которая заменит и глаза, и руки, и мозг уставшего инженера? Об этом — дальше.
Ближе к сути! Проблема
«Ручная проверка модуля напоминала игру в “Сапёра”: один неверный шаг — и получаешь дым из корпуса. Но после нескольких таких “игр” я решил: хватит это терпеть. Идея разработать стенд стала необходимостью , а кнопка “Проверить” — молотом, который разобьет рутину».
Ручная проверка одного модуля контроля питания занимала “часы”, а если быть точным то минимум 4 часа. Оператор вручную тестировал входные/выходные каналы, датчики температуры и связь, сверяя десяток параметров, логику и т.д. Ошибки случались регулярно.
«Что за зверь — модуль контроля питания? Как он спасает от апокалипсиса?»
Модуль предназначен для контроля и управления схемой питания систем автоматизации напряжением постоянного тока.
Основные функции:
Мониторинг питания
— Контроль напряжения на входах/выходах. 24/48V DC (зависит от модификации)
— Автопереключение между основным, резервным и аварийным (АКБ) источниками при сбоях.Управление АКБ
— Заряд аккумулятора при критическом разряде.
— Отключение от АКБ при восстановлении внешнего питания.Терморегуляция
— Включение кабельного обогрева при падении температуры ниже заданного порога.
Принцип работы модуля:
Модуль автоматически переключает питание между источниками:
- Основной канал (IN1) — приоритетный.
- Резервные (IN2, IN3*) — активируются при отключении IN1 (в модификациях 24V40A/48V40A добавлен IN4).
- Аварийный (АКБ) — включается при потере всех внешних источников. О переходе в аварийный режим система уведомляет верхний уровень.
Управление АКБ:
- Заряд включается/отключается автоматически в зависимости от напряжения.
- При критическом разряде модуль отключается от АКБ.
- При восстановлении внешнего питания — возврат в штатный режим.
Температурный контроль:
- Цифровой интерфейс 1-Wire поддерживает до 5 датчиков.
- Обогрев активируется автоматически на выбранном датчике при низкой температуре.
Световая сигнализация:
- Наличие напряжения: основной/резервные каналы, АКБ, выходные цепи.
- Статус процессора, заряд АКБ, готовность к автономной работе.
- Состояние связи по RS-485.
Что было нужно?
- Стенд, способный проверять несколько устройств без участия оператора.
- Гибкость под разные конфигурации (6 модификаций!).
- Авто отчётность — чтобы не тратить время на составление протоколов проверки.
«Делай, что можешь, с тем, что имеешь, там, где ты есть» (Рузвельт).
«У меня был 1 неттоп, 75 метров проводов разного сечения, 5 датчиков температуры, полкоробки реле и пол коробки контакторов, целое множество разъёмов всех форм и размеров, а также паяльник, осциллограф, модули нашего производства, ящик кофе, литр терпения и пара бутылок чего-то жидкого. Не то чтобы всё это строго входило в техническое задание которое я сам себе придумал…»
Реализация: начало
Я разделил проект на две части:
1. Аппаратная — сборка стенда с универсальными разъёмами, имитацией нагрузок и различных датчиков.
2. Программная — веб-интерфейс с кнопкой «Проверить», который управляет всем этим хозяйством.
В следующих частях:
- Лайфхаки: как я превратил неттоп в мозг стенда и заставил Python «дружить» с со всеми устройствами. Погоди, а при чем здесь Python!?
- Провалы: как я покалечил и спалил несколько устройств и не только... Кто не работает – тот не ошибается.
- Финал: как автоматизация сократила проверки с
1 модуля = 4 часа, до 5 модулей = 1 час 15 минут,
и как это освободило команду для других задач, а так же ускорило время выпуска и качество продукции.
Если не знаешь, куда идти, тогда все дороги хороши», — говорила Алиса. Я нашел свою дорогу. И вот что из этого вышло
Во второй части я покажу схему стенда, расскажу из чего его собирали и как это было.
Спойлер: без кофе и мата тут не обошлось.