Блог

В MasterSCADA тег Connected, но на экране серый

Оператор звонит: «давление на мнемосхеме серое, хотя вчера было зелёное». Вы открываете MasterSCADA 4D в режиме разработки, смотрите дерево каналов - у тега PT101_Pressure статус Connected, качество Good, значение в онлайне 4,2 обновляется. На экране оператора то же поле серым цветом и прочерк или замороженная цифра. Разработчик говорит: «связь есть, это HMI косячит». Эксплуатация не хочет разбирать слои - им нужен рабочий экран.

Connected на уровне драйвера означает, что канал протокола жив и опрос идёт. Серый на мнемосхеме - почти всегда другой слой: привязка виджета не к тому тегу, условие видимости/активности, роль оператора без прав на запись/чтение, дублирующий тег с Bad quality на экране, масштаб или тип данных, из-за которого значение «невалидно» для отображения. Статья разбирает цепочку от драйвера до пикселя на экране. Не повторяем полный урок Modbus-карты - он в отдельном материале; здесь фокус на расхождении статуса канала и картинки.

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

Если в MasterSCADA тег в дереве Connected и Good, а на экране серый, проблема в слое отображения или правах, а не в обрыве Modbus. Проверьте: привязку Text/Indicator к правильному каналу (не к копии, не к архивному тегу); свойства «серый при Bad quality» - нет ли второго источника quality на экране; роль пользователя и матрицу доступа к объекту/окну; условия Visibility/Enable по другому тегу, который сейчас false; локальный скрипт или анимацию, перекрывающую цвет; не открыт ли оператором старый экран из кэша Runtime на панели. Сверьте значение в Runtime watch на том же клиенте, где серый экран - не в IDE на инженерной станции.

Два мира: канал драйвера и объект экрана

В MasterSCADA 4D (как и в связке CODESYS + внешний HMI) данные проходят цепочку: поле → протокол → канал в дереве → при необходимости связь с объектом ОУ → привязка свойства виджета на экране. Connected горит на канале, когда TCP/RTU сессия установлена и ответы приходят в пределах таймаута.

Виджет на мнемосхеме может ссылаться на:

Прямой канал Drivers.PLC1.PT101. Параметр объекта Objects.Tank1.Pressure с маппингом на тот же канал. Вычисляемый тег или связь с другим именем. Копию экрана со старым путём после переименования канала.

Типичная ошибка: в дереве переименовали тег после смены адреса Modbus, Connected на новом имени, а мнемосхема всё ещё привязана к старому пути - он offline или unassigned, на экране серый.

Откройте экран в редакторе, выделите серое поле, посмотрите Binding в свойствах. Сравните с каналом в онлайне. Cross-reference по имени тега в проекте находит дубликаты.

Quality Good в дереве и серый на экране

Некоторые виджеты берут quality не с того канала, который показывают в числе. Пример: число с PT101, цвет рамки - с Comm_OK или с агрегированного Line1_Ready. Если Comm_OK false, поле серое, хотя давление Good.

В MasterSCADA проверьте свойства отображения: «Use quality», «Gray when bad», привязку к Alarm state. Аварийный приоритет на том же теге может переводить виджет в «неактивный» вид без потери Connected на драйвере.

Bad quality на экране иногда приходит из преобразования: деление на ноль в формуле объекта, NaN для REAL, выход за диапазон типа. В дереве смотрят сырой канал, на экране - результат выражения - расхождение.

Подробнее про карту тегов и Bad quality в материале про Modbus и экран оператора.

Роли доступа: оператор не видит то, что наладчик

Матрица ролей режет не только кнопки записи, но и видимость тегов и окон. Наладчик под ролью Administrator видит значение; оператор под Operator - серое поле или «***», хотя канал Connected.

Проверьте: какая роль активна на клиенте Runtime (логин оператора); права на объект ОУ и на конкретный экран; наследование прав от папки; не включён ли режим «только аварии» с затемнением остального.

Материал про роли оператор/наладчик полезен при приёмке: тест под каждой учёткой, не только под разработчиком.

Runtime на панели vs онлайн в IDE

Инженер смотрит Connected в среде разработки на ПК с прямым подключением к проекту. Операторская панель в цеху может работать на другом экземпляре Runtime, другой версии проекта, другом IP сервера OPC/шлюза. Симптом: «у вас connected, у нас серое».

Сверьте: номер сборки проекта на панели и на сервере; время последнего download; не остался ли на панели старый .rtm без новых привязок; сетевой путь панели к ПЛК (см. Modbus через firewall - отдельная тема). Перезапуск Runtime на панели после обновления экранов обязателен в регламенте, иначе кэш экранов.

Условная видимость и логика экрана

На мнемосхеме часто висят условия: Visibility = Mode_Manual, ColorGray = NOT LineRunning. Линия в останове - технологически верно серить часть полей. Оператор воспринимает как «связь пропала».

Откройте условия анимации, временно отключите в тестовой среде или смотрите те же флаги в watch. Не путайте с потерей связи.

Дубли тегов и разные ПЛК

Два канала PT101 в разных драйверах: один на рабочий ПЛК, второй на резервный или тестовый - Connected на тестовом в IDE, а панель смотрит на резервный с Bad. Имена совпали визуально, пути разные.

В проекте введите дисциплину имён: префикс линии, IP в комментарии канала. Поиск по дереву выявляет дубликаты.

Масштаб и тип: «серое» как невалидное число

Если в виджет приходит значение вне допустимого диапазона Min/Max свойства поля, некоторые конфигурации показывают прочерк или серый. INT вместо REAL даёт мусор, quality может остаться Good на сыром регистре.

Сверьте тип канала, byte order, масштаб - пересекается с Modbus-картой экрана. На экране смотрите сырое через инженерное окно, если роль позволяет.

Процедура разбора за 15 минут

На клиенте, где серый экран, откройте инженерное меню или watch (если есть права). Найдите точный тег поля. Сравните value и quality с деревом на сервере разработки одновременно. Если на клиенте Bad, на сервере Good - проблема доставки до клиента или другой тег. Если везде Good, серый - UI condition или стиль. Проверьте роль, условие анимации, привязку. Исправьте binding, перекомпилируйте экран, выгрузите на Runtime панели, перезапустите клиент.

Зафиксируйте в журнале: какой тег был привязан ошибочно - чтобы не повторить при копировании экрана на другую линию.

Связь с отладкой HMI

Отладка HMI: объект, симуляция, force - про симуляцию без поля. Если при симуляции на ПК экран зелёный, а в цеху серый - различайте симуляцию канала и боевой Runtime. Force в ПЛК не должен менять Connected, но может менять условия видимости на экране.

Аварийный приоритет и «серое» поле при живом значении

Виджет может показывать число бледным или серым, когда на тот же тег повешена неподтверждённая авария высокого приоритета - это не потеря связи. Оператор видит «серое давление», наладчик в IDE - Connected и Good. Проверьте список активных алармов на клиенте Runtime, настройки «приглушить фон при unacked alarm», цвет текста в состоянии Acknowledged vs Active.

Если авария на соседнем теге Comm_Fail или PLC_Stop, мнемосхема целиком переводится в «дежурный» стиль - все аналоги серые. Cross-reference по экрану находит глобальные условия стиля.

Несколько серверов Runtime и тонкий клиент

На крупных объектах операторский клиент подключается к серверу A, а инженер смотрит дерево на сервере B после репликации проекта с задержкой. Connected на B, на клиенте A - старый канал без привязки. Сверьте, к какому хосту подключена панель (настройки startup), один ли экземпляр проекта задеплоен.

Тонкий клиент через браузер добавляет кэш и сессию - после обновления экранов нужен жёсткий refresh или очистка кэша, иначе серые поля «залипают» при живом сервере.

Копирование экранов между линиями

Интегратор копирует мнемосхему с линии 1 на линию 2, меняет заголовок, забывает перепривязать теги с префикса L1_ на L2_. На линии 2 Connected у правильных каналов в дереве линии 2, экран всё ещё смотрит на линию 1 - там связь может быть Bad или отсутствовать, на экране серый. Массовая замена привязок в редакторе и поиск по L1_ в проекте экранов - обязательный шаг при клонировании.

OPC и промежуточный слой между ПЛК и экраном

Если мнемосхема берёт тег из OPC UA или промежуточного сервера, Connected в дереве MasterSCADA относится к каналу OPC, а не к Modbus ПЛК. OPC-сервер может быть Connected, а конкретный Node в Bad - на экране серое поле. Проверьте цепочку до конечного NodeId, не останавливайтесь на «драйвер зелёный». На объектах со смешанной архитектурой это частая ловушка при разборе «связь есть».

При сдаче экрана оператору проверяйте отображение под учёткой Operator на том же клиенте, где будет смена - не только под Administrator в IDE.

Симптом, слой и проверка

Симптом Вероятный слой Проверка
Connected в IDE, серый на панели Старый проект на Runtime Версия сборки; перезапуск клиента; download
Good в дереве, серый на экране Неверная привязка виджета Binding поля; cross-reference имени
Только у оператора серый Роль / права Войти под Operator; матрица доступа
Серый при работающей линии Условие Visibility/Color Анимации; флаги Mode/Run
Число есть, рамка серая Quality с другого тега Привязка quality; Comm_OK
После переименования тега Старый путь на экране Поиск старого имени в экранах
Серый только ночью Скрипт по расписанию Журнал; таймеры в проекте
Все поля экрана серые Нет связи клиента с сервером Статус Runtime; не путать с одним тегом
Прочерк вместо цифры Тип/масштаб/NaN Формула объекта; тип REAL/INT

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

Connected гарантирует правильное значение на экране?
Нет. Гарантирует опрос канала. Отображение зависит от привязки, прав и логики экрана.

Можно ли отключить «серение» при Bad quality?
Можно в свойствах виджета, но для эксплуатации лучше чинить quality и привязку, а не скрывать проблему.

Почему наладчик видит цифру, оператор нет?
Разные роли или разные клиенты Runtime. Проверка только под учёткой оператора.

CODESYS со встроенным экраном - те же причины?
Да. Визуализация в CODESYS или MasterSCADA на одном ПЛК подчиняется тем же правилам привязки переменных и условий, среды взаимозаменяемы.

Нужно ли перезагружать ПЛК при исправлении привязки?
Обычно достаточно обновить экран и перезапустить HMI Runtime. ПЛК трогают, если меняли карту Modbus или логику.

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

Обсуждение