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

Про виртуальный Ретом-Омикрон, генератор осциллограмм и прочие интересные вещи.

Продолжаю двигаться в разработке собственного рантайма, для устройства защиты и управления мотором. Начало - здесь. Для того чтобы дальше приступить к разработке защит, понадобились сигналы трёхфазного тока и напряжения. Оборудования для генерации сигналов, типа Омикрон-356 или Ретом 51-61, конечно же у меня не нашлось. Но даже если бы они и были, понадобилась бы аппаратная часть АЦП, настроенная и отлаженная. А сигналы нужны позарез. Не беда! Сделаем программно-виртуальный Ретом-Омикрон! Значит, задумал разработать программный генератор сигналов реального времени, пока на 8 аналоговых каналов, который имитирует выборки реального АЦП. Вот что получилось. Генератор работает на частоте 1000 Гц, 20 выборок на период. Амплитуды, фазы, частоты - можно менять в реальном времени, как и на настоящем Омикроне. Уже неплохо, однако генератор, это только часть решения, по генерации и обработки цифровых сигналов. Далее, понадобился модуль обработки цифровых сигналов, то бишь цифровой фильтр. Реали

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

Для того чтобы дальше приступить к разработке защит, понадобились сигналы трёхфазного тока и напряжения. Оборудования для генерации сигналов, типа Омикрон-356 или Ретом 51-61, конечно же у меня не нашлось. Но даже если бы они и были, понадобилась бы аппаратная часть АЦП, настроенная и отлаженная. А сигналы нужны позарез.

Не беда! Сделаем программно-виртуальный Ретом-Омикрон!

Значит, задумал разработать программный генератор сигналов реального времени, пока на 8 аналоговых каналов, который имитирует выборки реального АЦП. Вот что получилось.

Генератор работает на частоте 1000 Гц, 20 выборок на период. Амплитуды, фазы, частоты - можно менять в реальном времени, как и на настоящем Омикроне.

Уже неплохо, однако генератор, это только часть решения, по генерации и обработки цифровых сигналов.

Далее, понадобился модуль обработки цифровых сигналов, то бишь цифровой фильтр. Реализовал два метода обработки, на выбор: RMS и DFT. У данных цифровых фильтров минимальное время задержки - 20 миллисекунд.

Изначально, задумывал в своем рантайме реализовать запись осциллограмм. Тем более в устройстве Tesys T от Шнайдера, возможности записи осциллограмм так не хватало! Получилось следующим образом.

Осциллограф сейчас пишет осциллограммы по 5 секунд. Где 1 секунда пред-аварийный режим, а 4 секунды основная осциллограмма. Сделал, чтобы работал по стандарту COMTRADE 1999, с бинарным типом записи в файлы типа .dat . В осциллограмму пишет 8 аналоговых каналов (токи и напряжения) и 32 дискретных входа-выхода. Частота записи, такая же, 20 выборок на период, как и у генератора сигналов 1000 Гц, ну и в целом, все параметры изменяемые. Можно как и в генераторе сигналов добавить убрать число аналоговых или дискретных каналов. Запускаться осциллограф может по внешнему сигналу, про этот сигнал чуть подробнее ниже.

Последовала задача интегрировать все эти 3 модуля в основной рантайм.

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

Установка трёхфазных токов и напряжений:

HOLDING REGISTERS с адресом с 1000 по 1007 - величины токов и напряжений.

По адресам с 1008-1009 частота тока и частота напряжения.

Измерения:

INPUT REGISTERS с адресами 1000-1007 - токи и напряжения.

Внешняя команда - пуск осциллографа:

HOLDING REGISTER, адрес 1100, 0х06 функция, по записи 1, пускается осциллограф.

Через 4 секунды появляется осциллограмма.

Смотрите на видео, как работает:

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

Вот еще несколько примеров, где рантайм генерирует осциллограммы с заданными параметрами.

Ток 50 Гц, напряжение 25 Гц.

Ток 50 герц, напряжение 25 герц
Ток 50 герц, напряжение 25 герц

Напряжение в 100 Гц, ток 50 Гц

Напряжение в 100 Гц, ток 50 Гц
Напряжение в 100 Гц, ток 50 Гц

Генерация гармоник по токовому каналу до 7 гармоники. Выглядит не очень при частоте 1000 Гц. Частоту повыше если задать, должно быть по красивее.

Генерация гармоник по токовому каналу с 1 по 7
Генерация гармоник по токовому каналу с 1 по 7

Свободный полет фантазии, тут уже выполнено с помощью скрипта на Питон, читайте ниже.

Свободный полет фантазии
Свободный полет фантазии

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

Точность, при таком подходе, очень высокая, вплоть до периода.

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

Получилось ничуть не хуже какого нибудь Омикрон-356 или Ретом-61 !

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

Не стесняйтесь оставляйть комментарии, отметьте статью, если понравилось, или просто пишите мне на тот же адрес в Телеграм @antonovgp