Главная » Разборы

NaN и специальные значения прибора: не превращать неисправность в ноль

Запросить

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

Читать карту конкретного исполнения

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

Например, руководство Vaisala XMW85 отдельно описывает представление затронутых ошибкой параметров через NaN и собственные целочисленные признаки. (Vaisala — XMW85 User Guide M213257EN-B) Это пример необходимости читать карту, а не готовый набор замен для чужого оборудования. Состояние интерфейса и качество измерения рассматривают раздельно.

Описать преобразование

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

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

Для API и текстовых выгрузок уточните представление специального значения. Пример документации регистратора Campbell показывает, почему формат записи нужно читать вместе с описанием полей. (Campbell Scientific — Data Logger Web Server API) Строка, пустое поле и специальный числовой объект могут по разному обрабатываться программой получателя.

Проверить потребителей

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

Особенно внимательно исследуйте средние значения и суммирование. Если недостоверная точка исключается, сохраняют правило и число использованных наблюдений. Если расчёт приостанавливается, экран должен объяснять причину. Приложение не должно незаметно продолжать вычисление с выдуманным нулём.

Сохранить возможность расследования

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

После замены прибора проверьте правила заново: новый вариант может иметь другое представление недоступности. Если приложение считает любое необычное число ошибкой, оно способно отвергать законные измерения. Границы допустимых значений задают по документам и задаче объекта, не придумывая универсальные агрономические пороги ради удобства фильтрации.

Все разборы

Весь каталог Motorola и аналогов — 13 позиций

Возимые и носимые станции, TETRA, PoC и Си-Би — всё, что держим на складе.