Добрый день!
Нужна помощь в такой задаче.
В фейсплейте .fpt, в скрипте VBS реализован код изменения цвета графического элемента по тегу, типа Байт.
В ПЛК этот тег собирается из битов, упаковывается в байт и попадает в WinCC. Мне нужно изменять цвет по
конкретному биту.
В принципе, если присвоить входную переменную "точка нужный бит", то все работает. Но проект уже реализован
так, что входная переменная, к фейсплейту, назначена полностью как байт. И тогда нужно по всем экранам
ручками делать перепривязки.
Вот я и подумал, может лучше это сделать в коде самого фейсплейта. Но у меня не получается выделить один бит
из байта в VBS......
Прошу помощи в решении моей задачи.
Отправлено спустя 16 минут 33 секунды:
Да, стоит ПК с обычной (не портальной) WinCC v7.4
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Выделить бит из байта в VBS
-
- освоился
- Сообщения: 233
- Зарегистрирован: 01 фев 2010, 10:37
- Имя: Александр
- Страна: Россия
- город/регион: Брянск
- Благодарил (а): 10 раз
- Поблагодарили: 27 раз
Выделить бит из байта в VBS
Код: Выделить всё
Function leftshift(op,n)
Dim shiftleft, i
leftshift = op
For i = 0 To n - 1
leftshift = leftshift * 2
Next
End Function
Function testBit(x, Bit)
Dim y
y = leftshift(1,Bit)
If (y And x) Then testBit=1 Else testBit=0
End Function
WScript.Echo testBit(123, 7) & testBit(123, 6) & testBit(123, 5) & testBit(123, 4) & " " & testBit(123, 3) & testBit(123, 2) & testBit(123, 1) & testBit(123, 0)
-
- эксперт
- Сообщения: 1172
- Зарегистрирован: 14 ноя 2013, 20:35
- Имя: Анатолий Сергеевич
- Страна: Россия
- город/регион: Башкортостан
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Выделить бит из байта в VBS
так зачем вам писать отделтный скрипт если это уже реализовано штатными функциями winCC...
В свойствах графического элемента фейсплейта на пункте background color создаете анимацию, можно но битам, по значениям выбирать изменение цвета.
Под рукой нет winCC, скриншотами показать не смогу , если только через пару дней...
-
- здесь недавно
- Сообщения: 76
- Зарегистрирован: 05 сен 2010, 21:56
- Имя: Игорь
- Страна: Украина
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
Выделить бит из байта в VBS
SaNNy, спасибо.
По пробую разобраться (я новичек.........).
megavolt86, так бы и сделал, однако в самом фейсплейте .fpt, на background color
эта динамическая анимация не активна, только VBS.
По пробую разобраться (я новичек.........).
megavolt86, так бы и сделал, однако в самом фейсплейте .fpt, на background color
эта динамическая анимация не активна, только VBS.
-
- освоился
- Сообщения: 257
- Зарегистрирован: 28 сен 2022, 15:26
- Имя: Андрей
- Благодарил (а): 4 раза
- Поблагодарили: 39 раз
Выделить бит из байта в VBS
Можно чуть проще, по-моему:
Код: Выделить всё
Function testBit(x, Bit)
Dim y
y = 2^Bit
If (y And x) Then testBit=1 Else testBit=0
End Function
-
- здесь недавно
- Сообщения: 76
- Зарегистрирован: 05 сен 2010, 21:56
- Имя: Игорь
- Страна: Украина
- Благодарил (а): 3 раза
- Поблагодарили: 3 раза
Выделить бит из байта в VBS
Добрый день.
Все таки решил пойти по простому пути, в привязке фейсплейта, через Динамический Диалог.
А код VBS внутри удалил.
Необходимо будет перепривязать все фейсплейты на экранах, но трудности нас не пугают,
плюс экранов не очень много......
Всем ответившим огромное спасибо!!!
(Немного по разбирался с VBS, поэтому ваша помощь в любом случае, для меняя, полезна!!!)
Все таки решил пойти по простому пути, в привязке фейсплейта, через Динамический Диалог.
А код VBS внутри удалил.
Необходимо будет перепривязать все фейсплейты на экранах, но трудности нас не пугают,
плюс экранов не очень много......
Всем ответившим огромное спасибо!!!
(Немного по разбирался с VBS, поэтому ваша помощь в любом случае, для меняя, полезна!!!)