Команды Step7, связанные со временем

Чтение и установка часов реального времени

Команда чтения часов реального времени (TODR) считывает текущее время и дату из аппаратных часов и загружает их в 8-байтовый буфер времени, начиная с адреса T. Команда установки часов реального времени (TODW) записывает в аппаратные часы текущее время и дату, загруженные в 8-байтовый буфер, начинающийся с адреса, указанного параметром T.

Все значения даты и времени необходимо записывать в формате BCD (например, 16#97 для 1997 года). На рисунке, представленном ниже, показан формат 8-байтового буфера времени (T).

После продолжительного отключения питания или потери памяти часы реального времени (TOD) инициализируют следующую дату и время:

  • Дата: 01-Янв-90
  • Время: 00:00:00
  • День недели: Воскресенье

Сбойные состояния, устанавливающие ENO = 0

  • 0006 (косвенный адрес)
  • 0007 (ошибка даты TOD) Только для установки часов реального времени
  • 000C (часы отсутствуют)

Обычно ПЛК не проверяет соответствие дня недели дате. Могут быть восприняты неверные даты, например, 30 февраля. Правильность даты должны обеспечивать прграммисты при написании скрипта.

Не используйте команду TODR/TODW одновременно в главной программе и программе обработки прерывания. Эта команда не будет исполнена в программе обработки прерывания, которая пытается ее выполнить, когда действует другая команда TODR/TODW. Если делается попытка одновременно двух обращений к часам, то устанавливается SM4.3 (нефатальная ошибка 0007).

Часы реального времени в ПЛК используют только две младшие значащие цифры для года, так что 2000-й год представлен как 00. ПЛК никак не использует информацию о годе. Однако пользовательские программы, которые включают в себя арифметические операции или сравнения со значением года, должны учитывать двухзначное представление и изменение столетия.

Високосные годы обрабатываются правильно до 2096 года.

Чтение расширенных часов реального времени

Команда чтения расширенных часов реального времени (TODRX) считывает текущую конфигурацию времени, даты и летнего времени из ПЛК и загружает их в 19– байтовый буфер, начинающийся по адресу, указанному параметром T.

Сбойные состояния, устанавливающие ENO = 0

  • 0006 (косвенный адрес)
  • 000C (отсутствует модуль часов)
  • 0091 (ошибка диапазона)

Установка расширенных часов реального времени Команда установки расширенных часов реального времени (TODWX) записывает текущую конфигурацию времени, даты и летнего времени в ПЛК из 19–байтового буфера, находящегося по адресу, указанному в параметре T.

Все значения даты и времени необходимо записывать в формате BCD (например, 16#02 для 2002 года). В таблице ниже показан формат 19–байтового буфера времени (T).

После продолжительного отключения питания или потери памяти часы реального времени инициализируют следующую дату и время:

Дата: 01-Jan-90

Время 00:00:00

День недели: воскресенье

Сбойные состояния, устанавливающие ENO = 0

  • 0006 (косвенный адрес)
  • 0007 (ошибка данных TOD)
  • 000C (отсутствует модуль часов)
  • 0091 (ошибка диапазона)

1 Европейская конвенция: Переводить часы на один час вперед в последнее воскресенье марта в 1:00 час ночи UTC (Universal Time Coordinated = универсальное синхронизированное время).  Переводить часы на один час назад в последнее воскресенье октября в 2:00 часа ночи UTC. (Местное время выполнения корректировки зависит от смещения часового пояса от UTC).

2 Конвенция США: Переводить часы на один час вперед в первое воскресенье апреля в 2:00 часа ночи местного времени. Переводить часы на один час назад в последнее воскресенье октября в 2:00 часа ночи местного времени.

3 Австралийская конвенция: Переводить часы на один час вперед в последнее воскресенье октября в 2:00 часа ночи местного времени. Переводить часы на один час назад в последнее воскресенье марта в 3:00 часа ночи местного времени.

4 Австралийская конвенция (Тасмания): Переводить часы на один час вперед в первое воскресенье октября в 2:00 часа ночи местного времени. Переводить часы на один час назад в последнее воскресенье марта в 3:00 часа ночи местного времени

5 Новозеландская конвенция: Переводить часы на один час вперед в первое воскресенье октября в 2:00 часа ночи местного времени. Переводить часы на один час назад 15 марта, если этот день приходится на воскресенье, или в первое воскресенье после 15 марта в 3:00 часа ночи местного времени