Косвенная адресация в faceplate

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
Amfaromah
Posts: 17
Joined: Fri Feb 02, 2018 8:25 am
Location: Вятка

Косвенная адресация в faceplate

Post by Amfaromah »

Доброго времени суток. В данный момент не получается решить проблему.
Имеется faceplae. В нем пытаюсь записать тэг смещая его с индексом. Если просто подставляю переменную любую, то она в faceplate работает.
Если ставлю выполнение скриптом со смещением по индексу, то ничего работать не хочет.
Пример скрипта:
Function HA_CMDValue(ByVal item)

Dim c
c= "POU_VLV" & CStr(SmartTags("IDX_VLV_POU")) & ".cmd_hand"
HA_CMDValue = c

End Function

так же пробовал делать так:
Function HA_CMDValue(ByVal item)

HA_CMDValue ="POU_VLV" & CStr(SmartTags("IDX_VLV_POU")) & ".cmd_hand"

End Function

Если я использую этот же код не в faceplate, а в кнопке по нажатию. То всё прекрасно работает. Есть конечно вариант каждый раз крутить скрипт по изменению переменной который будет работать глобально каждую секунду.... Но это так себе вариант.

Что то я делаю может не так? Или может имеются какие то другие варианты?
MaxS
Posts: 62
Joined: Sat May 17, 2014 1:26 am

Re: Косвенная адресация в faceplate

Post by MaxS »

Какая WinCC?
Если WinCC v7, возможно поможет @NOTP::TagName.

SmartTags("@NOTP::IDX_VLV_POU")
Amfaromah
Posts: 17
Joined: Fri Feb 02, 2018 8:25 am
Location: Вятка

Re: Косвенная адресация в faceplate

Post by Amfaromah »

WinCC Professional на базе TIA Potal
MaxS
Posts: 62
Joined: Sat May 17, 2014 1:26 am

Re: Косвенная адресация в faceplate

Post by MaxS »

Не скажу за ТИА там не пробовал, в классике к faceplate привязана структура и если оттуда вызываются какие либо теги то к ним автоматически добавляется имя структуры. Например тег Start при вызове с faceplate с привязкой к структуре Motor1 будет Motor1.Start, при вызове faceplate со структурой Motor2 - Motor2.Start и т.д. Если же теперь из faceplate вызвать какой нибудь глобальный тег, не из структуры, то получится Motor1.GlobalTag. Что конечно не будет работать, поэтому для вызова тегов не из структуры faceplate применяется @NOTP::GlobalTag, в результате чего вызовется просто тег GlobalTag.

Не знаю как у Вас реализована faceplate, но возможно к Вашему тегу IDX_VLV_POU добавляется префикс структуры, поэтому и не работает.
serg2583
Posts: 19
Joined: Fri Nov 05, 2010 12:01 am

Re: Косвенная адресация в faceplate

Post by serg2583 »

А как вы вызываете этот скрипт?