Привязка источника MODBUS чтения или записи
Привязка всплывающих экранов к аргументам
Привязка CALL.ChGroupReq к экрану
Канал CALL.ChGroupReq выполняет различные функции в зависимости от привязки.
Значения аргументов канала CALL.ChGroupReq могут быть отображены с помощью ГЭ ‘Тренд’ (в архивном режиме) или ГЭ ‘Архивный тренд’ – для этого к аргументу кривой должен быть привязан атрибут CALL.ChGroupReq.R. Временной диапазон, в котором размещаются значения, задается левой и правой временными границами тренда со следующим выравниванием:
диапазон меньше 1 часа – на границу часа;
диапазон меньше 1 дня – на границу дня;
диапазон меньше 3 месяцев – на границу дня;
в остальных случаях – на границу года.
Расстояние между точками равно величине <диапазон>/<число аргументов>.
В зависимости от атрибута Параметр, такой канал выполняет различные функции обмена с удаленным узлом по сети или RS. Во всех случаях к ChGroupReq должен быть привязан произвольный канал (далее – ch) удаленного узла для его идентификации. При привязке к аргументам ChGroupReq каналов удаленного узла, в отличие от других связей аргумент-удаленный_канал, новые каналы в запрашивающем узле не создаются (см. Связь через аргументы , а также Особенности взаимодействия ).
Параметр=0 – в аргументы INPUT канала ChGroupReq записываются реальные значения удаленных каналов (значение канала с ID=n записывается в аргумент с порядковым номером n);
Параметр=1 –
Параметр=2 –
Параметр=3 – аргументы используются парами: при изменении значения arg2n INPUT (n=0,1..., аргумент может не иметь привязки) это значение передается удаленному каналу, привязанному к arg2n+1 OUTPUT;
Параметр=5,6 – в аргументы ChGroupReq копируются значения привязанных аргументов (до номера 255) или любых других атрибутов каналов одного и того же удаленного узла. Изменение значений аргументов ChGroupReq приводит к изменению привязанных аргументов/атрибутов;
Параметр=16 – если ch – канал класса CALL, если к ChGroupReq привязан атрибут ch.R, и если аргументы ChGroupReq имеют тип INPUT: в аргументы ChGroupReq копируются значения аргументов ch, а изменение значений аргументов ChGroupReq приводит к изменению соответствующих аргументов ch (по сети все аргументы передаются за один такт пересчета, по RS аргументы передаются последовательно, 1 аргумент за такт).
Функция канала CALL.ChGroupReq, к которому привязан источник 9/100.24 R_FIFO_Queue (см. Подтипы 9 и 100 ), зависит от атрибута Параметр.
Параметр=0
Канал INPUT запрашивает до 32 регистров из массива FIFO_Queue устройства. Полученные данные последовательно записывается в аргументы канала, созданные в ИС (не более 32).
Параметр=1
Канал посылает в контроллер команду MODBUS, сформированную по следующим правилам:
адрес соответствует адресу, заданному в источнике;
номер функции соответствует аргументу arg0;
Если arg0>255, то ожидается, что поле ответа контроллера, в котором указывается число байт данных для приема, содержит два байта вместо одного. Дополнение к подтипу такого канала изменяется с 9/100.24 на 9/100.25.
номер переменной соответствует заданному в источнике (2-байтное целое);
последние 2 байта (число запрашиваемых переменных) – нулевые.
Параметр=2
Аналог Параметр=1, но в последние два байта записывается значение arg1.
Параметр=3
Аналог Параметр=2, но к команде добавляются 2 байта, в которые записывается значение arg2.
Параметр=4
Аналог Параметр=3, но к команде добавляются 2 байта, в которые записывается значение arg3.
Параметр<>0: расшифровка ответа
Номер первого байта данных в ответе контроллера при arg0<255 – 3, при arg0>255 – 4 (считая с 0).
Байты данных последовательно записываются в аргументы, следующие за arg0…arg3 (в зависимости от атрибута Параметр).
В аргумент SINT или USINT пишется 1 байт данных.
В аргумент INT или UINT пишется 2 байта данных.
В аргумент DINT или UDINT пишется 4 байта данных.
В аргумент FLOAT пишется 4 байта данных в формате FLOAT.
Привязка источника MODBUS чтения или записи
Выполняется соответственно групповое чтение или групповая запись (WORD, FLOAT) при обмене с заданным устройством по MODBUS (в том числе по MODBUS TCP/IP). Устройство и начальный адрес задаются в источнике, количество считываемых/устанавливаемых параметров определяется числом аргументов канала.
При привязке переменной 15.13 @e_TCP_ModBus (см. Группа ДИАГНОСТИКА ), в первые обязательные 4 аргумента записывается следующая информация (описание приведенных ниже параметров дано в разделе Обмен по протоколу MODBUS TCP/IP ):
arg0 – загрузка ЦП потоком MODBUS TCP/IP;
arg1 – ERROR;
arg2 – TMDICONN;
arg3 – OFFCOUNT.
Последующие аргументы создаются группами по 4 (для каждого устройства своя группа) и содержат ту же информацию, что и переменная @e_TCP_ModBus. Ниже указаны номера аргументов в группе:
arg0 – ошибка TCP;
arg1 – ошибка устройства;
arg2 – время, прошедшее с момента последнего обмена;
arg3 – LONG; слово 0 – число неудачных попыток соединения, слово 1 – число очисток приемного буфера.
При привязке переменной 15.16 @Redundant (см. Группа ДИАГНОСТИКА ), в аргументы канала записывается следующая информация:
arg0 – состояние резерва;
arg1 – время, прошедшее с момента последнего обмена;
arg2 – баланс синхронизации;
arg3 – время цикла синхронизации;
arg4 – заданный период синхронизации;
arg5 – число блоков, затраченных на синхронизацию.
Параметры arg2-arg5 отображаются также в диалоге Просмотр компонентов (в строке SB – см. Профайлер с поддержкой графических экранов ).
При привязке переменной 15.20 @e_Connect (см. Группа ДИАГНОСТИКА ), в аргументы канала (создаются группами по 4) записывается следующая информация:
arg0 – ошибка IP;
arg1 – время ошибки IP;
arg2 – ошибка TCP;
arg3 – время ошибки TCP;
arg4 – размер очереди IP на отправку;
arg5 – размер очереди TCP (отправка);
arg6 – размер очереди TCP (прием);
arg7 – число принятых IP-пакетов;
arg8 – загрузка ЦП потоком IP_send;
arg9 – загрузка ЦП потоком IP_receive;
arg10 – загрузка ЦП потоком TCP_send;
arg11 – загрузка ЦП потоком TCP_receive.
Параметры arg0-arg6 отображаются также в диалоге Просмотр компонентов (в строке IPS – см. Профайлер с поддержкой графических экранов ).
При привязке переменной 14.0 @Status (см. Группа СИСТЕМНЫЕ ), в аргументы канала (создаются группами по 3; одна группа на каждый узел) записывается следующая информация:
arg0 – байт 0 (0x00FF) – состояние удаленного узла; байт 1 (0xFF00) – число, которое выводится в квадратных скобках после IP-адреса в диалоге Статусы узлов (см. Профайлер с поддержкой графических экранов );
arg1 – время, прошедшее с момента последнего обмена;
arg2 – рассинхронизация (мс).
При привязке переменной 14.13 @Calculate_Cycle (см. Группа СИСТЕМНЫЕ ), в аргументы канала (создаются группами по 4) записывается следующая информация:
arg0 – время, затраченное на работу в потоке CALC;
arg1 – реальное время цикла CALC;
arg2 – заданное время цикла CALC;
arg3 – загрузка ЦП потоком CALC.
Группы arg4…arg7, arg8…arg11 и arg12…arg15 отображают ту же информацию соответственно для потоков IDLE, FAST и T-FACTORY.
arg16 – счетчик CALC;
arg17 – счетчик IDLE;
arg18 – счетчик FAST;
arg19 – счетчик T_FACTORY;
arg20 – число превышений времени цикла CALC;
arg21 – последнее время цикла CALC в режиме превышения;
arg22 – время начала последнего превышения цикла CALC;
arg23 – переменная err_resource (см. Файл CNF в разделе Задание параметров работы мониторов ).
Канал CALL.ChGroupReq с привязкой к переменной 14.7 @Data_from_SIAD (см. Группа СИСТЕМНЫЕ ) предназначен для экспорта данных из SIAD. Общий формат создаваемых файлов:
<дата_время>.<мс> <значение> <доп_информация>
Данные извлекаются не только из самого архива, но также из его первой и второй копий (в зависимости от T_FROM и T_TO, которые задаются соответственно аргументами arg0 и arg1).
Если T_TO меньше числа секунд в году, то
T_TO = Tтекущее – T_TO [сек]
Если T_FROM меньше числа секунд в году и не равно 0, то
T_FROM = T_TO – T_FROM [сек]
Если T_FROM = 0, данные извлекаются с начала архива.
Биты 8-11 (0xF00) значения канала задают следующие функции (если бит 15 (0x8000) равен 0):
1 – выборка в один файл с именем канала ChGroupReq;
0 – выборка данных по каналу в отдельный файл с именем этого канала.
Биты 0-3 (0xF) значения канала задают формат создаваемого файла:
1 – TXT (текстовый);
2 – AVB (бинарный);
3 – не создавать файл (выводить данные только в канал CALL, привязанный к аргументу – см. ниже);
4 – HTML;
5, 6, 7 или 9 – XML.
Если бит 15 (0x8000) равен 1, производится выборка срезов из интервала (T_FROM, T_TO) с заданным шагом (60с по умолчанию), которая записывается в один файл c именем канала.
Если бит 15 (0x8000) равен 1 и формат файла – AVB, производится выборка срезов, которая записывается в файл формата SIAD (*.REP). Номер архива задается атрибутом (90, I0), а имя файла определяется значением битов 12-14 (маска 0x7000):
0 – <имя канала>, дописывать;
1 – <имя канала>_<начало выборки>
2 – <имя канала>_<начало выборки>_<конец выборки>
Начало и конец выборки – число секунд с 01.01.1970.
Добавление информации возможно только в файлы формата TXT, XML и REP.
Атрибут Параметр задает следующие параметры выборки:
биты 0-3 (0xF) – отрезок (шаг) выборки:
1 – минута;
2 – час;
3 – 5 минут;
4 – 15 минут;
5 – 20 минут;
6 – 30 минут;
7 – 2 часа;
8 – 4 часа;
9 – 6 часов;
10 – 8 часов;
11 – 12 часов;
12 – 24 часа.
При ненулевом значении битов 0-3 биты 4-7 (0xF0) атрибута Параметр задают следующую обработку данных:
0x10 – сумма на отрезке;
0x20 – среднее на отрезке;
0x40 – минимальное значение на отрезке;
0x80 – максимальное значение на отрезке;
0 – первое значение на отрезке;
биты 4-7 (0xF0) – при нулевом значении битов 0-3, что соответствует выборке всех данных, биты 4-7 определяют дополнительную информацию, которая выдается в выборку:
0 – без дополнительной информации (только значение);
0x10 – дополнительная информация об аппаратной достоверности (F – недостоверно, T – достоверно) и атрибуте 8 (M – подключен, A – отключен);
0x80 – дополнительная информация об атрибуте 3 (OFF – выключен, ON – включен);
0x40 – в качестве дополнительной информации указывается номер интервала (для канала FLOAT).
В атрибут 91, I1 канала выводится число необработанных каналов (по любой причине – например, в архиве нет данных по каналу).
В атрибут 92, I2 канала выводится код ошибки процедуры (при успешном выполнении значение атрибута равно 0).
Если в канале устанавливается признак аппаратной недостоверности, результатами процедуры пользоваться нельзя.
Допускаются следующие конфигурации аргументов канала:
только два аргумента (arg0 и arg1) – извлекаются все архивные данные;
существуют аргументы (кроме arg0 и arg1) с привязкой к архивируемым каналам – данные извлекаются только по привязанным каналам;
аргументы, следующие за arg0 и arg1, созданы парами; первый аргумент пары привязан к каналу CALL.ChGroupReq, не имеющему привязки, второй – к каналу, по которому нужно выбирать данные – в этом случае результат выборки, помимо файла, записывается в аргументы привязанного CALL.ChGroupReq. Если число аргументов привязанного CALL.ChGroupReq меньше, чем длина выборки:
если Параметр привязанного CALL.ChGroupReq равен 0, то в существующие аргументы записываются начальные данные выборки;
если Параметр привязанного CALL.ChGroupReq равен 2, то в существующие аргументы записываются конечные данные выборки;
если Параметр привязанного CALL.ChGroupReq равен 1, то МРВ создает недостающие аргументы (блокировка – 32000), и в аргументы записывается вся выборка.
Аргументы привязанного CALL.ChGroupReq могут создаваться парами – в этом случае в первый аргумент пары (DATE_AND_TIME) записывается время, во второй – значение.
Реальное значение привязанного канала CALL.ChGroupReq показывает значащее число аргументов. Если в канале устанавливается признак аппаратной недостоверности, то операция записи в его аргументы некорректна, и реальное значение канала равно 0.
Привязка всплывающих экранов к аргументам
См. Особенности вызова графического экрана .
Привязка CALL.ChGroupReq к экрану
См. Особенности вызова графического экрана .
При привязке переменной 15.25 @Graphics_Loop (см. Группа ДИАГНОСТИКА ), в обязательные 16 аргументов канала записывается следующая информация:
arg0 – значение @Graphics_Loop (реальное время цикла потока 16 (вызов графики));
arg1 – загрузка ЦП потоком 16;
arg2 – загрузка ЦП потоком 30 (графический поток ОС, рисование);
arg3 – число обновляемых экранов;
arg4 – среднее время обновления экранов, мс;
arg5 – суммарное время обновления экранов, мс;
arg6 – максимальное время от подачи команды до завершения перерисовки экрана;
arg7 – максимальное время, затраченное на перерисовку экрана;
arg8 – имя экрана, на перерисовку которого затрачено время arg7;
arg9 – максимальное время, затраченное на создание экрана (при переходах между экранами);
arg10 – имя экрана, на создание которого затрачено время arg9;
arg11 – максимальное время, затраченное на уничтожение экрана;
arg12 – имя экрана, на уничтожение которого затрачено время arg11.
При привязке переменной 15.4 @Net_Code (см. Группа ДИАГНОСТИКА ), в обязательные 8 аргументов канала записывается следующая информация:
arg0 – время, прошедшее с момента последнего обмена через системный сетевой адаптер, с;
arg1 – время, прошедшее с момента последнего обмена через адаптер 1, с;
arg2 – время, прошедшее с момента последнего обмена через адаптер 2, с;
arg3 – при переключении на адаптер N устанавливается бит N arg3;
arg4 – битовая маска адаптеров отсылки;
arg5 – битовая маска адаптеров приема;
arg6 – время переключения на другой адаптер.
Поскольку узел периодически шлет в сеть автопосылки, при работоспособных линиях связи аргументы arg0…arg2 должны периодически обнуляться. Постоянный рост значения аргумента свидетельствует о неработоспособности соответствующей линии связи.
В аргументы с номерами 8-19 записываются результаты диагностики работы сетевой карты (по всем задачам):
arg8 – количество принятых пакетов UDP;
arg9 – количество пакетов UDP, принятых с ошибкой;
arg10 – количество пакетов UDP с ошибкой порта (In No Ports);
arg11 – количество отправленных пакетов UDP;
arg12 – количество аппаратных ошибок в пакетах UDP (HrdError);
arg13 – количество адресных ошибок в пакетах UDP;
arg16 – получено пакетов IP;
arg17 – доставлено пакетов IP;
arg19 – сегментация в пакетах TCP.
Полученные данные записываются в аргументы канала, если такая функция поддерживается драйвером.