[Промышленное программирование, SCADA] Самоучитель по WinCC OA. Часть 5. Работа с журналом тревог
Автор
Сообщение
news_bot ®
Стаж: 6 лет 4 месяца
Сообщений: 27286
(* Начиная с этой части я перешел на версию WinCC OA 3.17. Никаких отличий в масштабах базового курса не будет. Изменятся лишь надписи на скриншотах.*)![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/60a37001a144016485d995db36f26fce.png)
При создании типа точки данных Flap мы уже предусмотрели битовый DPE для аварии «Момент» (Flap→Alarms→Torque). Однако в настоящий момент для всех трех точек данных (Flap1, Flap2, Flap3) это всего лишь элемент, переменная. Для того, чтобы изменение этой переменной фиксировалось в подсистеме сообщений, необходимо повесить на этот DPE соответствующий конфиг. Для этого открываем модуль para и ищем наши точки данных.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/77497b8f5f9dd98785e3ac423908deb5.png)
Добавляем к DPE Torque точки данных Flap1 конфиг «Alert Handling»![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/d94f2207cd2484bfb22f82171b752c7e.png)
Открываем настройки добавленного конфига. Обратите внимание, что внешний вид настройки Alert Handling зависит от типа переменной, к которой относится сам аларм. В настоящий момент мы работаем с типом данных bool, внешний вид окна следующий.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/8aea4e7d89c17f4a3ed348628d289c5e.png)
Good range касается значения самое переменной — какое из значений является «плохим» (т.е. при каком значении считаем, что аларм сработал), а какое — «хорошим» (аларма нет). Так же задаем текст при появлении аларма и его исчезновению. Зададим этот текст, как «came» (пришло) и «went» (ушло). За «хорошее» значение будем считать битовое значение «ложь», т.е. аларма нет.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/8a81a21e289bcab0dbf10c407e623759.png)
Класс аларма — весьма важный параметр. Он определяет многие аспекты отображения сигнализации: какой будет цвет, задействовано ли мерцание, будет ли звуковое уведомление, требуется ли квитирование и т.д. Выбираем класс S7_Alarm и ставим галочку рядом со словом «Active». После выставления аларма активным все настройки становятся недоступны. Обратите внимание, что настройки активного аларма недоступны для редактирования не только на визуальной форме, но и средствами скриптов (а скриптами в WinCC OA можно много чего сделать, включая и динамическую работу с алармами). Настройки допускается менять только для неактивных алармов.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/b9573a9f93025c54467bab6d94705604.png)
Перейдем в модуле para на конфиг original, посмотрим текущее значение и поменяем его на «истину».![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/59db879fccd4f425b19f20e08e241f6f.png)
Текущее значение переменной FALSE, аларм неактивен![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/8f20c555cecf0749eb3ee5ccc1b77cc7.png)
Текущее значение переменной TRUE, аларм активен, текст мигает очень быстроВернем значение переменной в FALSE. Текст аларма остается «came», продолжает мигать, изменилась лишь интенсивность его мигания.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/e6ea1de45e6cb51361ca00cdfc74980c.png)
Данный класс алармов подразумевает необходимость квитирования. Для подтверждения аларма в этом окне необходимо нажать кнопку Acknowledge, после чего все вернется в «нормальное» состояние.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/9443610fce6f5a131cb353f034ef2896.png)
Возникает вопрос — где можно ознакомиться с настройками каждого класса алармов? Как можно модифицировать существующий класс алармов или задать свой класс? Это реализуется через точки данных (вообще любые настройки системы живут либо в точках данных, либо в конфиг-файлах). Ну, а если что-то доступно через точки данных, то это что-то вполне возможно модифицировать через программный код. Правда, сейчас мы этого делать не будем. Лучше посмотрим модуль para и поищем нужные точки данных.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/2ef47e8be73b566c302126992086a746.png)
На первый взгляд тут есть много точек данных, но где же DP, ответственные за классы алармов? Выставляем галочку Internal datapoints (внутренние точки данных) и видим, что полку точек данных заметно прибыло.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/c311acb1be2cfbc9ea590b1c4559e0f4.png)
Ищем точки данных типа _AlertClass, тут и содержатся все классы алармов, которые можно изменить (на свой страх и риск, разумеется), либо создать свой новый класс. Поскольку мы выбрали для нашего единственного аларма класс S7Alarm, смотрим его настройки, развернув соответствующую точку данных.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/c6e69a61d542a86df4d9ada0c866e7e1.png)
Тут и задается приоритет класса, сохранение алармов, необходимость квитирования, надо ли квитировать «прошлые» алармы, если тревога возникала неоднократно до действий оператора, цвет и шрифт текст алармов и т.д.Только что мы смотрели, как работают алармы в модуле para. Это очень интересно и познавательно для разработчика, однако не очень удобно. Ознакомимся еще с одним способом просмотреть список событий. Для этого в меню gedi найдем и нажмем кнопку System Management![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/dbffebeccbe4969150e73d0586ea15b5.png)
Перейдем в Diagnostics![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/3c7fe1e482d31bf863d6d22f14b2fb69.png)
Откроем Alarmscreen![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/7a5b2cfc9ddfd6b430c634fd8b8db569.png)
И в появившемся окне нажмем на зеленый треугольник внизу панели![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/e0138a6eb8a2f6f321d36d569cbe44a6.png)
Откроем модуль para, найдем Flap1.Alarms.Torque и поиграем с его значениями![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/615a82cc6451131524bcc5596cac7b98.png)
В окне Alarmscreen можно сквитировать алармы. По умолчанию данное окно показывает только текущие тревоги. Если активных алармов нет, а все старые уже сквитированы, то список пуст. Для того, чтобы изменить представление, необходимо нажать кнопку с отверткой и гаечным ключом внизу панели. В этих свойствах очень много закладок и очень много настроек. И все они касаются одних только алармов.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/0ffaf03a7d2eb28ca99a8703bcaead56.png)
Если задать Time range в Open и выбрать Historical Data, то мы сможем увидеть историю алармов.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/06c512ee6a5d6444af53504cbb75b9b6.png)
В связи с тем, что тема алармов весьма обширная, а это всего лишь первый взгляд, не стоит удивляться некоторым непонятным вещам. Например, мне самому непонятно, почему в этой таблице Alarm text у нас везде состоит из одного слова «came» (нуууу… когда-нибудь, наверное, может быть, если фаза луны сойдется, то разберусь).Alarmscreen тоже очень интересен. Смотреть на нем алармы куда лучше, чем в модуле para. Однако, мы делаем конечное приложение для конечного пользователя, т.е. для оператора. Удобно ли будет оператору каждый раз открывать через менюшки отдельное окно аварий? Лично я в этом сильно сомневаюсь. Давайте лучше займемся интеграцией окна сообщений в наше приложение пользователя.Перейдем обратно в редактор gedi и откроем созданную ранее панель Flaps. Далее посмотрим внимательно на левую часть редактора gedi. Кроме нашего проекта (у меня он называется Workshop) есть еще один проект с названием 3.17 (в самом начале этой главы я уже признался, что перешел на новую версию, а так был бы проект с названием «3.16»), который мы точно сами не создавали. Его можно развернуть и поизучать, там много всего интересного — скриптов, библиотек, панелей и т.д. Пытливые умы потратят немало времени на ознакомление.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/5da7eb51e7eee7967cf66a79e8bbe667.png)
По сути, это и есть «ядро» системы WinCC OA. Этот проект содержит все или почти все, относящееся к самой платформе — gedi, para, панель Project Administrator, панель консоли, вся логика. И, вуаля, всем этим можно пользоваться в своих приложениях. Вот, например, я открыл в редакторе gedi панель para. Его можно изменить. И использовать в своих целях измененную копию. Про модификацию стандартных (или системных?) компонент WinCC OA поговорим чуть попозже в этой же части. А сейчас наша задача — разместить окно с алармами в окне пользовательского приложения.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/f33a08f88021703a5b2670347ac964f9.png)
Редактировать модуль para пока не будем (хоть и очень хочется)Для этого в дереве «системного» проекта 3.17 ищем панель по следующему пути: 3.17 (версия Вашей копии WinCC OA) → Panels → vision → aes → AESRow.pnl. Перетаскиваем ее на свободное место открытой панели Flaps. Система попросит задать значение $-параметра $SCREENTYPE. Цинично проигнорируем эту просьбу, нажав кнопку Cancel.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/c1d9fcda8fb1080ee0c4984f2fcc783a.png)
Внизу у нас появился небольшой элемент отображения![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/3a6ecbd961742d1e5d5fad51a3d63ed4.png)
Проверим, работает ли оно вообще, для чего зададим в модуле para значение «истина» для аварийного сигнала.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/265ea805777eb878c91d29d4011560b4.png)
Как видно, работает![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/92cb766325cb0385e8792665ed1e6bad.png)
Скрыл модуль para, аларм есть и активно мигает (чего на видно на скриншоте)Теперь поговорим немного о модификации стандартных компонент WinCC OA. Например, сейчас я растянул в высоту окно отображения алармов. В нем добавилось строк, однако кнопки и цифры в правой части растянулись в высоту, что плохо влияет на эстетику. Упростим себе задачу и просто уберем эти кнопки.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/b383a89bc25ccbe69820f7b601b68bbe.png)
Для этого в редакторе gedi кликнем правой кнопкой на AESRow и выберем Open panel reference![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/ac515b05751552d6a9f17bc82f001b17.png)
Откроется «оригинальная» панель![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/93684c5779055085285707d60fa3db13.png)
Удалим «некрасивые» кнопки и цифры![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/5844ed74994d964ae61913f91fc2a8bc.png)
Нажмем Save и увидим следующее окно![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/f399b8952310ace9492d65850b4268f1.png)
Ответим утвердительно, после чего редактируемая нами панель сохранится в виде копии в структуре нашего проекта «Workshop», а не по «системному» пути. В нашем проекте мы будем работать с этой копией. Теоритечески можно сохранять по системному пути (например, путем подмены файлов), то эти изменения становятся общими для всех проектов WinCC OA, что нежелательно. Особенно негативно сохранение по системному пути, а не в виде локальной копии, может сказаться после установки патчей. Патчи могут корректировать, в том числе, и системный проект, и даже ту панель, которую вы изменили. Вероятность этого всегда отлична от нуля. Соответственно, устанавливая патч, вы рискуете утратить свои изменения, если сохранили их в системный проект.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/0e5284bcab4fb459bad00cb5bc39fe2a.png)
Есть еще один нюанс, связанный с модификацией системных панелей и патчами. Если вы работаете с локальной сохраненной копией проекта, то натравленный на систему патч исправит только «системный» проект, но не вашу локальную копию панели.В общем, модификация ядра — это ответственное занятие, требующее внимательности. Не забывайте читать readme патчей, затронуты ли там модифицированные вами панели. У вас в руках очень мощный инструмент, но пользоваться им надо уметь.После внесения изменений в панель AESRow нашу панель Flaps необходимо переоткрыть, чтобы изменения «вложенной» панели вступили в силу.Последний пример в этой части — визуализация пиктограмм технологического оборудования, находящегося в аварином состоянии, тем же способом (цвет, мерцание и т.д.), который задан соответствующему классу аварий. Для этой демонстрации разместим на панели Flaps окружность (Circle).![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/17e69f8e812481e40719f678d747747e.png)
Зададим динамизацию события Initialize через визард, как уже делали ранее для задвижки. Выбираем в визарде Change color![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/bef10a3a7450b25e87fd1016e232cfdb.png)
Выбираем Background color и Alert Handling, жмем Next. Выбор Alert Handling позволит системе подтянуть значение цвета от аларма.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/2bd4264b50c103948dbb3f6e9a1c59ed.png)
Выбираем Datapoint element![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/7177859e1afa2546d983cc3a433756d0.png)
Жмем Next, а в следующем окне — Finish. Запускаем на проверку и смотрим, что получилось. В настоящий момент аларм у меня активен и не подтвержден, круг быстро моргает серым и красным (как и класс алармов S7_Alarm).![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/96f9fe91e6a8e8f0f1006769cda37595.png)
После подтверждения аварии он перестает моргать, после ухода аварии (соответствующей переменной дали значение «ложь») становится белым, а в нижней части экрана аларм пропадает из списка.![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/0093ab883f3c41def8b19ff08854f152.png)
Взглянем на полученный скрипт![Клик для увеличения](https://linkme.ufanet.ru/box/200x100/ebb2d7006f30f9eaa914e8a9f461d15e.png)
В данном случае происходит подписка на актуальный цвет аларма из соответствующего конфига, который назначается непосредственно в качестве фонового цвета нашего графического объекта.
===========
Источник:
habr.com
===========
Похожие новости:
- [Промышленное программирование, Программирование микроконтроллеров, Разработка под Arduino, Производство и разработка электроники] Кому в микроконтроллере жить хорошо?
- [Промышленное программирование, SCADA] Самоучитель по WinCC OA. Часть 4. Повторное использование объектов. $-параметры
- [Промышленное программирование, SCADA] Самоучитель по WinCC OA. Часть 3. Глобальные скрипты (control scripts)
- [Промышленное программирование, Разработка робототехники, Программирование микроконтроллеров, Разработка под Arduino, Производство и разработка электроники] Портирование ModBus Slave RTU/ASCII на IAR AVR v3
- [Программирование, C#, ООП, Промышленное программирование] Методы без аргументов — зло для неизменяемых объектов, и вот как его полечить
- [Промышленное программирование] Модели и алгоритмы построения цифровой платформы CNCIOT для сбора данных с оборудования
- [Программирование, Java, Apache, Промышленное программирование] Spring Boot app with Apache Kafka in Docker container (перевод)
- [.NET, Промышленное программирование, Разработка робототехники, Управление проектами, Робототехника] Роботы. Часть два. Крылатые качели
- [Промышленное программирование, Разработка робототехники, Управление проектами] Роботы. Часть раз. Вводная
- [C#, Промышленное программирование] Как я при помощи Google сделал OPC2WEB клиент
Теги для поиска: #_promyshlennoe_programmirovanie (Промышленное программирование), #_scada, #_wincc, #_siemens, #_simatic, #_scada, #_promyshlennoe_programmirovanie (
Промышленное программирование
), #_scada
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 04-Июл 14:37
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 4 месяца |
|
(* Начиная с этой части я перешел на версию WinCC OA 3.17. Никаких отличий в масштабах базового курса не будет. Изменятся лишь надписи на скриншотах.*) ![]() При создании типа точки данных Flap мы уже предусмотрели битовый DPE для аварии «Момент» (Flap→Alarms→Torque). Однако в настоящий момент для всех трех точек данных (Flap1, Flap2, Flap3) это всего лишь элемент, переменная. Для того, чтобы изменение этой переменной фиксировалось в подсистеме сообщений, необходимо повесить на этот DPE соответствующий конфиг. Для этого открываем модуль para и ищем наши точки данных. ![]() Добавляем к DPE Torque точки данных Flap1 конфиг «Alert Handling» ![]() Открываем настройки добавленного конфига. Обратите внимание, что внешний вид настройки Alert Handling зависит от типа переменной, к которой относится сам аларм. В настоящий момент мы работаем с типом данных bool, внешний вид окна следующий. ![]() Good range касается значения самое переменной — какое из значений является «плохим» (т.е. при каком значении считаем, что аларм сработал), а какое — «хорошим» (аларма нет). Так же задаем текст при появлении аларма и его исчезновению. Зададим этот текст, как «came» (пришло) и «went» (ушло). За «хорошее» значение будем считать битовое значение «ложь», т.е. аларма нет. ![]() Класс аларма — весьма важный параметр. Он определяет многие аспекты отображения сигнализации: какой будет цвет, задействовано ли мерцание, будет ли звуковое уведомление, требуется ли квитирование и т.д. Выбираем класс S7_Alarm и ставим галочку рядом со словом «Active». После выставления аларма активным все настройки становятся недоступны. Обратите внимание, что настройки активного аларма недоступны для редактирования не только на визуальной форме, но и средствами скриптов (а скриптами в WinCC OA можно много чего сделать, включая и динамическую работу с алармами). Настройки допускается менять только для неактивных алармов. ![]() Перейдем в модуле para на конфиг original, посмотрим текущее значение и поменяем его на «истину». ![]() Текущее значение переменной FALSE, аларм неактивен ![]() Текущее значение переменной TRUE, аларм активен, текст мигает очень быстроВернем значение переменной в FALSE. Текст аларма остается «came», продолжает мигать, изменилась лишь интенсивность его мигания. ![]() Данный класс алармов подразумевает необходимость квитирования. Для подтверждения аларма в этом окне необходимо нажать кнопку Acknowledge, после чего все вернется в «нормальное» состояние. ![]() Возникает вопрос — где можно ознакомиться с настройками каждого класса алармов? Как можно модифицировать существующий класс алармов или задать свой класс? Это реализуется через точки данных (вообще любые настройки системы живут либо в точках данных, либо в конфиг-файлах). Ну, а если что-то доступно через точки данных, то это что-то вполне возможно модифицировать через программный код. Правда, сейчас мы этого делать не будем. Лучше посмотрим модуль para и поищем нужные точки данных. ![]() На первый взгляд тут есть много точек данных, но где же DP, ответственные за классы алармов? Выставляем галочку Internal datapoints (внутренние точки данных) и видим, что полку точек данных заметно прибыло. ![]() Ищем точки данных типа _AlertClass, тут и содержатся все классы алармов, которые можно изменить (на свой страх и риск, разумеется), либо создать свой новый класс. Поскольку мы выбрали для нашего единственного аларма класс S7Alarm, смотрим его настройки, развернув соответствующую точку данных. ![]() Тут и задается приоритет класса, сохранение алармов, необходимость квитирования, надо ли квитировать «прошлые» алармы, если тревога возникала неоднократно до действий оператора, цвет и шрифт текст алармов и т.д.Только что мы смотрели, как работают алармы в модуле para. Это очень интересно и познавательно для разработчика, однако не очень удобно. Ознакомимся еще с одним способом просмотреть список событий. Для этого в меню gedi найдем и нажмем кнопку System Management ![]() Перейдем в Diagnostics ![]() Откроем Alarmscreen ![]() И в появившемся окне нажмем на зеленый треугольник внизу панели ![]() Откроем модуль para, найдем Flap1.Alarms.Torque и поиграем с его значениями ![]() В окне Alarmscreen можно сквитировать алармы. По умолчанию данное окно показывает только текущие тревоги. Если активных алармов нет, а все старые уже сквитированы, то список пуст. Для того, чтобы изменить представление, необходимо нажать кнопку с отверткой и гаечным ключом внизу панели. В этих свойствах очень много закладок и очень много настроек. И все они касаются одних только алармов. ![]() Если задать Time range в Open и выбрать Historical Data, то мы сможем увидеть историю алармов. ![]() В связи с тем, что тема алармов весьма обширная, а это всего лишь первый взгляд, не стоит удивляться некоторым непонятным вещам. Например, мне самому непонятно, почему в этой таблице Alarm text у нас везде состоит из одного слова «came» (нуууу… когда-нибудь, наверное, может быть, если фаза луны сойдется, то разберусь).Alarmscreen тоже очень интересен. Смотреть на нем алармы куда лучше, чем в модуле para. Однако, мы делаем конечное приложение для конечного пользователя, т.е. для оператора. Удобно ли будет оператору каждый раз открывать через менюшки отдельное окно аварий? Лично я в этом сильно сомневаюсь. Давайте лучше займемся интеграцией окна сообщений в наше приложение пользователя.Перейдем обратно в редактор gedi и откроем созданную ранее панель Flaps. Далее посмотрим внимательно на левую часть редактора gedi. Кроме нашего проекта (у меня он называется Workshop) есть еще один проект с названием 3.17 (в самом начале этой главы я уже признался, что перешел на новую версию, а так был бы проект с названием «3.16»), который мы точно сами не создавали. Его можно развернуть и поизучать, там много всего интересного — скриптов, библиотек, панелей и т.д. Пытливые умы потратят немало времени на ознакомление. ![]() По сути, это и есть «ядро» системы WinCC OA. Этот проект содержит все или почти все, относящееся к самой платформе — gedi, para, панель Project Administrator, панель консоли, вся логика. И, вуаля, всем этим можно пользоваться в своих приложениях. Вот, например, я открыл в редакторе gedi панель para. Его можно изменить. И использовать в своих целях измененную копию. Про модификацию стандартных (или системных?) компонент WinCC OA поговорим чуть попозже в этой же части. А сейчас наша задача — разместить окно с алармами в окне пользовательского приложения. ![]() Редактировать модуль para пока не будем (хоть и очень хочется)Для этого в дереве «системного» проекта 3.17 ищем панель по следующему пути: 3.17 (версия Вашей копии WinCC OA) → Panels → vision → aes → AESRow.pnl. Перетаскиваем ее на свободное место открытой панели Flaps. Система попросит задать значение $-параметра $SCREENTYPE. Цинично проигнорируем эту просьбу, нажав кнопку Cancel. ![]() Внизу у нас появился небольшой элемент отображения ![]() Проверим, работает ли оно вообще, для чего зададим в модуле para значение «истина» для аварийного сигнала. ![]() Как видно, работает ![]() Скрыл модуль para, аларм есть и активно мигает (чего на видно на скриншоте)Теперь поговорим немного о модификации стандартных компонент WinCC OA. Например, сейчас я растянул в высоту окно отображения алармов. В нем добавилось строк, однако кнопки и цифры в правой части растянулись в высоту, что плохо влияет на эстетику. Упростим себе задачу и просто уберем эти кнопки. ![]() Для этого в редакторе gedi кликнем правой кнопкой на AESRow и выберем Open panel reference ![]() Откроется «оригинальная» панель ![]() Удалим «некрасивые» кнопки и цифры ![]() Нажмем Save и увидим следующее окно ![]() Ответим утвердительно, после чего редактируемая нами панель сохранится в виде копии в структуре нашего проекта «Workshop», а не по «системному» пути. В нашем проекте мы будем работать с этой копией. Теоритечески можно сохранять по системному пути (например, путем подмены файлов), то эти изменения становятся общими для всех проектов WinCC OA, что нежелательно. Особенно негативно сохранение по системному пути, а не в виде локальной копии, может сказаться после установки патчей. Патчи могут корректировать, в том числе, и системный проект, и даже ту панель, которую вы изменили. Вероятность этого всегда отлична от нуля. Соответственно, устанавливая патч, вы рискуете утратить свои изменения, если сохранили их в системный проект. ![]() Есть еще один нюанс, связанный с модификацией системных панелей и патчами. Если вы работаете с локальной сохраненной копией проекта, то натравленный на систему патч исправит только «системный» проект, но не вашу локальную копию панели.В общем, модификация ядра — это ответственное занятие, требующее внимательности. Не забывайте читать readme патчей, затронуты ли там модифицированные вами панели. У вас в руках очень мощный инструмент, но пользоваться им надо уметь.После внесения изменений в панель AESRow нашу панель Flaps необходимо переоткрыть, чтобы изменения «вложенной» панели вступили в силу.Последний пример в этой части — визуализация пиктограмм технологического оборудования, находящегося в аварином состоянии, тем же способом (цвет, мерцание и т.д.), который задан соответствующему классу аварий. Для этой демонстрации разместим на панели Flaps окружность (Circle). ![]() Зададим динамизацию события Initialize через визард, как уже делали ранее для задвижки. Выбираем в визарде Change color ![]() Выбираем Background color и Alert Handling, жмем Next. Выбор Alert Handling позволит системе подтянуть значение цвета от аларма. ![]() Выбираем Datapoint element ![]() Жмем Next, а в следующем окне — Finish. Запускаем на проверку и смотрим, что получилось. В настоящий момент аларм у меня активен и не подтвержден, круг быстро моргает серым и красным (как и класс алармов S7_Alarm). ![]() После подтверждения аварии он перестает моргать, после ухода аварии (соответствующей переменной дали значение «ложь») становится белым, а в нижней части экрана аларм пропадает из списка. ![]() Взглянем на полученный скрипт ![]() В данном случае происходит подписка на актуальный цвет аларма из соответствующего конфига, который назначается непосредственно в качестве фонового цвета нашего графического объекта. =========== Источник: habr.com =========== Похожие новости:
Промышленное программирование ), #_scada |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 04-Июл 14:37
Часовой пояс: UTC + 5