Как синхронизировать внутренние часы панели HMI от NTP сервера.
Версия ПО
Версия SystemeHMI Studio: 3.0.15257.0
Версия ОС Windows: Windows 10 Pro, 21H2, сборка 19044.2604
Подключение к NTP серверу.
Существуют два способа подключения к NTP серверу:
(1) подключение через встроенный в HMI протокол (в основном используется для локального NTP сервера);
(2) запись URL- адреса NTP сервера в системные регистры HMI SRW10470-10499. Применим к HMI с Ethernet портом и имеющим доступ к Интернету.
В данной статье мы рассмотрим только первый вариант подключения.
В конфигурации вашего проекта в среде программирования SystemeHMI Studio -> Communication Connection -> Remote Connection-> Ethernet PLC в строке Manufacturer выберите «Other» и добавьте Device Type «NTP».
Добавьте локальный IP адрес NTP сервера и сохраните неизменным номер порта «123».
Важно: после добавления устройства проверьте, находится ли IP адрес HMI панели в том же сегменте подсети, что и NTP сервер. Если нет, исправьте это. Например : IP адрес NTP сервера в нашем примере – 192.168.1.50. IP адрес панели должен быть 192.168.1.хх.
Добавим на экран нашего проекта несколько компонентов «Numeric Value Display» для отображения времени NTP сервера.
Для устройства "NTP сервер" в настройках панели существует 6 адресов переменных с типом адреса “time”:
time 1 – Год.
time 2 – Месяц.
time 3 – День
time 4 – Час.
time 5 – Минуты.
time 6 – Секунды.
Для адреса time 1 резервируем четыре цифры, с типом данных 16 bit Unsigned. Для всех остальных – по две.
Для разрешения работы NTP сервера необходимо в системное слово SRW10056 записать 1. (для запрета SRW10056=2)
Для того, чтобы иметь возможность изменить системное время панели HMI необходимо системный бит SRB10013 установить в 0. (SRB10013=1 запрет изменения).
Индекс для Time Zone записывается в системное слово SRW10055. По умолчанию оно равно 0 (UTC +8:00) Shsnghai.
Для Москвы, Минска и др. записываем 41 (UTC +3:00).
Все эти настройки можно задать в настройках одного окна.
С целью визуального контроля синхронизации времени панели HMI от NTP сервера создадим на этом же экране нашего проекта аналогичные поля (Год, Месяц, Число и т.д.), но уже для даты и времени самой панели HMI со своими адресами.
В панели HMI под дату и время выделены следующие системные слова:
SRW0 – Год.
SRW1 – Месяц.
SRW2 – День.
SRW3 – Час.
SRW4 – Минуты.
SRW5 – Секунды.
SRW6 – Миллисекунды.
SRW7 – День недели.
В нашем примере мы будем использовать только первые 6 из них ( от SRW0 до SRW5) Не путать с переменными "time" для NTP).
В качестве условием синхронизации времени мы можем использовать передний фронт срабатывания виртуальной кнопки с адресом LB1000, расположенной на экране нашего проекта.
По этому фронту мы инициируем передачу 6 слов из NTP в HMI.
Как вариант мы можем назначить передачу этих 6 слов непосредственно в свойствах окна, на котором мы расположили компоненты вывода даты и времени. Для этого в нашем проекте в закладке Component ->Timer and Data Transmission ->Timed Data Transmission нажимаем кнопку Add Items в секции Trigger and Stop, задаем условия запуска передачи данных, а в секции Data Transmission указываем тип данных, откуда и куда передаем (начальные адреса) и сколько слов.
Осталось скомпилировать наш проект, загрузить его в панель HMI и проверить работу синхронизации.