Монитор – многопоточный процесс. Приоритеты потоков заданы по умолчанию, однако их можно изменить на вкладке Дополнительно редактора узла (см. Задание параметров узла ) или в файле *.cnf (см. Задание параметров работы мониторов ).
Приоритет выбирается из следующего списка:
-1 – Default;
0 – IDLE;
2 – LOWEST;
4 – BELOW_NORMAL;
6 – NORMAL;
10 – ABOVE_NORMAL;
12 – HIGHEST;
14 – TIME_CRITICAL;
77 – STOP.
Ниже указаны номера потоков и выполняемые в них задачи (см. также Принцип работы монитора. Канал TRACE MODE 6 ):
0 – CALC, основной поток, выполняемый монитором циклически. Один цикл включает следующие последовательно выполняемые этапы:
последовательный анализ всех включенных каналов узла (по возрастанию ID) и установка флага SV (недоступен для пользователя) каналам, требующим пересчета (см. Период пересчета канала ).
Каналы с типом пересчета цикл FAST и FAST EXE, цикл IDLE и IDLE EXE, цикл TF анализируются соответственно в потоке FAST, IDLE и TF.
Пересчет всех каналов (кроме каналов CALL) типа INPUT, которые должны пересчитываться в основном потоке, и, в некоторых случаях, – отработка этих каналов:
если канал связан с УСО – установка каналу флага необходимости отработки Q (недоступен для пользователя), отработка (чтение данных) и пересчет (вычисление атрибутов канала – т.е. выполнение внутренних алгоритмов и трансляции). Сброс для канала флагов SV и Q;
если канал принимает данные асинхронно (сеть, RS) – установка флага Q и пересчет. Сброс флага SV, установленный флаг Q является признаком необходимости отработки канала в соответствующем потоке;
пересчет и отработка каналов класса CALL основного потока;
пересчет каналов типа OUTPUT, которые должны пересчитываться в основном потоке, и анализ их выходного значения. Установка флага Q каналам, выходное значение которых изменилось. Дальнейшие действия выполняются по следующему алгоритму:
если канал связан с УСО – отработка (передача значения) и сброс флага Q;
если канал передает данные асинхронно (сеть, RS), он не отрабатывается и флаг Q не сбрасывается.
Не сброшенный в основном потоке флаг SV является признаком необходимости пересчета канала в соответствующем потоке.
Если используются приоритеты потоков по умолчанию, и для цикла установлено время (см. Время цикла монитора ), недостаточное для выполнения всех его задач, система будет работоспособной (будет идти обмен по RS и сети, выполняться программы и т.п.), однако заданные временные характеристики пересчета/отработки каналов будут нарушаться (т.е. быстродействие системы снизится). Например, в такой ситуации при запуске узла под Windows CE может никогда не отработаться вызов графической панели;
1 – IP_RECEIVE, прием по сети IP;
2 – IP_SEND, отсылка по сети IP;
3 – ACTION, вспомогательный (печать, вывод в файл и т.п.);
4 – SDDE, сервер DDE, NetDDE;
5 – TF, T-Factory;
6 – MODBUS;
7 – AR, отчет тревог;
8 – копирование отчета тревог;
9 – дамп;
10 – FAST (быстрые каналы);
11 – TCP_CS (поток подключения по TCP);
12 – t12;
13 – MASTER RS;
14 – MLINK;
15 – модем;
16 – вызов графики;
17 – SIAD;
18 – IDLE;
19 – клиент DDE, NetDDE;
20 – GSM, SMS;
21 – чтение архива;
25 – GPRS;
26 – MAKE_UP, короткоживущий поток, создается при необходимости на одну операцию (перепривязка на уровне объектов, генерация файлов avb);
27 – GPS;
28 – сервер MODBUS TCP;
29 – MAIN, мониторинг всех остальных потоков;
30 – графический поток ОС (рисование);
31 – TCP_RS, чтение по TCP.
Некорректная установка приоритетов потоков может привести к неработоспособности системы.