Блог

Считаем точки MasterSCADA: канал, архив и «лишние» связи в проекте

2026-07-29 08:50

Заказчик купил лицензию MasterSCADA 4D на 500 точек. На пуске счётчик показывает 680, проект не стартует или режет опрос «сверх лимита». Интегратор открывает дерево каналов: половина тегов «на всякий случай» с архивом раз в секунду, три копии одного Modbus-устройства после отладки, диагностические регистры без экрана, но с записью в historian. Никто специально не раздувает лицензию - точки копятся слоями, как дубликаты на мнемосхеме.

В MasterSCADA 4D лицензирование по точкам привязано к задействованным каналам протокола: есть связь с объектом, опрос, архивирование или запись - канал считается. CODESYS на том же железе СТАБУР так не лицензируется - там КП и паспорт. Статья разбирает, что входит в точку, где прячутся лишние связи и как ужать проект без потери диагностики. Не урок «как создать HMI с нуля» и не разбор серого тега на экране - это отдельные материалы.

Короткий ответ

Точка лицензии MasterSCADA 4D - это задействованный канал протокола (Modbus, OPC, внутренний и т.д.), у которого есть хотя бы одна активная связь: с объектом ОУ, архивом, alarm, скриптом или передачей на другой канал. Канал в дереве без связей обычно не считается; канал с архивом или привязкой к экрану через объект - считается. Дубли одного сигнала в трёх каналах - три точки. Оптимизация: один канал - один источник истины; архив только там, где нужен отчёт; диагностику Modbus вынести в групповой опрос без лишних копий; удалить отладочные драйверы перед сдачей. Счётчик в проекте или утилите лицензии сверяют до FAT, не после звонка заказчика.

Что такое «точка» в договоре и в дереве проекта

Пакеты лицензии: 500 / 1000 / 2500 / 5000 точек. «Точка» не равна «тег на экране» и не равна «регистр Modbus». Это канал в подсистеме протоколов, который участвует в runtime-обработке данных.

Задействованный канал - когда на него повешено что-то из списка: связь с параметром объекта; запись в архив (historian); alarm limit; передача (transfer) на другой узел; выражение, читающее канал в цикле опроса; иногда - канал, включённый в активную задачу опроса с непустой картой, в зависимости от версии и настроек драйвера.

Не задействованный: канал создан «про запас», но link на объект снят, архив отключён, канал disabled на уровне драйвера. Такие каналы нужно проверять в отчёте лицензии - поведение при disabled различается по версиям, безопаснее удалять мусор до сдачи.

На ПЛК СТАБУР MasterSCADA и CODESYS взаимозаменяемы как среды заказа; счётчик точек относится только к проекту MasterSCADA.

Канал протокола: один slave - сколько точек

Один Modbus TCP slave с 200 регистрами в карте - это не 200 точек автоматически. Точки растут по каналам (часто один канал = один логический тег или группа, в зависимости от конфигурации драйвера). Если каждый регистр заведён отдельным каналом и на каждый включён архив - получите сотни точек.

Групповой канал (block read) с разбором в объекте - экономит и опрос, и лицензию. Интегратор, привыкший к «один регистр - одна строка в дереве», раздувает счётчик.

Три одинаковых драйвера на один IP после отладки (рабочий, тестовый, «старый») - три набора каналов, даже если два disabled. Перед сдачей удаляют, а не оставляют серым.

Архив: главный умножитель точек

Архивирование канала почти всегда делает канал задействованным. Типовая ошибка: на все AI поставить архив 1 с «на всякий случай»; плюс дублирующий архив на объект ОУ, если связь двойная.

Разделите: оперативный тренд на экране (может идти через объект без отдельного historian на каждый сырой канал); юридически значимый архив (реже, дольше хранение); диагностика (редкий опрос, без архива, или общий системный канал).

Сменный отчёт пустой при переполнении лицензии - симптом, когда runtime отключает часть каналов. См. также материалы про historian и тренды - но здесь фокус на профилактике перерасхода.

«Лишние» связи: где они прячутся

Связь канал → объект → экран: если экран читает объект, а канал тоже напрямую привязан к виджету - возможен двойной учёт в логике опроса; для лицензии важен канал с активными link.

Копирование линии: скопировали папку Line2 с Line1, забыли сменить IP - оба драйвера active, каналы Line1 Bad, но всё ещё в проекте с архивом.

Скрипты startup, перебирающие все каналы драйвера. OPC mirror: каждый канал Modbus продублирован OPC-тегом для внешней SCADA - две точки на один сигнал, если оба активны.

Вычисляемые каналы (virtual), ссылающиеся на сырые - virtual может считаться отдельно, если оформлен как канал протокола «Internal» или «Calc» - проверяйте отчёт для вашей версии 4D.

Alarm на каждый AI отдельным каналом limit - иногда лimit висит на объекте, иногда на канале; лишние каналы-limit создают шум в дереве.

Практика подсчёта перед заказом лицензии

На этапе ТКП: число уникальных сигналов с поля + 10-15 % на диагностику + запас на вторую очередь. Не умножайте регистры Modbus на два «про запас».

В проекте: встроенный отчёт лицензии / License counter (название пункта меню зависит от версии) - export в Excel; сортировка по «used»; фильтр каналов с архивом.

Ревизия: отключить архив на неиспользуемых; объединить AI одного котла в block; удалить disabled drivers; проверить, что HMI берёт данные через объекты, а не дублирует сырые каналы на каждый виджет.

После оптимизации - полный restart runtime и повторный счётчик. Online change иногда не обновляет license view до перезапуска.

Оптимизация без потери диагностики

Не вырезают Comm_OK и счётчики ошибок Modbus - выносят в один системный канал status word на slave. Не архивируют каждый раз в секунду - достаточно on-change или 1 мин для диагностики.

Для FAT оставляют список обязательных архивируемых тегов в приложении к паспорту. Всё остальное - под нож на ревью.

Если лимит близко: уменьшить scan rate некритичных каналов (не всегда снижает точки, но снижает нагрузку); перенести тяжёлую историю на внешний сервер - архитектура зависит от объекта; upgrade лицензии - честный вариант, если сигналов действительно 800.

Связь с экраном: Connected, но точки лишние

Канал Connected и Good, но не используется на экране - всё равно может быть точкой, если архив или объект link активны. Обратная ситуация из статьи про серый тег при Connected: экран серый, а точки тратятся на другие каналы того же PLC.

Cross-reference по имени тега находит каналы без единой привязки на HMI - кандидаты на удаление.

Сценарий на пуске: 680 при лицензии 500

Типовой звонок: runtime стартовал, часть экранов пустая, в log «license exceeded» или каналы с приоритетом ниже отключены. Интегратор открывает отчёт: 120 каналов - архив 1 с на инженерных тегах с FAT; 80 - дубли после копирования Driver_PLC_Test; 40 - OPC mirror для диспетчерской, хотя на объекте только местный HMI.

План за вечер: export списка каналов с флагом archive; сортировка по частоте использования на экранах (cross-ref); отключение архива на некритичных AI; слияние block read; удаление test driver; restart; повторный счёт. Утром - 470 точек, запас на вторую очередь без доплаты.

Если заказчик настаивает на полном архиве всех AI - закладывают лицензию 1000 на этапе ТКП, а не «потом докупим».

Передача данных между каналами и скрипты

Transfer link между каналами (Master → Slave internal) иногда считают две точки - источник и приёмник. Скрипт, который в цикле пишет в 200 каналов «для синхронизации» - 200 точек, даже если экран один.

Оптимизация: один канал-источник, вычисления в объекте ОУ, на экран - параметры объекта. Скрипты startup - только для конфигурации, не для постоянного дублирования опроса.

Modbus: карта регистров и «лишние» holding

Инженер импортировал CSV карту Modbus - 400 holding registers «как в Excel заказчика». Каждый импортирован как канал с link. Реально на HMI - 60 тегов. Остальное - резерв, который никто не отключил.

Ревизия: импорт только используемых регистров; группировка смежных в block; комментарий «reserved» без link не спасает, если канал enabled - проверяйте отчёт лицензии для вашей версии.

Диспетчерская и второй уровень SCADA

Объект с MasterSCADA на панели и OPC UA наружу: наружные Node как каналы OPC - точки. Если диспетчерская читает те же сигналы, что уже в Modbus канале, не дублируйте третий раз через internal calc без нужды.

Согласуйте с IT: один OPC server, одна точка входа; Modbus наружу не отдавать параллельно без причины.

CODESYS vs MasterSCADA на одном объекте

Если часть линии на CODESYS, часть на MasterSCADA - точки считаются только в проекте MasterSCADA. Не смешивайте два runtime на одном ПЛК без необходимости. Выбор среды на этапе заказа СТАБУР - в статье про выбор ПЛК и лицензию по точкам.

Элемент проекта, точки и действие

Элемент проекта Входит в точки? Как убрать лишнее
Канал Modbus с link на объект Да Удалить канал или disable driver после миграции
Канал без связей, disabled Обычно нет Удалить из дерева для порядка
Канал с архивом historian Да Отключить архив; увеличить интервал; один arch на объект
Дубль драйвера на тот же IP Да (оба набора) Оставить один драйвер
Virtual / calc канал Часто да Считать в объекте без отдельного канала
Alarm limit на канале Да Перенести limit на объект
Диагностический регистр «на всякий» Да, если link/архив Block read status; без архива
OPC канал-дубль Modbus Да Один источник; OPC или Modbus, не оба
Канал в копии линии Line1→Line2 Да Удалить неиспользуемую линию
Тестовый slave 127.0.0.1 Да, если active Удалить перед production

Вопросы с пуска

Тег на экране без канала в дереве - точка?
Если экран читает только объект, а объект - один канал, точка одна. Если виджет напрямую на канал плюс объект - риск двойного опроса, канал один на точку.

Помогает ли групповой Modbus read?
Снижает число каналов и нагрузку. Точки считаются по каналам, не по регистрам внутри block - но один block channel вместо 50 single.

Archive disabled, link на объект есть - точка?
Да, связь с объектом задействует канал.

Можно ли «обмануть» счётчик?
Нарушение лицензии. Runtime при превышении отключает каналы или не стартует - импортозамещение и теги не про лицензию, но про дисциплину имён на миграции.

500 точек хватит для малой котельной?
При 80-120 сигналах с поля и разумном архиве - да. При «каждый регистр отдельно + архив 1 с» - нет.

Archive on change vs periodic - влияет на точки?
Канал с любым активным архивом обычно точка. Интервал влияет на диск и CPU, не на счётчик точек.

Как передать заказчику отчёт по точкам?
Export из license report + приложение к FAT с числом каналов и списком архивируемых тегов. Подпись интегратора и версия проекта.

На практике

На ПЛК и панелях СТАБУР заказ MasterSCADA 4D с пакетом точек выбирают на этапе КП. Ревизия каналов перед FAT на том же железе, где будет эксплуатация, избавляет от сюрприза «680 из 500» в ночь пуска. CODESYS на этой платформе точки не считает - если лимит давит, пересмотр архитектуры (один runtime, block read, чистка дублей) дешевле конфликта с заказчиком.

Ссылки по теме