UniSet 2.32.1
(IOControl) Реализация процесса ввода/вывода

Общее описание процесса в/в

Конфигурирование процесса в/в

в качестве префикса по умолчанию используется "io", но в конструкторе можно задать другой если используется несколько процессов ввода/вывода.


--io-confnode name - Использовать для настройки указанный xml-узел
--io-name name - ID процесса. По умолчанию IOController1.
--io-numcards - Количество карт в/в. По умолчанию 1.
--iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
--iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
--iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
--iodev3 dev - Использовать для card='3' указанный файл comedi-устройства.
--iodevX dev - Использовать для card='X' указанный файл comedi-устройства. 'X' не должен быть больше –io-numcards


--iodevX-subdevX-type name - Настройка типа подустройства для UNIO. Разрешены: TBI0_24,TBI24_0,TBI16_8


--io-default_cardnum - Номер карты по умолчанию. По умолчанию -1. Если задать, то он будет использоваться для датчиков у которых не задано поле 'card'.


--io-test-lamp - Для данного узла в качестве датчика кнопки 'ТестЛамп' использовать указанный датчик.
--io-conf-field fname - Считывать из конф. файла все датчики с полем fname='1'
--io-polltime msec - Пауза между опросом карт. По умолчанию 200 мсек.
--io-filtersize val - Размерность фильтра для аналоговых входов.
--io-filterT val - Постоянная времени фильтра.
--io-s-filter-field - Идентификатор в configure.xml по которому считывается список относящихся к это процессу датчиков
--io-s-filter-value - Значение идентификатора по которому считывается список относящихся к это процессу датчиков
--io-blink-time msec - Частота мигания, мсек. По умолчанию в configure.xml
--io-blink2-time msec - Вторая частота мигания (lmpBLINK2), мсек. По умолчанию в configure.xml
--io-blink3-time msec - Вторая частота мигания (lmpBLINK3), мсек. По умолчанию в configure.xml
--io-heartbeat-id - Данный процесс связан с указанным аналоговым heartbeat-датчиком.
--io-heartbeat-max - Максимальное значение heartbeat-счётчика для данного процесса. По умолчанию 10.
--io-ready-timeout - Время ожидания готовности SM к работе, мсек. (-1 - ждать 'вечно')
--io-force - Сохранять значения в SM, независимо от, того менялось ли значение
--io-force-out - Обновлять выходы принудительно (не по заказу)


--io-skip-init-output - Не инициализировать 'выходы' при старте
--io-sm-ready-test-sid - Использовать указанный датчик, для проверки готовности SharedMemory

Возможные настройки по каждому входу/выходу


nofilter - не использовать фильтр
ioignore - игнорировать данный датчик (позволяет временно отключить вход/выход)
ioinvert - инвертированная логика (для DI,DO)
default - значение по умолчанию (при запуске)
noprecision - игнорировать поле precision (т.е. процесс в/в не будет его использовать, но будет его присылать в SensorMessage)
cal_nocrop - не обрезать значение по крайним точкам по при калибровке.


breaklim - пороговое значение для определения обрыва датчика (используется для AI). Если значение ниже этого порога, то выставляется признак обрыва датчика.
debouncedelay - защита от дребезга. Задержка на дребезг, мсек.
ondelay - задержка на срабатывание, мсек.
offdelay - задержка на отпускание, мсек.
iofront - работа по фронту сигнала (для DI).
"01" - срабатывание (и отпускание) по переходу "0 --> 1"
"10" - срабатывание (и отпускание) по переходу "1 --> 0"


safety - безопасное значение. Значение которое сохраняется в случае аварийного завершения процесса.


iopriority - приоритет при опросе.
iotype - тип входа/выхода [DI|DO|AI|AO]


rmin - минимальное "сырое" значение
rmax - максимальное "сырое" значение
cmin - минимальное "калиброванное" значение
cmax - максимальное "калиброванное" значение
precision - Точность. Задаёт количество знаков после запятой.
Т.е. при считывании из канала, значение домножается
на 10^precision и уже таким сохраняется.
А в SensorMessage присылается присылается precision.


filtermedian - Значение для "медианного" фильтра
filtersize - Значение для "усреднения"
filterT - Постоянная времени фильтра.


caldiagram - Имя калибровочной диаграммы из секции <Calibrations>.
cal_cachesize - Размер кэша в калибровочной диаграмме (Calibration.h)
cal_cacheresort - Количество циклов обращения к кэшу, для вызова принудительной пересортировки. (Calibration.h)


threshold_aid - идентификатор аналогового датчика по которому формируется порог. Используется для DI.
lowlimit - нижний порог срабатывания.
hilimit - верхний порог срабатывания.


card - номер карты
subdev - номер подустройства
channel [ 0<>32 ] - номер канала
jack [ J1 | J2 | J3 | J4 | J5 ] - название разъёма. Можно задавать вместо channel
   J1 - chanenel 0 - 15
   J2
lamp - признак, что данный аналоговый датчик является "лампочкой".
Т.е. на самом деле дискретный выход, который может иметь состояния:
uniset::lmpOFF - выключен
uniset::lmpON - включен
uniset::lmpBLINK - мигание с частотой 1
uniset::lmpBLINK2 - мигание с частотой 2
uniset::lmpBLINK3 - мигание с частотой 3


no_iotestlamp - игнорировать данную лампочку при тесте ламп.
range - диапазон измерения аналогового входа (см. libcomedi)
aref - тип подключения (см. libcomedi)


enable_testmode - включить в работу во время тестового режима tmConfigEnable
disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.

Заметки
Помимо этого для конкретного процесса можно переопределять настройки используя "prefix_" (префикс плюс подчёркивание). Где "prefix" - это префикс это префикс заданный в конструкторе IOControl.

Список датчиков для процесса в/в

Тестовый режим

В IOControl встроена возможность переводить его в один из тестовых режимов. Для этого необходимо указать для IOControl аналоговый датчик в который будет записан "код" режима работы. Датчик можно задать либо аргументом командной строки –io-test-mode ID либо в конфигурационном файле testmode_as="ID" Сейчас поддерживаются следующий режимы (см. IOControl::TestModeID):


"0" - тестовый режим отключён. Обычная работа.
"1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
"2" - Режим "разрешённых" каналов. В этом режиме отключается работа со всеми каналами, кроме тех, у которых указан параметр enable_testmode="1".
"3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых указан параметр disable_testmode="1".
"4" - Режим "только входы"
"5" - Режим "только выходы"