DevStudio. Сеть и диагностика
Назначение: описание структуры модели верхнего уровня NetSwitches.xls — файла конфигурации сетевых устройств и их диагностики.
Ожидаемый результат: разработчик понимает состав листов, назначение колонок на листах OBJ.* и связь полей с моделями OBJTYPE.
Введение
Section titled “Введение”NetSwitches.xls — Excel-модель верхнего уровня, в которой перечисляются сетевые устройства проекта (коммутаторы, панели оператора, промежуточные узлы и т.д.) и параметры их диагностики по SNMP или ICMP (PING).
По данным файла внутренний модуль Конфигуратор диагностики отображает список устройств для выбора; внешний модуль NetDevices загружает соответствующие модели OBJTYPE из библиотеки Diagnostic и создаёт объекты в DevStudio.
Общие правила разбора ячеек (#, H, @, d, VQ, VS: и др.) — в Правилах заполнения Excel-файлов. Принцип связи с OBJTYPE — в Связи с моделями верхнего уровня.
Расположение в проекте
Section titled “Расположение в проекте”| Элемент | Путь |
|---|---|
| Файл модели | JSC\Usr\Prj\Conf\NetSwitches\NetSwitches.xls |
| Каталог шаблонов портов | JSC\Usr\Prj\Conf\NetSwitches\Templates\ |
| Глобальная настройка пути | NETSWITCHES_DIRECTORY_PATH в SettingManager |
В каталоге Templates\ хранятся вспомогательные Excel-файлы с описанием портов коммутаторов. Путь к файлу шаблона задаётся в колонке portsTemplate на листе OBJ.* (см. ниже).
Состав листов
Section titled “Состав листов”Типовая книга NetSwitches.xls содержит:
| Лист | Назначение |
|---|---|
| Options | Общие настройки и переменные модели (в т.ч. выражения для GAP-функций с regexp) |
| OBJ.* | Экземпляры сетевых устройств; имя листа задаёт группу устройств (обычно по серверу IOS) |
| @* | Вспомогательные справочники; не участвуют в обработке (см. Правила заполнения Excel-файлов) |
Листы с префиксом @ используются как подсказки при заполнении (@nets — сети и первые октеты IP, @types — допустимые значения OBJTYPENAME, @regexp — примеры пар SplitRegex/ComposeRegex).
Лист Options
Section titled “Лист Options”На листе Options объявляются глобальные переменные модели в формате объявления по колонкам: строки #, H, @, затем строка данных d.
В рассматриваемом примере заданы две переменные:
| Переменная | Значение в примере | Назначение |
|---|---|---|
| SplitRegex | _+ | Регулярное выражение для разбиения тега при преобразовании |
| ComposeRegex | - | Шаблон сборки тега после разбиения |
Эти переменные используются GAP-функцией GetPrjTag при формировании атрибута SystemTag в моделях OBJTYPE (лист DevSt.attributes). Алгоритм — в Функции GetPrjTag.
Справочный лист @regexp дублирует типовые пары выражений; рабочие значения для генерации задаются на листе Options.
Листы OBJ.*
Section titled “Листы OBJ.*”Каждый лист с именем OBJ.* содержит таблицу экземпляров сетевых устройств. Структура заголовка совпадает с общими правилами Excel-моделей:
- строка
#— инструкции колонок (VQ— переменная,@— колонка без объявления переменной,VS:portsTemplate— подключение внешнего файла); - строка
H— имена переменных; - строка
@— краткие описания колонок; - строки
d— экземпляры (по одной строке на устройство).
Все экземпляры на одном листе OBJ.* обычно относятся к одному серверу ввода-вывода (IosServer).
Колонки листа OBJ.*
Section titled “Колонки листа OBJ.*”| Переменная | Обязательность | Описание |
|---|---|---|
| IosServer | да | Имя сервера IOS (IOS_App), в котором создаётся модуль диагностики и объект представления устройства |
| Domain | да | Домен DevStudio для объекта (например, P0-72-140, P0-80-010). Используется при формировании имени [Domain].[TAG] |
| (кол. 3–5) | — | Служебные поля (в строке # помечены @): код зоны/шкафа, номер устройства, серийный номер. Участвуют в составлении TAG |
| TAG | да | Уникальный тег экземпляра (например, P0-72-140-JF01-CA1001-SW001). Передаётся в OBJTYPE как [TAG] |
| PathDevStudio | да | Путь размещения объекта диагностики в дереве DevStudio (например, root.P0_72_140.NetDiagnostic.JF01_CA1001) |
| HmiTag | да | Имя группы/источника для мнемосхем HMI (например, P0-72-140-JF01-CA1001_NetSwitches) |
| OBJTYPENAME | да | Типовой блок OBJTYPE из библиотеки Diagnostic — определяет протокол и шаблон генерации |
| parentDescr | — | Краткое наименование (отображаемое имя) |
| EqtDescr | — | Описание оборудования |
| Title | — | Сокращённое обозначение модели (например, S304, S340) |
| SystemPosition | да | Подстанция / титул (например, P0-72-140). Используется в путях и шаблонах |
| NetName | для PING/SNMP | Имя первого сетевого адаптера (сеть проекта, напр. P-AFA-L2-M1) |
| iTCPAddr_1 … iTCPAddr_4 | для PING/SNMP | Четыре октета IP-адреса основного интерфейса |
| NetName2 | для резервирования | Имя второго адаптера (для NetDiag2 и двухканальных устройств) |
| iTCPAddr2_1 … iTCPAddr2_4 | для резервирования | Октеты IP второго интерфейса |
| portsTemplate | для SNMP-коммутаторов | Подключаемый файл шаблона портов. В строке H задаётся путь %JSC%\USR\PRJ\Conf\NetSwitches\Templates\[SystemPosition]\$S.xls; в строке d — имя файла без расширения ($S подставляет значение из той же ячейки) |
| PassAliasSnmp | для SNMP | Псевдоним SNMP community (например, pass1) |
| UseSnmp | для SNMP | Признак использования SNMP (x — включено) |
Типы объектов (OBJTYPENAME)
Section titled “Типы объектов (OBJTYPENAME)”Значение OBJTYPENAME выбирает модель OBJTYPE и способ диагностики:
- SNMP — коммутаторы (TreiS304, MES3300_24, MES3300_24F,
Stez_*, Mes3710P и др.); - PING — устройства с опросом ICMP (NetDiag1, NetDiag2; для резервированных сетей заполняются
NetName2иiTCPAddr2_*).
Полный перечень — в OBJTYPE для диагностики сетевых устройств (NetSwitches).
В примере NetSwitches.xls используются: TreiS304, MES3300_24, MES3300_24F, NetDiag2.
Сетевые адаптеры и IP-адреса
Section titled “Сетевые адаптеры и IP-адреса”Первые три октета IP часто соответствуют сети из справочника @nets (например, для P-AFA-L2-M1: 10.6.0.*), четвёртый октет (iTCPAddr_4) задаётся индивидуально для каждого устройства. Правила создания адаптеров при генерации — в алгоритме обработки SNMP и алгоритме обработки PING.
Шаблоны портов (portsTemplate)
Section titled “Шаблоны портов (portsTemplate)”Для SNMP-коммутаторов с детальной диагностикой портов в колонке portsTemplate указывается имя файла в каталоге:
%JSC%\USR\PRJ\Conf\NetSwitches\Templates\{SystemPosition}\{имя}.xlsПример: для SystemPosition = P0-72-140 и значения JF01-CA1001-SW001 в ячейке portsTemplate подключается файл Templates\P0-72-140\JF01-CA1001-SW001.xls (если он существует в проекте).
Для устройств NetDiag2 (PING) колонка portsTemplate обычно не заполняется.
Связь с OBJTYPE
Section titled “Связь с OBJTYPE”Цепочка данных совпадает с другими моделями верхнего уровня (см. Связь с моделями верхнего уровня):
- На листе
OBJ.*объявляется строка экземпляра с переменными (TAG,PathDevStudio,IosServer, IP-адреса и др.). - По
OBJTYPENAMEопределяется файл OBJTYPE (например, TreiS304 или NetDiag2). - Значения колонок подставляются как внешние переменные
[TAG],[IosServer],[EqtDescr],[SystemPosition]и др.
Дальнейшая обработка (выбор, генерация, создание объектов) — в Конфигураторе диагностики.
Пример строки экземпляра
Section titled “Пример строки экземпляра”Фрагмент из листа OBJ.P0-80-010-JF01 (коммутатор TREI S304):
| Поле | Значение |
|---|---|
| IosServer | P0-80-010-JF01-CS1001-SRV001 |
| Domain | P0-72-140 |
| TAG | P0-72-140-JF01-CA1001-SW001 |
| PathDevStudio | root.P0_72_140.NetDiagnostic.JF01_CA1001 |
| OBJTYPENAME | TreiS304 |
| NetName | P-AFA-L2-M1 |
| IP | 10.6.1.137 |
| portsTemplate | JF01-CA1001-SW001 |
| PassAliasSnmp / UseSnmp | pass1 / x |
Фрагмент для панели с резервированием (NetDiag2):
| Поле | Значение |
|---|---|
| TAG | P0-72-140-JF01-CA1001-PI001 |
| OBJTYPENAME | NetDiag2 |
| NetName / IP | P-AFA-L2-M1 → 10.6.0.163 |
| NetName2 / IP2 | P-AFA-L2-R1 → 10.6.10.163 |
Связанные материалы
Section titled “Связанные материалы”- Конфигуратор диагностики — сквозной сценарий: выбор и запуск генерации
- NetDevices — Генератор диагностики — настройки и результат генерации
- OBJTYPE Diagnostic — библиотека типовых блоков OBJTYPE / Diagnostic