Нужна помощь!!!!!
Button: Properties\Colors\Border Color.
Для данного свойства написан код(активируется по тегу fpt_BorderColor=BOOL):
Function BorderColor_Trigger(Byval Item)
Dim objTag
Dim vntValue
Set objTag = HMIRuntime.Tags("fpt_BorderColor")
vntValue=objTag.Read ' Чтение из кеша
Dim obj
Set obj = ScreenItems("Btt")
If (vntValue = 1) Then
obj.BorderColor = RGB(0,255,0)
Else
obj.BorderColor = RGB(255,0,0)
End If
End Function
Работает если кнопка размещена на экране.
Помещаю данный код внутрь Faceplate, вывожу на экран = не работает.
Причина?????
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
WinCC 7x. VB скрипт в faceplate
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 21 авг 2024, 09:16
- Имя: Олег
- Страна: Россия
- город/регион: Воронеж
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
WinCC 7x. VB скрипт в faceplate
Все написанное внутри фейсплейта не видит значения тегов. Максимум значения свойств фейсплейта, к которым привязаны теги.
Зачем вам вообще скрипты? Привяжите BorderColor объекта к свойству fpt_BordColor и все. Если нужен именно bool то FlashBorderColor, свет и на ON, и на OFF - зеленый, а простой StaticBorderColor - красный. Будет свойство=1 будет мигать с зеленого на зеленый, будет=0 будет красным.
Зачем вам вообще скрипты? Привяжите BorderColor объекта к свойству fpt_BordColor и все. Если нужен именно bool то FlashBorderColor, свет и на ON, и на OFF - зеленый, а простой StaticBorderColor - красный. Будет свойство=1 будет мигать с зеленого на зеленый, будет=0 будет красным.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 21 авг 2024, 09:16
- Имя: Олег
- Страна: Россия
- город/регион: Воронеж
WinCC 7x. VB скрипт в faceplate
Проект выполнен на древней панели. Сейчас пытаюсь переделать. Экранов и примитивов до .... и больше. Хотелось бы минимизировать затраты времени и т.д.
т.е. если я правильно понял, то внутренние скрипты faceplate не видит?
За ответ огромное благодарю.
т.е. если я правильно понял, то внутренние скрипты faceplate не видит?
За ответ огромное благодарю.
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
WinCC 7x. VB скрипт в faceplate
Фейсплейт не видит теги любые, на любом языке. Фейсплейт видит только значения своих свойств.
Например есть тег Tag1=5.5
Если вы внутри фейсплейта создадите кнопку и повесите на неё скрипт на VBS Если на Си Хотя если эти же скрипты повесить на кнопку не в составе фейсплейта - то все будет работать.
Фейсплейт "не видит" значения тегов, как приватная функция. Он видит только значения своих свойств.
Если не разбираетесь - то и не надо, это самый сложный путь и тормозной из возможных для создания фейсплейтов. Есть способы проще.
Отправлено спустя 8 минут 55 секунд:
Но фейсплейт видит "свои" теги. Наверное вы их и пытались использовать? для этого внутри фейсплейта надо создать тег fpt_BorderColor, а свойство фейсплейта fpt_BorderColor соотнести с тегом fpt_BorderColor.
Ну опять же, называть теги и свойства одинаково - плохая идея. И вообще проще соотносить свойства фейсплейта со свойствами объекта, чем свойства фейсплейта со свойствами тега, который в свою очередь со свойствами объекта, тем более скриптом.
Например есть тег Tag1=5.5
Если вы внутри фейсплейта создадите кнопку и повесите на неё скрипт на VBS Если на Си Хотя если эти же скрипты повесить на кнопку не в составе фейсплейта - то все будет работать.
Фейсплейт "не видит" значения тегов, как приватная функция. Он видит только значения своих свойств.
Если не разбираетесь - то и не надо, это самый сложный путь и тормозной из возможных для создания фейсплейтов. Есть способы проще.
Отправлено спустя 8 минут 55 секунд:
Но фейсплейт видит "свои" теги. Наверное вы их и пытались использовать? для этого внутри фейсплейта надо создать тег fpt_BorderColor, а свойство фейсплейта fpt_BorderColor соотнести с тегом fpt_BorderColor.
Ну опять же, называть теги и свойства одинаково - плохая идея. И вообще проще соотносить свойства фейсплейта со свойствами объекта, чем свойства фейсплейта со свойствами тега, который в свою очередь со свойствами объекта, тем более скриптом.
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 21 авг 2024, 09:16
- Имя: Олег
- Страна: Россия
- город/регион: Воронеж
WinCC 7x. VB скрипт в faceplate
Спасибо за развёрнутый ответ.
Путь сложный, но интересный(к сожалению путь тупиковый). Это как Archestr символы в AVEVA. Там удобнее с ними работать.
Если не в тягость: Насчёт "способов попроще" просвятите ?
Путь сложный, но интересный(к сожалению путь тупиковый). Это как Archestr символы в AVEVA. Там удобнее с ними работать.
Если не в тягость: Насчёт "способов попроще" просвятите ?
-
- освоился
- Сообщения: 221
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
WinCC 7x. VB скрипт в faceplate
Я же выше рассказал. Связываете BorderColor объекта и свойство фейсплейта.
WinCC 7.4 SP1 Upd15, Step5.6