Для запроса по M-LINK (в том числе через модем) или I-NET удаленных индивидуальных архивов используются каналы CALL INPUT с типами вызова (47) RemArc0 и (48) RemArc1 и типом пересчета цикл IDLE (ограничения на максимальное число передаваемых данных указаны в разделе Особенности взаимодействия ). Сетевой протокол передачи по умолчанию – UDP, может быть изменен на TCP с помощью ключа IPALTR в файле *.cnf (см. Задание параметров работы мониторов ).
В течение одной отработки канал CALL.RemArc0 запрашивает несколько удаленных индивидуальных архивов и записывает полученные данные в локальные архивы SIAD, в то время как канал CALL.RemArc1 запрашивает только один удаленный индивидуальный архив без записи полученных данных в локальный архив SIAD.
Конфигурация узла, содержащего канал CALL.RemArc0 или CALL.RemArc1:
если в узле нет каналов
CALL.RemArc0, конфигурирование архивов SIAD
для него в общем случае не обязательно, в противном случае
необходимые архивы SIAD должны быть сконфигурированы, и их
использование должно быть разрешено;
для узла должен быть сконфигурирован
соответствующий обмен;
узел должен содержать один или несколько
вспомогательных каналов типа INPUT (loci), в
каждом из которых:
должна быть задана привязка к атрибуту 0,R
или 140,ARG00 удаленного индивидуального архива, данные
которого требуется запрашивать;
Если канал CALL – индивидуальный архив некоторого канала ch – уничтожается монитором (см. Индивидуальный архив ), в соответствующем loci должна быть задана привязка к ch.R.
должно быть задано архивирование в один из
сконфигурированных архивов SIAD (не требуется для
CALL.RemArc1).
Конфигурация канала CALL.RemArc0 / CALL.RemArc1:
тип – INPUT;
тип пересчета – цикл IDLE;
в ИС в канале CALL.RemArc0
должна быть задана привязка к произвольному удаленному каналу; эта
привязка определяет начальный узел, у которого канал будет
запрашивать индивидуальные архивы. Для переключения канала
CALL.RemArc0 на запрос индивидуальных архивов
другого узла нужно в реальном времени присвоить порядковый номер
узла (ordinal) атрибуту 92, I2 канала.
В ИС в канале CALL.RemArc1 должна быть задана привязка к одному из каналов loci; эта привязка определяет начальный индивидуальный архив (и одновременно узел), у которого канал будет запрашивать данные. Для переключения на запрос другого индивидуального архива (в том числе другого узла) нужно в реальном времени присвоить ID соответствующего канала loci атрибуту 89, L0 канала CALL.RemArc1.
В реальном времени атрибуты 89 и 92 индицируют соответственно ID привязанного канала loci и ordinal запрашиваемого узла;
аргументы arg0 и arg1 канала
CALL.RemArc0 /
CALL.RemArc1 должны иметь тип данных
DATE_AND_TIME. Эти аргументы формируются в зависимости от битов 1 и
2 атрибута Параметр и задают временной диапазон выборки из
полученных данных для дальнейшей записи в файлы:
если биты 1 и 2 равны 0, в arg0
записывается время исчезновения, а в arg1 – время появления
узла (для фиксации времени используется собственный алгоритм
канала);
если бит 2 равен 1, arg1 может быть задан
вручную;
если бит 1 равен 1, arg0 может быть задан
вручную;
если биты 1 и 2 равны 1, а arg0 и
arg1 не заданы (arg0 = arg1 = 0), то
arg0 =
@Status.T_Loss,
arg1 =
@Status.T_Detection (см.
описание переменной @Status в разделе Группа СИСТЕМНЫЕ );
если биты 1 и 2 равны 1, а заданные значения
arg0 и arg1 не превышают числа секунд в году, то
arg1 = <текущее время> – <заданное значение arg1>
arg0 = arg1 – <заданное значение arg0>
начиная с arg2, аргументы
CALL.RemArc0 /
CALL.RemArc1 создаются парами. В четные
аргументы (соответствующего числового типа данных) записываются
запрошенные архивные значения, в нечетные (DATE_AND_TIME) – метки
времени этих значений.
Канал CALL.RemArc0 / CALL.RemArc1 работает следующим образом (состояние канала в процедуре индицируют атрибуты (86, nAtrt) и (7,P)):
в начальном состоянии (0) канал проверяет наличие
указанного удаленного узла. Если удаленный узел отсутствует, канал
переходит в состояние 1;
при переходе удаленного узла в состояние WORK
канал переходит в состояние 2. В этом состоянии инициализируются
внутренние переменные канала, и он переходит в состояние 3 (если
удаленный узел "пропадает", канал переходит в состояние 0);
в состоянии 3 при значении канала, отличном от 0,
формируется запрос удаленного индивидуального архива:
в случае CALL.RemArc0, среди
loci ищется
канал с младшим ID (пусть его имя – locA),
связанный с индивидуальным архивом указанного узла, формируется
запрос этого архива, а для канала locA
устанавливается признак игнорирования в последующем поиске;
Если последний символ кодировки CALL.RemArc0 – звездочка, то locA выбирается в том случае, если первые символы кодировки удаленного индивидуального архива совпадают с кодировкой CALL.RemArc0 (до знака звездочки).
в случае CALL.RemArc1 (пусть
к нему привязан locB),
формируется запрос того индивидуального архива, который привязан к
locB.
После формирования запроса канал CALL.RemArc0 / CALL.RemArc1 переходит в состояние 4 (канал принимает значение 17). Если необходимые каналы среди loci не найдены, канал CALL.RemArc0 / CALL.RemArc1 переходит в состояние 0, и его значение обнуляется;
в состоянии 4 в аргументы канала
CALL.RemArc0 /
CALL.RemArc1 копируются данные удаленного
индивидуального архива, и из полученных данных производится выборка
в диапазоне arg0<t<arg1, которая в
случае CALL.RemArc0 записывается в тот же
архив SIAD, в который архивируется locA. Кроме
того, если бит 6 (0x40) атрибута Параметр канала
CALL.RemArc0 /
CALL.RemArc1 равен 1, выборка записывается в
текстовый файл locA.dra/locB.dra.
Для отмены проверки времени при записи в SIAD и файлы *.dra нужно установить бит 7 (0x80) атрибута Параметр (34, FPrnt) канала CALL.RemArc0 / CALL.RemArc1.
после получения данных в канале
CALL.RemArc0 устанавливается бит 4 (0x10)
атрибута 46, QE, и канал переходит в состояние 3 (в случае
сбоя – через промежуточное состояние 7, т.е. 4-7-3) для поиска
очередного канала loci. МРВ
переходит к поиску следующего канала также в том случае, если в
течение заданного таймаута получить архив не удалось (в этом случае
признак недостоверности в канале CALL.RemArc0
не устанавливается). Таймаут задается в файле *.cnf (ключи
ARCHT_NET и ARCHT_RS –
см. Задание параметров работы
мониторов ).
После получения данных отработка канала CALL.RemArc1 завершается (канал запрашивает только один архив).
Число полученных архивов индицирует атрибут 2, A канала CALL.RemArc0 / CALL.RemArc1.