Обмен по SNMP не работает в DOS и Windows CE.
В качестве шаблона канала обмена используется шаблон UniversalPLC_type4 (группа Источники/Приемники / Пользовательские драйверы / TYPE12).
В реальном времени каналу, к которому привязан шаблон, присваивается подтип 108 с дополнением 10.
Атрибут Дополнительно шаблона должен содержать следующую строку:
SNMP:AGENT=<IP-адрес>;[COMMUNITY=<область>;]OID=<ID>;
Параметры строки:
область – PRIVATE (для записи) или
PUBLIC. Если подстрока
COMMUNITY=<область> отсутствует,
то значение параметра устанавливается автоматически в зависимости
от команды:
GET_NEXT или GET –
PUBLIC;
SET – PRIVATE;
ID – ID объекта в дереве данных SNMP
(дерево представляет собой последовательность вида
.число.число…).
Атрибут C0 задает команду:
0 – GET_NEXT (устанавливается
автоматически, если шаблон привязан к каналу
CALL.ChGroupReq);
1 – GET (устанавливается автоматически,
если шаблон привязан к каналу типа INPUT);
2 – SET (устанавливается автоматически,
если шаблон привязан к каналу типа OUTPUT);
Атрибут C5 содержит код ошибки:
1 – у агента не хватает места;
2 – несуществующее имя;
3 – некорректное значение;
4 – обнаружена попытка записи, когда запись
запрещена;
5 – общая ошибка;
16 – ошибка обмена;
17 – не открыт сеанс.
По команде GET считывается одна переменная и записывается в атрибут (2,In).
По команде SET выполняются следующие действия:
считывается текущее значение переменной;
значение атрибута (9,Q) записывается в
переменную.
По команде GET_NEXT в аргументы канала CALL.ChGroupReq записывается структура данных SNMP, начиная с заданного объекта.
Тип данных канала/аргумента должен соответствовать типу данных SNMP. Специфические типы данных SNMP:
counter64 – 64-разрядное число,
записывается либо в канал DOUBLE FLOAT, либо в 2
аргумента канала CALL.ChGroupReq (в аргумент с
младшим номером пишутся байты 4-7, в следующий аргумент – байты
0-3);
IP-адрес, counter32 – тип данных
канала/аргумента должен быть DINT (long);
octet string – записывается в
аргументы канала CALL.ChGroupReq. Если в
считываемой строке есть непечатный символ, все байты преобразуются
в формат HEX и записываются через запятую. Если тип аргумента –
STRING или DINT, аргумент меняет тип на длинную строку (ср.
Запись длинных строк в канал CALL
);
bit – записывается в атрибут/аргумент с
типом данных DINT (long) если длина строки меньше или
равна 4 байтам;
OID – записывается в аргумент с типом
данных STRING;
sequence – не поддерживается;
OPAQUE – записывается так же, как
bit.
Если в канале установлен флаг Отладка (49, DBG), в протокол профайлера (файл <имя файла prj>_<порядковый номер узла>.txt) записывается следующая строка:
<OID>=<считанное значение>