CP56Time2a в телеметрии: сохранить признаки времени при преобразовании

Запросить

Шлюз хозяйства преобразует временную метку IEC104 в привычную строку даты, но вместе с ней может потерять признаки недостоверности или подстановки. Правдоподобная дата тогда выглядит точной, хотя источник сообщил ограничение. Проверяйте преобразование не только на обычной метке. Нужно сохранить исходные признаки, известное правило интерпретации и отдельное время приёма, чтобы дальнейший журнал не выдавал непроверенный момент события за подтверждённое время физического изменения.

Установить контракт времени

API lib60870 для CP56Time2a отдельно предоставляет Invalid, Substituted, SummerTime и операции преобразования с UTC миллисекундами. Наличие этих полей показывает, что время не сводится к одной красивой строке. При этом библиотечный интерфейс не определяет за проект часовой пояс каждого RTU. Согласованную интерпретацию берут из профиля станции и конфигурации, сохраняя действующие операционные часы и календарь оборудования хозяйства без произвольной перенастройки. (MZ Automation — lib60870 common API)

Запишите оригинальные компоненты метки, флаги и сведения об источнике часов. Отдельно сохраняйте серверное время приёма без изменения его исходного значения. Для пользовательского отчёта укажите представление времени Астаны, но не подменяйте им сырой протокольный контекст. Если timezone источника не подтверждён, обозначьте неопределённость вместо молчаливого предположения. Исправление отображения и изменение часов станции являются разными действиями с разными последствиями для архива и автоматических расписаний.

Исходная CP56Time2a метка с флагами Invalid, Substituted и SummerTime отделена от серверного времени приёма. Архив сохраняет роли, флаги и первоначальную метку при повторной доставке. Изолированные тесты проверяют преобразование, а пользовательское представление использует Астану UTC плюс пять без изменения операционного календаря.
Схема не назначает timezone станции и не меняет её часы. Пользовательское представление в Астане отделено от исходных протокольных полей, качества времени, серверной квитанции и действующего календаря оборудования.
Увеличить схему
Исходная CP56Time2a метка с флагами Invalid, Substituted и SummerTime отделена от серверного времени приёма. Архив сохраняет роли, флаги и первоначальную метку при повторной доставке. Изолированные тесты проверяют преобразование, а пользовательское представление использует Астану UTC плюс пять без изменения операционного календаря.

Проверить набор меток

На изолированном имитаторе подготовьте собственные случаи: обычная метка, установленный Invalid, установленный Substituted и предусмотренные варианты SummerTime. Сопоставьте исходное сообщение, внутренний формат шлюза и запись потребителя. Не назначайте флагам смысл по одному названию в интерфейсе: убедитесь, что преобразователь сохраняет именно исходное поле. Для неизвестной интерпретации должен существовать понятный статус, а не автоматическое признание времени достоверным после успешного разбора числовых компонентов сообщения.

Отдельно проверьте различие времени события и времени доставки при задержанном тестовом сообщении. Архив должен сохранять их роли и не переписывать первоначальную метку временем повторного приёма. Если формат назначения не имеет полей качества времени, согласуйте дополнительное поле либо иной явный способ обозначения ограничения. Не прячьте недостоверность в свободном комментарии, который исчезает при следующем экспорте в таблицу или при передаче другому сборщику телеметрии хозяйства.

Зафиксировать известную интерпретацию

В акте сохраните набор меток, правило преобразования и результаты по всем флагам. Укажите неподтверждённые предположения отдельно. Приёмка должна подтверждать честное представление времени и его качества через всю цепочку. Для хозяйства это защищает последовательность разбора событий: оператор различает задержанную доставку, ограничение часов и реальное время изменения, а последующее обслуживание не вынуждено угадывать, какие сведения были утрачены при первом преобразовании метки в привычную строку на экране диспетчера.

Все разборы