Косвенная адресация TIA WinCC professional

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

Косвенная адресация TIA WinCC professional

Post by Amfaromah » Fri Feb 02, 2018 8:33 am

Доброго времени суток, имеется ли какая либо динамизация смены тегов
или, что-либо подобное как раньше было в Flexible например в квадратных скобках указать переменную и тем самым указать номер байта.
Мультиплексирвоание тоже видимо не стало.
Подскажите способы если не трудно, не могу найти или не там ищу.

vvk1
Posts: 16
Joined: Thu Aug 11, 2011 7:00 am

Re: Косвенная адресация TIA WinCC professional

Post by vvk1 » Wed Feb 07, 2018 9:12 am

В WinCC flexible работает "динамизация" имени тега. Аналогично "большому" WinCC.
Пример:
For i=0 To 12
itn = String(2-Len(i),"0") & CStr(i) ' переменная часть имени ТЕГа (от "00" до "12")
SmartTags("TagY_" & itn) = SmartTags("TagXarray") (i)
Next
В WinCC TIA не пробовал.

Amfaromah
Posts: 5
Joined: Fri Feb 02, 2018 8:25 am
Location: Вятка

Re: Косвенная адресация TIA WinCC professional

Post by Amfaromah » Wed Feb 07, 2018 11:16 am

Пробовал таким образом обратиться к элементу массива. Всё комплирует, запускается, но при попытке выполнения скрипта ругается на строку где в круглых скобках указываю номер элемента массива! Почему и как еще сделать ума не приложу.

vvk1
Posts: 16
Joined: Thu Aug 11, 2011 7:00 am

Re: Косвенная адресация TIA WinCC professional

Post by vvk1 » Fri Feb 09, 2018 2:37 pm

Сляпал примерчик. TIA14. Работает.
В DBшке: Exp_Array1 - Array[0..9] of Real
For i=0 To 9
SmartTags("Exp_Array1")(i) = SmartTags("Exp_Array1")(i) + 1
Next

Amfaromah
Posts: 5
Joined: Fri Feb 02, 2018 8:25 am
Location: Вятка

Re: Косвенная адресация TIA WinCC professional

Post by Amfaromah » Tue Feb 13, 2018 12:51 pm

Это всё я пробовал.
Вот что пишет GSC Diagnostics:
============ HMISmartTag: Unknown SmartTag ============
Application : C:\Program Files (x86)\Siemens\Automation\SCADA-RT_V11\WinCC\bin\PdlRt.exe
SmartTag : Recipe_1
============ HMISmartTag: Unknown SmartTag ============
============An error occured in the Script============
Application :
Picture : параметры пастеризатор 5000.pdl_Events
Function : Sub ButtonX005F1_OnPressLeft(ByVal item, ByVal flags, ByVal x, ByVal y)
Line : 4
Error :
============An error occured in the Script============



Вот собственно сам скрипт:
Sub OnPressLeft(ByVal item, ByVal flags, ByVal x, ByVal y)
Dim i
For i=0 To 3
SmartTags("Recipe_1")(i)=1
Next
End Sub


Если поставлю без перечислений цикла а у тега в квадратных скобках то присваивает переменной и всё видит. Как только вставляю в круглые скобки переменную для указания элемента массива так всё рушится с этой ошибкой. TIA WinCC v14 Professional. Уже ума не приложу в чём дело.

vvk1
Posts: 16
Joined: Thu Aug 11, 2011 7:00 am

Re: Косвенная адресация TIA WinCC professional

Post by vvk1 » Wed Feb 14, 2018 9:19 am

"Массивный" тег в WinCCprof не получается. Видимо, наследство "большого" WinCC.
1.Работать с типом RAW. Помню, в "большом" WinCC были функции преобразования RAW в массив.
Это пробовать в WinCC prof некогда .
2.Менять имя тега, как и в "большом". В 1-м ответе это нарисовал.

Amfaromah
Posts: 5
Joined: Fri Feb 02, 2018 8:25 am
Location: Вятка

Re: Косвенная адресация TIA WinCC professional

Post by Amfaromah » Wed Feb 14, 2018 9:50 am

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

Post Reply