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

WinCC 7x. VB скрипт в faceplate

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

Ответить

Автор темы
sysanin6409
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 21 авг 2024, 09:16
Имя: Олег
Страна: Россия
город/регион: Воронеж

WinCC 7x. VB скрипт в faceplate

Сообщение sysanin6409 »

Нужна помощь!!!!!

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, вывожу на экран = не работает.

Причина?????
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

WinCC 7x. VB скрипт в faceplate

Сообщение makesstr »

Все написанное внутри фейсплейта не видит значения тегов. Максимум значения свойств фейсплейта, к которым привязаны теги.
Зачем вам вообще скрипты? Привяжите BorderColor объекта к свойству fpt_BordColor и все. Если нужен именно bool то FlashBorderColor, свет и на ON, и на OFF - зеленый, а простой StaticBorderColor - красный. Будет свойство=1 -> будет мигать с зеленого на зеленый, будет=0 -> будет красным.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
sysanin6409
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 21 авг 2024, 09:16
Имя: Олег
Страна: Россия
город/регион: Воронеж

WinCC 7x. VB скрипт в faceplate

Сообщение sysanin6409 »

Проект выполнен на древней панели. Сейчас пытаюсь переделать. Экранов и примитивов до .... и больше. Хотелось бы минимизировать затраты времени и т.д.
т.е. если я правильно понял, то внутренние скрипты faceplate не видит?
За ответ огромное благодарю.

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

WinCC 7x. VB скрипт в faceplate

Сообщение makesstr »

Фейсплейт не видит теги любые, на любом языке. Фейсплейт видит только значения своих свойств.
Например есть тег Tag1=5.5

Если вы внутри фейсплейта создадите кнопку и повесите на неё скрипт на VBS
[+]
msgbox(HMIRuntime.Tags("Tag1").Read)) - то ничего не сработает, как будто такого тега нет, а он есть.
Если на Си
[+]
printf("Tag1=%s",GetTagFloat("Tag1")); - то ничего не сработает, как будто такого тега нет, а он есть.
Хотя если эти же скрипты повесить на кнопку не в составе фейсплейта - то все будет работать.
Фейсплейт "не видит" значения тегов, как приватная функция. Он видит только значения своих свойств.

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

Отправлено спустя 8 минут 55 секунд:
Но фейсплейт видит "свои" теги. Наверное вы их и пытались использовать? для этого внутри фейсплейта надо создать тег fpt_BorderColor, а свойство фейсплейта fpt_BorderColor соотнести с тегом fpt_BorderColor.
Ну опять же, называть теги и свойства одинаково - плохая идея. И вообще проще соотносить свойства фейсплейта со свойствами объекта, чем свойства фейсплейта со свойствами тега, который в свою очередь со свойствами объекта, тем более скриптом.
WinCC 7.4 SP1 Upd15, Step5.6

Автор темы
sysanin6409
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 21 авг 2024, 09:16
Имя: Олег
Страна: Россия
город/регион: Воронеж

WinCC 7x. VB скрипт в faceplate

Сообщение sysanin6409 »

Спасибо за развёрнутый ответ.
Путь сложный, но интересный(к сожалению путь тупиковый). Это как Archestr символы в AVEVA. Там удобнее с ними работать.
Если не в тягость: Насчёт "способов попроще" просвятите ?

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

WinCC 7x. VB скрипт в faceplate

Сообщение makesstr »

Я же выше рассказал. Связываете BorderColor объекта и свойство фейсплейта. :ges_hmm:
WinCC 7.4 SP1 Upd15, Step5.6
Ответить

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