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

PCS7 вызвать faceplate по щелчку

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

Закрыто

Автор темы
IvanKondratyev
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 01 июн 2022, 15:51
Имя: Иван
Страна: Россия
город/регион: Kazan
Благодарил (а): 3 раза

PCS7 вызвать faceplate по щелчку

Сообщение IvanKondratyev »

Всем добрый день!
Подскажите, можно ли в PCS7 (WinCC v7.2 upd7) вызвать faceplate регулятора при нажатии на объект, созданный пользователем (текст)?
Пытался сделать через с-скрипт с помощью функции PCS7_OpenGroupDisplay_V6 (как разработчик проекта делал на самих регуляторах), но при клике ничего не происходит. В apdiag посмотрел, вроде аргументы функции правильные присваивает. Может есть иной способ реализации. Документации пока не нашел по вопросу.

stesl
эксперт
эксперт
Сообщения: 1035
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 100 раз
Поблагодарили: 141 раз

PCS7 вызвать faceplate по щелчку

Сообщение stesl »

IvanKondratyev, её работал с пцс, в винсиси я бы сделал так: поверх обьекта поставил какую то фигуру невидимую и по клику на неё сделал событие.
Это если у самого объекта нет вкладки events
Аватара пользователя

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

PCS7 вызвать faceplate по щелчку

Сообщение megavolt86 »

IvanKondratyev писал(а): 31 авг 2023, 15:51 вызвать faceplate регулятора при нажатии на объект, созданный пользователем (текст)
в свойствах элемента, во вкладке events нужно два действия, присвоить по клику элементу picture_window требуемый вам экран (регулятор), второе действие сделать этот picture_window видимым.
Это самое простое…но можно и уйти от классического способа winCC, а сделать по PCS-ному — нарисовать свою иконку в AS, синхронизировать AS и OS, тогда эта иконка появится сама на экране в выбранной иерархии :crazy0to:
:ext_secret:

Автор темы
IvanKondratyev
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 01 июн 2022, 15:51
Имя: Иван
Страна: Россия
город/регион: Kazan
Благодарил (а): 3 раза

PCS7 вызвать faceplate по щелчку

Сообщение IvanKondratyev »

megavolt86 писал(а): 01 сен 2023, 05:12
IvanKondratyev писал(а): 31 авг 2023, 15:51 вызвать faceplate регулятора при нажатии на объект, созданный пользователем (текст)
в свойствах элемента, во вкладке events нужно два действия, присвоить по клику элементу picture_window требуемый вам экран (регулятор), второе действие сделать этот picture_window видимым.
Это самое простое…но можно и уйти от классического способа winCC, а сделать по PCS-ному — нарисовать свою иконку в AS, синхронизировать AS и OS, тогда эта иконка появится сама на экране в выбранной иерархии :crazy0to:
Не могли бы, пожалуйста,немного подробнее расписать, где именно присваивать picture_window?
Я тоже немного раскрою вопрос. У меня есть существующий PID-регулятор в проекте,окошко faceplate которого может быть вызвано по клику на объект регулятора (customized object) с технологического экрана(мнемосхемы). Клик обрабатывается с-скриптом и вызывает окошко с помощью функции PCS7_OpenGroupDisplay_V6, которая получает параметры из customized object. Т.е для всех регуляторов вызываемый экран faceplate одинаковый, меняются только значения в нем (переменные присваиваются из свойств customized object).
Я создал новый экран(мнемосхему), на которую добавил текст (можно кнопку, не принципиально), при нажатии на который также должен открыться faceplate необходимого регулятора. Просто скопировать существующий объект регулятора не подходит, поскольку на новой мнемосхеме табличное представление информации, где должно быть только название регулятора. Свойства существующего объекта и обработчик копировал в новый объект, но почему-то окно не открывает, может что-то упустил.
Пробовал копировать существующий customized object регулятора и удалять лишние элементы отображения, оставляя только название, в таком случае все работает, по клику открывается нужный faceplate, но есть опасения, что это может повлиять на объекты регуляторов на существующих схемах, да и пцс ругнулся при удалении лишних свойств, поэтому хочется создать объект с нуля, без лишних параметров.

Автор темы
IvanKondratyev
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 01 июн 2022, 15:51
Имя: Иван
Страна: Россия
город/регион: Kazan
Благодарил (а): 3 раза

PCS7 вызвать faceplate по щелчку

Сообщение IvanKondratyev »

Проблему решил. Faceplate регулятора можно открывать только по клику на customized object (судя по всему), так как должны присутствовать свойства объекта tagname, servername, tag, type, коих нет у обычных типов объектов.
Создал собственные customized object с нужными свойствами (свойства присваиваются из Output_value объектов IO_field внутри кастомизированного объекта, которые прописал вручную), в ивенты добавил с-скрипт по клику с функцией PCS7_OpenGroupDisplay_V6, все работает. Также можно скопировать существующие объекты и удалить у них лишние свойства и элементы отображения. Документации по вопросу не нашел, решил методом тыка, может есть более правильное решение.
Закрыто

Вернуться в «Simatic PCS 7»