Заказчик купил лицензию 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, чистка дублей) дешевле конфликта с заказчиком.
Обсуждение