UniSet 2.32.1
Зависимости между датчиками

Существует два механизма реализующих зависимость между датчиками:

Зависимость на уровне IOController (SharedMemmory)

Механизм зависимостей реализован в классе IOController.

Пример записи "зависимости" в configure.xml:

<item textname="...." iotype="..." .../>
<consumers>
<consumers>
<depends>
<depend name="Sensor1" filter="val" />
<depend name="Sensor2" filter2="val1" />
</depends>
</item>

При считывании конф. файла можно задавать фильтры.

ПОКА РЕАЛИЗОВАНА ЗАВИСИМОСТЬ ТОЛЬКО ОТ ОДНОГО ДАТЧИКА! т.е. <depend> может быть только один.

Зависимость на уровне IOBase

Механизм зависимостей между датчиками на уровне IOBase, работает на уровне процессов обмена использующих IOBase. В ним относятся IOControl, ModbusMaster (RTU,TCP) и т.п. Плюсом данного механизма является, то, что он обеспечивает для датчика (который зависит от другого) весь набор обработки, поддерживаемый IOBase - это задержки на срабатывание, фильтры, калибровочные диаграммы и т.п. (см. IOBase). Чтобы задействовать данный механизм, достаточно у датчика указать следующие поля:

  • depend="name"- имя датчика от которого зависит данный
  • depend_value=".." - разрешающее значение (по умолчанию 1).
  • depend_off_value="..." - значение которое будет иметь датчик, если он "заблокирован". По умолчанию - 0.

Следует иметь ввиду, что этот механизм не действует при сохранении значений, например при помощи uniset-admin, в отличие от механизма Зависимость на уровне IOController (SharedMemmory)

Пример записи "зависимости" в configure.xml:

<item textname="...." iotype="..." ... depend="OtherSensor_AS" depend_value="2" />

В данном случае подразумевается, что разрешающим датчиком является OtherSensor_AS=2.