В этой статье хотел рассмотреть такой необычный способ, как синхронизацию времени в автоматическом режиме устройств через ModBus TCP или RTU.
На первый взгляд можно задаться вопросами, а зачем это вообще нужно? Сейчас уже в каждом устройстве есть синхронизация времени, протокол SNTP ….и т.д.
Но не торопитесь с выводами.
Мы привыкли к концепции клиент-серверной синхронизации времени, когда клиент отправляет запросы серверу и сервер на них отвечает. Я не рассматриваю здесь широковещательный режим работы SNTP, поскольку из-за низкой точности, он не используется в устройствах РЗА.
А что если сервер будет обращаться к каждому клиенту и выставлять у них точное время?
Такой подход имеет ряд преимуществ:
- Серверу не нужно справляться с "наплывом" запросов на синхронизацию от клиентов. Сервер сам определяет к какому клиенту подключится и когда.
- Если устройств релейной защиты очень много, например несколько сотен, данный способ позволяет сгладить "броски" траффика.
- Бывает так, что GPS сервера просто нет, или он не настроен, или имеются какие-либо проблемы с ним.
- Если нет сети Ethernet, а есть только сеть ModBus RTU
- Устройство может просто не поддерживать какую либо иную синхронизацию времени кроме Modbus, например TeSys T
- Для установки времени по ModBus не требуется каких либо настроек устройства-клиента. В большинстве устройств эта возможность включена по умолчанию. Это особенно актуально когда устройств огромное количество.
С помощью обычного компьютера и программы написанной на Python, можно выставлять время на всех необходимых устройствах в автоматическом режиме. При этом компьютеру не нужна антенна GPS, достаточно обычного соединения интернет, чтобы синхронизировать точное время с публичными серверами времени.