Алгоритм обработки устройств PING
Техническая детализация алгоритма обработки PING-устройств. Запуск выполняется из внутреннего модуля Конфигуратор диагностики; генерацию выполняет внешний модуль NetDevices.
Контекст
Section titled “Контекст”| Роль | Модуль / статья |
|---|---|
| Источник данных | NetSwitches.xls |
| Выбор и запуск | Конфигуратор диагностики |
| Выполнение алгоритма | NetDevices |
Введение
Section titled “Введение”Диагностика по PING применяется для устройств, которые не предоставляют статус через промышленные протоколы (SNMP, Modbus, Unet, OPC и т.д.). В проекте DevStudio создаётся модуль NetDiag2 для периодической отправки ICMP-запросов и записи результатов в статические сигналы сервера.
Исходные данные и результат генерации
Section titled “Исходные данные и результат генерации”| Описание | |
|---|---|
| Исходные данные | Строка экземпляра из NetSwitches.xls с OBJTYPENAME = NetDiag1 или NetDiag2 |
| Исходные данные | Модель OBJTYPE из JSC\Conf\Models\ObjTypes\Diagnostic\Ping\ |
| Результат генерации | Объект в DevStudio ([Domain].[TAG]) с пустым APP и сетевыми адаптерами |
| Результат генерации | Модуль NetDiag2 в IOS, привязки к карте адресов (при включённой настройке) |
Поля модели (NetName, NetName2, IP-октеты) — в DevStudio. Сеть и диагностика.
Алгоритм работы
Section titled “Алгоритм работы”1. Загрузка данных
Section titled “1. Загрузка данных”Внешний модуль NetDevices читает выбранные строки из NetSwitches.xls.

Рисунок 1 — Пример файла NetSwitches.xls
2. Обработка модели OBJTYPE
Section titled “2. Обработка модели OBJTYPE”По значению OBJTYPENAME загружается модель из каталога JSC\Conf\Models\ObjTypes\Diagnostic\Ping\ (NetDiag1 или NetDiag2).

Рисунок 2 — Пример файла NetDiag2
3. Определение типов объектов
Section titled “3. Определение типов объектов”На листе NetDiag.opt модели OBJTYPE модуль находит пути к базовым типам:
DevStudioAppTypePath— остаётся пустым: устройство создаётся с пустым приложением и сетевыми адаптерами.DevStudioIOSTypePath— путь к типу представления IOS (например,unit.CommonLib.Types.Diagnostic.NetDiag2.NetDiag1дляNetDiag1илиunit.CommonLib.Types.Diagnostic.NetDiag2.NetDiag2дляNetDiag2).

Рисунок 3 — Лист NetDiag.opt из файла NetDiag2.xls
4. Создание объекта устройства в DevStudio
Section titled “4. Создание объекта устройства в DevStudio”Создаётся объект с именем [Domain].[TAG] (например, P0-80-030.P0-80-030-JF01-CA1001-PI002) — устройство с пустым APP и сетевыми адаптерами.
- Настройка IP-адреса: сетевому интерфейсу присваивается IP из полей
iTCPAddr_1…iTCPAddr_4(и при резервировании —iTCPAddr2_*). - Привязка к NetDiag: при включённой настройке «Привязать сигналы NetDiag в карте адресов» — см. Привязка к NetDiag.

Рисунок 4 — Структура объекта NetDiag с настроенным IP-адресом
5. Создание модуля NetDiag2 в сервере ввода-вывода
Section titled “5. Создание модуля NetDiag2 в сервере ввода-вывода”Независимо от OBJTYPENAME = NetDiag1 или NetDiag2, в приложении IOS_App сервера ([IosServer]) создаётся или настраивается модуль NetDiag2. Различие между NetDiag1 и NetDiag2 — только в DevStudioIOSTypePath (один или два сетевых адаптера).
6. Привязка переменных к карте адресов
Section titled “6. Привязка переменных к карте адресов”После создания модуля NetDiag2 производится привязка переменных представления к карте адресов (статус ONLINE/OFFLINE, время отклика). В настройках модуля NetDiag2 прописывается путь к карте адресов.
Связанные материалы
Section titled “Связанные материалы”- Конфигуратор диагностики — сквозной сценарий
- NetDevices — Генератор диагностики — настройки модуля
- Привязка к NetDiag — привязка сигналов