Обработка ошибок устройств



  • Теория

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

    В системе intraHouse есть два механизма обработки ошибок.

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

    Второй механизм. На стороне сервера. Здесь обрабатываются два типа ошибок.
    Ошибка — таймаут. Сервер сам отслеживает таймаут поступления информации от устройств. Если устройство (через плагин) не сообщает о себе в течении определенного времени, устанавливается флаг ошибки этого устройства.
    Ошибка — вне диапазона. Если от устройства приходит значение вне допустимого диапазона.

    Обратите внимание. Все механизмы обработки ошибок работают одновременно.

    Практика

    Визуально ошибка устройства отображается в виде красного треугольника в левом верхнем углу устройства:
    deverrors1010-1024x526.jpg

    Первый механизм обработки ошибок (на стороне плагина) программируется в самом плагине и никак не настраивается.

    Второй механизм (на стороне сервера) настраивается в настройке устройства:
    deverrors2010-1024x527.jpg

    1. Установить флаг ошибки если от устройства не пришла информация в течении X сек.
    От любого аналогового датчика информация должна приходить в течении не более 100-200 сек.
    От датчика открытия двери (геркон) информация может приходить очень редко. Тогда лучше поставить 0 (ноль).
    В любом случае это время зависит от устройства.

    2. Установить флаг ошибки если информация от датчика вне заданного диапазона
    Если эта галка установлена, система сравнивает входящее от датчика значение с диапазоном допустимых значений — Min Value и Max Value

    3. Не принимать значение от датчика, если оно выходит из допустимого диапазона
    Если значение выходит из диапазона, система просто откидывает его не пропуская для индикации или анализа в сценариях.

    Чтобы ошибка (красный треугольник) отображалась на устройстве не забывайте про размер индикатора ошибки. По умолчанию он установлен в 30. Но вдруг вы его изменили ☺
    Размер настраивается здесь:
    deverrors2020-1024x526.jpg

    Обработка ошибок в сценариях

    Выше я показал как отображать ошибки устройств на экране. Теперь займемся обработкой ошибок в сценариях.

    В качестве примера рассмотрим сценарий управления отоплением по датчику температуры.
    deverrors3010-1024x517.jpg

    От датчика температуры (STEMP_1_1) поступает значение (VALUE) и сравнивается с уставкой (SETPOINT). Если температура меньше уставки, включаем батарею отопления (RADIATOR_1_1). Если больше, выключаем.
    Все работает. Температура в комнате регулируется.

    Добавим обработку ошибок:
    deverrors3030-1024x517.jpg

    Если датчик работает без ошибки (NOT ERROR), тогда батарея отопления включается/выключается в зависимости от температуры (VALUE) и уставки (SETPOINT).
    Если есть ошибка, то регулирование не происходит.

    Добавим сообщение об ошибке:
    deverrors3040-1024x518.jpg

    Если возникает ошибка, взводится таймер на 120 сек. После отработки таймера проверяем, есть ли ошибка. Если ошибка сохранилась, отправляем сообщение по e-mail.

    На этом все. Батарея управляется по датчику температуры с учетом ошибки.
    Можно было добавить еще некоторые моменты. Например, в случае ошибки датчика переключиться на другой датчик. Это вы можете попробовать сделать самостоятельно.


Авторизуйтесь, чтобы ответить