Добавить в корзинуПозвонить
Найти в Дзене
Геннадий Антонов

Python + Raspberry Pi + Modbus TCP = массовый пуск осциллографов

В прошлой статье, я обещал рассказать, как мне пригодился массовый пуск осциллографов, в одной реальной рабочей ситуации, когда происходили странные отключения оборудования. Итак, имеем в наличии распредустройство 10 кВ, 2 секции шин по 10 кВ, 2 ввода и секционный выключатель. На секциях шин подключены трансформаторные фидеры и высоковольтные моторы. Трансформаторы, в свою очередь питают низковольтные распредустройства по 0,38 и 0,66 кВ. На распредустройстве 10 кВ имеем устройство БАВР (быстродействующее автоматическое включение резерва). Через БАВР там был сделан ручной перевод питания с ввода 10 кВ на секционный, без потери питания. Так вот, проблема была в том, что при таком ручном переводе питания на 10 кВ, загадочным образом, отключались низковольтные моторы 0,66 и 0,38 кВ. Причем отключались они не все, а по разному: когда 1 мотор отключится, когда 3 штуки за раз. На тот момент, никакой логичной закономерности эти отключения моторов не поддавались. Осциллографы в терминала

В прошлой статье, я обещал рассказать, как мне пригодился массовый пуск осциллографов, в одной реальной рабочей ситуации, когда происходили странные отключения оборудования.

Итак, имеем в наличии распредустройство 10 кВ, 2 секции шин по 10 кВ, 2 ввода и секционный выключатель.

На секциях шин подключены трансформаторные фидеры и высоковольтные моторы. Трансформаторы, в свою очередь питают низковольтные распредустройства по 0,38 и 0,66 кВ.

На распредустройстве 10 кВ имеем устройство БАВР (быстродействующее автоматическое включение резерва).

Через БАВР там был сделан ручной перевод питания с ввода 10 кВ на секционный, без потери питания.

Так вот, проблема была в том, что при таком ручном переводе питания на 10 кВ, загадочным образом, отключались низковольтные моторы 0,66 и 0,38 кВ. Причем отключались они не все, а по разному: когда 1 мотор отключится, когда 3 штуки за раз.

На тот момент, никакой логичной закономерности эти отключения моторов не поддавались.

Осциллографы в терминалах РЗА кроме ввода и секционного нигде не пускались.

А что если запустить все осциллографы всех потребителей, в момент команды на ручной перевод, как низковольтные так и высоковольтные?

Поскольку я точно знал, что происходит это во время ручной команды на перевод питания, то можно было бы каким то образом преобразовать эту команду в цифровой вид, и транслировать её на пуск осциллографов всех устройств подстанции.

Команда уходила при нажатии кнопки на панели оператором. К счастью, на этой кнопке оказался второй свободный незанятый контакт, а у меня, в закормах, плата разработчика Raspberry Pi 3 b+

Свободный контакт с кнопки, я подключил на вход GPIO моей платы Raspberry Pi.

Raspberry Pi 3 b+, с входами-выходами GPIO
Raspberry Pi 3 b+, с входами-выходами GPIO

Для Raspberry Pi была написана программа на Python, которая бы принимала команду с кнопки и GPIO, и выдавала бы в параллельном режиме команду на пуск всех осциллографов через Modbus TCP.

Но тут всплыла ещё одна проблема.

Поскольку терминалами РЗА на подстанции высоковольтными и низковольтными являлись Sepam 80, отдельного внимания заслуживает метод пуска осциллографов через Modbus TCP.

Официально, через внешнюю цифровую команду, там есть возможность пустить осциллограф, через добавление специальных элементов в свободно-программируемой логике Logipam.

Пример логики из Logipam Sepam
Пример логики из Logipam Sepam

Однако, на подстанции имелось порядка 48 штук Sepam. Чтобы подготовить логику для такого количества устройств, это нужна уйма времени. К тому же большинство из них было в работе. Также в Sepam 80 перезапись логики подразумевает перезагрузку терминала, да и схема там была сделана таким образом, что при перезагрузке, выключатель отключается.

Вроде как получалось, что можно было бы практически распрощаться с этой прекрасной идеей о массовом пуске осциллографов.

Все же, после некоторого анализа, мне удалось найти недокументированные возможности Sepam 80, когда была найдена возможность пускать осциллограф по Modbus TCP вообще без каких либо переделок логики!

Данную возможность я немедленно внедрил в программу для Raspberry Pi, программу успешно опробовал, а затем и провел уже и нужный пуск всех осциллографов, одновременно с командой оператора на ручной перевод питания через БАВР.

Последовательность действий
Последовательность действий

Записанные осциллограммы с всех терминалов были скачаны за минуты, с помощью другой моей разработки (смотрите - Python загрузка осциллограмм). В обычном режиме это заняло бы пару дней.

После анализа осциллограмм, в тот же день, стала понятна причина, по которой отключались низковольтные моторы.

Были выданы рекомендации, как избежать этого нежелательного режима.

Также с помощью данных осциллограмм, записанных практически одновременно, было получено много любопытной информации о процессах происходящих в энергосистеме, в момент ручного перевода питания.