1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Модератор: Глоб.модераторы

Ответить

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

Всем привет !

Имеется, к примеру, 50 аналоговых датчиков.
Каждый из них в программе PLC мониторится и управляется 6-ю параметрами, включая такие как «L» «LL» «H» «HH».
Необходимо мониторить и управлять всеми этими 50-ю датчиками от WinCC.
Конфигурацию нужно выполнить с мин. затратами ресурсов.

Например, есть вариант с использованием фейсплейтов.

Cоздаю «тэговую» структуру для параметров датчиков таким образом, что тэги имеют в своём полном названии префикс (то, что до точки), который совпадает с наименованием датчика. Т.е., например, PT01.Value, TE06.LL
Создаю «Faceplate Type» с именем Sensor.FPT , вставляю туда нужные «фейплейтные тэги».
Затем создаю новую pdl-картинку, например Sensor_FP.pdl, в которую вставляю «Faceplate Instance» на базе «Faceplate Type» с именем Sensor.FPT .
На экране «Sensors SetUp» настроек датчиков, вставляю объект «Picture Window» и в его свойствах, в атрибуте Tag Prefix указываю первую часть имени к/л датчика, например PT01.
Сохраняю, запускаю RT рантайм, всё работает.

НО, это я сделал только для одного датчика, а их у меня ещё 49 шт.
И я хочу все «Picture Window» разместить на одном и том же экране «Sensors SetUp», причём в одном и том же месте этого экрана.

И что дальше ?
Аналогично создавать ещё 49 объектов «Picture Window», укладывая их друг на друга ?
Но WinCC CS позволяет только 32 слоя, и где тогда разместить ещё 18 объектов «Picture Window» ?
И потом как вызывать эти «Picture Window» и как управлять их видимостью ?

Во «флэксибле» подобная задача решалась довольно просто.
Там я на основном экране создавал поля-контейнеры "I\O field" для нужных тэгов, а реальные тэги вставлялись в них с помощью выбора нужного датчика из «Drop Down List», в который можно было запихнуть сколько угодно датчиков.

Есть также вариант без «Faceplate» - тов.

Также, как и во «флэксибле», на экране «Sensors SetUp» создать поля-контейнеры "I\O field" для нужных тэгов, а реальные тэги вставлять в них с помощью скритов (например на С), которые будут вызываться, например, по ЛКМ по текстовым полям наименований этих 50-ти датчиков.


Заранее благодарен.

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение makesstr »

Выберите один вариант, либо через pdl с тег префиксом, либо фейсплейтами без тег префиксов, оба варианта самодостаточны. Но фейсплейты будут работать быстрее. На счет оставшихся 49 фейсплейтов - сделали один, дальше копируете и делаете Replace тегов с PT01 на TE06 и оставшиеся аналогично.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

Т.е. всё-таки нужно создавать 50 "Picture Windows" с встроенными в них "Faceplate Instance" и складывать их друг на друга, если я выберу такой вариант ?
Т.е. если иметь дело с "фейсплейтами" и с "Tag Prefix"- то тока так : 50 "Picture Windows" ?
Собственно это меня и смущало :ges_hmm:

Даже если я сделаю на скриптах, то насчёт скорости - не критично.
Уставки меняются не так часто.
Последний раз редактировалось alex3110 09 сен 2023, 16:44, всего редактировалось 2 раза.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение megavolt86 »

Непонятно, зачем picture window плодить?
Вообще у вас неоптимальный подход к проектированию scada...
1. Создали структурный тэг, например:
Val, LL, L, H, HH, L-lim, M-lim, Alm, Stting, с соответсвующим смещением, как плк,
а потом создаете уже внешние тэги с типом этого структурного тэга.
2. При создании фейсплейта создаете только один тэг с типом структурного тэга из п.1 и привязываете все графические элементы только к переменным из структурного тэга.
3. При вызове на экран этого фейсплейта делаете только одну привязку к внешнему структурному тэгу.

Если вам принципильно чтоб фейсплейта не было видно, спрячте его за видимые пределы экрана и по клику на какую-нибудь иконку координаты фейсплейта меняются на нужные вам...по клику закрыть меняете координаты на исходные.
Этот метод быстр но нагружает графику...ресурсы все равно тратятся на отрисовку, потому экран может тормозить.

Еще как вариант создать отдельный экран со всеми фейсплейтами и его вызывать в picture window, в нем менять координаты уже.

Третий вариант лично у меня не получился - менять привязки в фейсплейте скиптом по клику по иконке...несколько дней провозился, плюнул и сделал кучу экранов - пошел по простому пути 😆
:ext_secret:

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

megavolt86 писал(а): 09 сен 2023, 16:41 Непонятно, зачем picture window плодить?
Вообще у вас неоптимальный подход к проектированию scada...
Так вот и не хочу плодить эти 50 "picture window", а хочу разобраться, как бы это сделать попроще.

Как раз желательно, чтобы фейсплейт был всегда виден, и была бы возможность как-то по нажатию на поле датчика отображать в этом фейсплейте тэги, которые относятся только к этому датчику.
Как я понял, вроде как должны помочь п.2 и п.3. Но это нужно ещё разобраьтся.
п.1 я уже сделал.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение megavolt86 »

alex3110 писал(а): 08 сен 2023, 20:36 Как раз желательно, чтобы фейсплейт был всегда виден, и была бы возможность как-то по нажатию на поле датчика отображать в этом фейсплейте тэги, которые относятся только к этому датчику.
А как часто нужно смотреть на значение уставок?
Зачем их видеть постоянно?
Я рисовал фейсплейт по примеру pcs...имя параметра, значение, единица измерения и 5 индикаторов о том что сработала уставка или обрыв.
А для более конкретного просмотра и изменения создал отдельный экран с изображением плк с модулями в/в. Клик по изображению модуля вызывает picture window с настройками каналов.
После выходных сделаю фотки как это выглядит
:ext_secret:

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

Хотелось бы, чтобы работало так.

Ранее я создал экран «Sensors SetUp» (pdl-картинка) настроек датчиков, в котором нужно мониторить и управлять 50-тью аналоговыми датчиками.
Экран «Sensors SetUp» встроен в "Picture Window", которое вызывается по соответствующей кнопке.
Делать это нужно крайне редко, например, после ТО или после просадок напряжения питания.
Все аналоговые датчики имеют одинаковый набор параметров, среди которых десятичные "WORD"-тэги «L» «LL» «H» «HH» , битовый "статусный" тэг "Sensor is ON / Sensor is OFF" и кнопка включения/отключения датчика "Turn On Sensor / Turn OFF Sensor".
Я создал структурные WinCC -тэги для каждого из 50 датчиков.

На экране «Sensors SetUp» будут 50 "Text Field" с именами всех датчиков и некий графический объект ГО, в виде таблицы, в котором должны быть 12 ячеек. 6 - для неизменяемых текстовых полей и 6 - для динамизируемых тэгов «L», «LL», «H» , «HH» , "Sensor is ON / Sensor is ON", "Turn On Sensor / Turn OFF Sensor".

По нажатию "Text Field" с именем к/л из 50 датчиков, внутри ГО - таблицы должны отобразиться тэги, которые относятся только к этому датчику.
Таким образом, нажимая по-очереди каждое "Text Field", производится настройка всех 50 датчиков.

Будет ли эта ГО - таблица видима внутри экрана «Sensors SetUp» сразу после его вызова или отображаться только после нажатия к/л "Text Field" с именем соответствующего датчика - не принципиально. Лишь бы работало.

Если в моём случае применение "фейсплэйтов" будет лучшим вариантом, то пусть это будут они.

Пока я понял и практически это реализовал в варианте с "Faceplate Instances" внутри "Picture Window", о чём я написал выше , т.е.

"Cоздаю «тэговую» структуру для параметров датчиков таким образом, что тэ-ги имеют в своём полном названии префикс (то, что до точки), который совпадает с наименованием датчика. Т.е., например, PT01.Value, TE06.LL
Создаю «Faceplate Type» с именем Sensor.FPT , вставляю туда нужные «фейплейтные тэги».
Затем создаю новую pdl-картинку, например Sensor_FP.pdl, в которую вставляю «Faceplate Instance» на базе «Faceplate Type» с именем Sensor.FPT .
На экране «Sensors SetUp» настроек датчиков, вставляю объект «Picture Window» и в его свойствах, в атрибуте Tag Prefix указываю первую часть имени к/л датчика, на-пример PT01.
Сохраняю, запускаю RT рантайм, всё работает."


Но чтобы не создавать ещё 49 подобных "Picture Window", нужно как-то динамизировать сам "Tag Prefix", чтобы при нажатии "Text Field" с именем к/л датчика - в этот "Tag Prefix", какой-нибудь скрипт, автоматически вставлял имя этого датчика.

Возможно ли такое ?
Если да, то какой скрипт нужен для этого ?


Или пусть "Faceplate Instances", в виде этой ГО - таблицы, будет не внутри вызываемого "Picture Window" а будет постоянно находиться в одном и том же месте экрана «Sensors SetUp».
Можно ли в этом случае также как-то динамизировать какой-нибудь подобный "Tag Prefix" ?

Хотя, если я правильно понял, "Tag Prefix" фигурирует только внутри "Picture Window" ?


Вот и не понятно пока, что делать дальше? :ges_help:

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

Кто-нибудь скачивал (или может скачать) WinCC-проекты
Registrierung notwendig Download - WinCC V7 Project (7,8 MB)
Registrierung notwendig Download - WinCC V6 Project (2,8 MB)

отсюда ?

https://support.industry.siemens.com/cs ... 0&lc=en-DE

Их надо скачивать через VPN, так как сименс рубит нам доступ.
Пока не пробовал настраивать эти "випиэны". А браузеры типа с "випиэнами" (Тор, например) тоже не могут получить доступ.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение megavolt86 »

alex3110 писал(а): 10 сен 2023, 08:08 Можно ли в этом случае также как-то динамизировать какой-нибудь подобный "Tag Prefix" ?
Можно динамизировать, но както нужно объявить привязки к фейсплейтам на страничке, не знаю сработает ли указание "."
Как вариант не использовать фейсплейты вообще, а создать новую страницу и все графические элементы привязать так ".value", ".LL" и тд...
Тогда в picture window привязываете вашу новую страницу с настройками, а по клику по имени параметра в основной странице создаете действие - изменить свойство tag prefix на константу, допустим pt1. Это решение более оптимально и по ресурсам и по скорости отрисовки и по скорости разработки.
Изначально просто не обрисовали что именно вы хотите 😂

Отправлено спустя 5 минут 47 секунд:
megavolt86 писал(а): 10 сен 2023, 19:48 Кто-нибудь скачивал (или может скачать) WinCC-проекты
Держите)
https://disk.yandex.ru/d/ahE37d80H1JyKQ
Месяц полежут, потом удалю, ато облако быстро забивается...
:ext_secret:

makesstr
освоился
освоился
Сообщения: 221
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение makesstr »

Как сделано у меня - на пдлку добавляете фейсплейты именем датчика (PT01). Забиваете его свойства тегами, на Events вешаете вызов модуля из глобальных скриптов (в моем случае при нажатии правой кнопкой мыши). Копипастите этот фейсплейт, переименовываете в TE06, теги FindandReplace заменяете PT01->TE06. И так далее для всех остальных фейсплейтов. В глобальные скрипты добавляете этот модуль.
При нажатии на фейсплейт на определенное окно назначается тег префикс и оно становится видимым.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
alex3110
освоился
освоился
Сообщения: 289
Зарегистрирован: 02 апр 2015, 18:16
Имя: Симонов Игорь Валерьевич
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение alex3110 »

Ну вот, заморочили мне голову всякими там "фэйсплейтами" во всяких разных других местах :crazy0to: :roll: :-)
megavolt86 прав, можно и без них обойтись - см. "примерные" WinCC проекты от Сименса.
Там показано как изменять Tag Prefix при вызове одной и той же pdl-картинки в одном и том же "Picture Window" 2-мя способами: через "Direct Connection" и с помощью "C-action".
Я всё время чувствовал - истина где-то рядом :ges_hmm:
Мою "понтолыку" изрядно побили :crazy0to: :-), а оказалось, что в "Picture Window" не обязательно вставлять pdl-картинку с "фэйсплейтом", а можно и без него. Т.е. можно вставить только pdl-картинку с нужными тэгами. Аттрибут "Tag Prefix" будет работать и в этом случае. Только нужно уменьшить размер этой pdl-картинки, или в настройках "Picture Window", где она будет встраиваться, поставить параметр "Adapt size" (хотя тут нужно уточнить, "что" подо "что" будет адаптироваться, то ли pdl-картинка под "Picture Window", то ли наоборот)

:thankyou:
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Как оптимально использовать «Faceplate» внутри «Picture Window» ? Другие варианты.

Сообщение megavolt86 »

alex3110 писал(а): 11 сен 2023, 09:23 заморочили мне голову всякими там "фэйсплейтами"
каждый инструмент хорош в определенных местах, я в фейсплейт обьединяю сложные конструкции, но с общими характеристиками, а то что вы хотите не относится к фейсплейту (в понятиях wincc).
В других scada фейсплейт это всплывающее окно со всякого рода настройками датчиков ИМ и тп...
:ext_secret:
Ответить

Вернуться в «WinCC»