UniSet 2.32.1
Логический процессор

Общее описание

Логический процессор представляет из себя процесс, который работает по принципу PLC-контроллеров, выполняя бесконечный цикл:

1. опрос входов
2. шаг алгоритма
3. выставление выходов
При этом "логика" формируется из простых логических элементов:
  1. "И" (AND)
  2. "ИЛИ" (OR)
  3. "Задержка" (Delay)
  4. "Отрицание" (NOT)
  5. "Преобразование аналогового значения в логическое" (A2D)

Стоит отметить, что по мере развития, процесс стал поддерживать не только логические операции, а работу с числовыми(аналоговыми) величинами. Например элемент "TA2D", но в названии оставлено "Logic".

Конфигурирование

Конфигурирование процесса осуществляется при помощи xml-файла задающего "схему соединения" элементов. Например

<Schema>
<text-view>
----
1 --| |
2 --|TOR1|---| 1 -----
| | |----| |
---- 2 | |--|
|----|TAND3| |
---- | | | |
| | | ----- |
1 --|TOR2| | | 1 ---- -------
2 --| |--- | ---- ---| | | | out
| | | 1 | | 2 |TOR5|-----| Delay |----
---- |---|TOR4|-----| | | |
2 ----| | | | | |
---- ---- -------
</text-view>
<elements>
<item id="1" type="OR" inCount="2"/>
<item id="2" type="OR" inCount="2"/>
<item id="3" type="AND" inCount="2"/>
<item id="4" type="OR" inCount="2"/>
<item id="5" type="OR" inCount="2"/>
<item id="6" type="Delay" inCount="1" delayMS="3000"/>
</elements>
<connections>
<item type="ext" from="Input1_S" to="1" toInput="1" />
<item type="ext" from="Input2_S" to="1" toInput="2" />
<item type="ext" from="Input3_S" to="2" toInput="1" />
<item type="ext" from="Input4_S" to="2" toInput="2" />
<item type="ext" from="Input5_S" to="4" toInput="2" />
<item type="ext" from="Input6_S" to="5" toInput="1" />
<item type="int" from="1" to="3" toInput="1" />
<item type="int" from="2" to="3" toInput="2" />
<item type="int" from="3" to="4" toInput="1" />
<item type="int" from="4" to="5" toInput="2" />
<item type="int" from="5" to="6" toInput="1" />
<item type="out" from="6" to="Output1_C"/>
</connections>
</Schema>
Блок \b <elements> содержит список элементов участвующих в "логике", каждому из

которых присвоен уникальный id, а также характеристики каждого элемента. В секции <connections> задаютcя собственно соединения.

Тэги:
  • type="ext" - Соединение связанное с внешним датчиком, задаваемым по имени.
  • type="int" - Внутреннее соединение элементов между собой.
  • type="out" - Замыкание на "внешний" датчик.
  • from=".." - задаёт идентификатор элемента ("откуда"). Для type="ext", сюда пишется ID датчика.
  • to=".." - задаёт идентификатор элемента("куда"), к которому происходит подключение.
  • toInput=".." - В качестве значения указывается номер "входа" элемента на который подаётся "сигнал".

В текущей реализации в качестве датчиков разрешено использовать только типы DO или DI.

Заметки
Следует иметь ввиду, что схема не обязательно должна быть "СВЯЗАННОЙ" (все элементы связанны между собой). В файле может содержаться несколько схем внутри тэга <Schema>. Логика исполняется в порядке следования в файле, сверху вниз (в порядке считывания из файла).