1

Тема: Чтение осциллограмм с терминалов «Сириус» по Modbus RTU (FC20)

Коллеги, добрый день! Столкнулся с задачей автоматического съема осциллограмм с Сириусов Радиус Автоматики по интерфейсу Modbus RTU при срабатывании защиты. Цель — создать автономный регистратор событий, который будет опрашивать устройства и сохранять дампы при срабатывании защит. Фиксировать срабатывания, снимать осциллограммы связанные с ними и отправлять по почте. Из документации известно, что чтение файла осциллограммы должно выполняться функцией Read File Record (FC20, 0x14), так как данные логически разбиты на сегменты по 65535 слов. Проблема заключается в том, что всякие библиотеки (например, pymodbus) часто имеют ограниченную или некорректную поддержку этой специфической функции для последовательного порта. Удалось ли кому-то успешно реализовать программу для выгрузки COMTRADE-файлов именно через FC20 по RS-485? Если да, то какую библиотеку или метод формирования запроса вы использовали для корректной сборки ответа от терминала? Также интересует, сталкивались ли вы с необходимостью предварительной записи номера осциллограммы в специальный регистр перед чтением, или терминал отдает данные сразу по запросу файла? Буду благодарен за любые примеры кода или ссылки на рабочие реализации, чтобы не изобретать велосипед. Заранее спасибо!

2 (2026-06-26 14:52:16 отредактировано illiario)

Re: Чтение осциллограмм с терминалов «Сириус» по Modbus RTU (FC20)

Добрый день!

Изобретать велосипед таки придется, т.к. решение нетиповое. Ручками, ручками... Посмотрите pyserial.

Разбирайте и обрабатывайте кадры вручную. А может, pymodbus это автоматом может, но руками полезней будет, ИМХО. Modbus он вроде одинаковый, но тем не менее разные производители могут стандарт читать немного по-разному (например, счет с 0 или с 1).

Я подобные вещи делал на Дельфи с Сепамами, когда Питон не был широко распространен (лет так 20 назад). Там надо было указать номер обмена, устройство в определенный участок памяти скидывает инфу (а там Jbus, соответственно кадр только 256 байт). Считываешь, подтверждаешь, новый номер, опять считываешь, подтверждаешь... И так до победного конца осциллограммы.
Могу ошибаться, давно это было. Но в памяти засел такой алгоритм.

ЗЫ. Можем пообщаться в личке.

Присоединяйтесь!!! Мы в социальных сетях и на Ютуб.

3

Re: Чтение осциллограмм с терминалов «Сириус» по Modbus RTU (FC20)

Добрый день.
Старт-2ПС вроде как всё считывает автоматически. И сохраняет. По почте только не отправляет.
Спросите пользователя costik