Найти в Дзене
Геннадий Антонов

Осциллограммы, COMTRADE и большие данные.

Добрый день, друзья!

Хотелось бы на этот раз рассмотреть такую возможность как добыть данные из осциллограмм.

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

Для чего это может понадобится? Резонно может задать вопрос читатель.

А вот для чего.

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

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

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

Но если посмотреть под другим углом, ведь это же тоже большие данные!

А любые большие данные могут служить ценным источником информации.

Просто нужно научиться их использовать.

Ну а что можно сделать с осциллограммами? Наверное попробовать их как то "оцифровать". Вернее они уже оцифрованы, просто эти цифровые данные нужно каким то образом извлечь и использовать их для анализа в автоматическом режиме. Чтобы эту огромную базу осциллограмм обрабатывала машина, а не человек.

И все таки, даже в автоматическом режиме - что же полезного можно извлечь из базы данных осциллограмм?

Накидаю несколько примеров, которые мне помогли в реальной практике:

1) Иногда, при расчетах настроек релейной защиты, требуется проанализировать величину и характер пусковых токов. Зачастую это связано с моторными присоединениями. Осциллограммы записываются не только при пусках. По умолчанию они пишутся при пуске и работе защит. Часто осциллографирование ставят также и на операции с выключателями. В общем ситуации разные бывают, и именно найти осциллограммы с пусковыми токами, даже на одном фидере бывает не просто.

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

Файл осциллограммы с пусковыми токами моторной позиции, один из множества добытый в автоматическом режиме
Файл осциллограммы с пусковыми токами моторной позиции, один из множества добытый в автоматическом режиме

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

Делается это так.

Выбираются все осциллограммы, где имеется ток в трансформаторах тока, при отключенном положении выключателя.

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

Но в моем случае мне удалось выявить на нескольких фидерах именно такой случай.

Там были трансформаторы тока нулевой последовательности, с большой протяженностью токовых цепей, и расследование показало, что они были заземлены более чем в 1 точке (даже в 3-х).

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

3) Смотреть времена срабатывания силовых выключателей на включение и на отключение. Как вариант, отслеживать их в динамике - не увеличиваются ли они со временем?

В моем случае, мне удалось найти один выключатель время работы которого достигало более 1 секунды, что, мягко говоря, совсем не в порядке.

Найденный выключатель со временем работы 1,47 секунды
Найденный выключатель со временем работы 1,47 секунды

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

Я тут просто перечислил те ситуации, которые лично мне пригодились в жизни.

Найти же применение данной библиотеки еще как нибудь зависит лишь от вашей фантазии.

Чтобы реализовать это, мне пришлось разобрать досконально стандарт COMTRADE 1999 года, он же работает и для стандарта 2001 года, который, если я не ошибаюсь был отозван, но благополучно существует на терминалах РЗА например Sepam 80 серии.

Свою разработку я тестировал на уже указанных выше осциллограммах терминалов Sepam 80, а также на терминалах ABB REF620 и REF615 (ref используют стандарт 99 года).

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

Текстовый формат данных (есть такой, если кто не знает) я не стал реализовывать, поскольку он не слишком распространен, в основном везде, из-за экономии памяти, используются именно .dat формат оциллограмм.

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

Изначально я написал библиотеку для конвертации в данные файлов осциллограмм на чистом Python, но позже, переписал ее на С++, что дало прирост скорости в несколько раз.

В итоге анализ данных реализован в Python, внутри импортируется библиотека, скомпилированная на С++, которая перегоняет в данные файлы осциллограмм.

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

GitHub - antonovgp/relaycomtradelib

Рабочий пример и описание как пользоваться библиотекой вы найдете там же.