Скрипт для панели Comfort в TiaPrtal

Панели оператора / Человеко-машинный интерфейс
Ответить
alex2k3
Профан
Сообщения: 1
Зарегистрирован: 25 авг 2020, 16:38

Скрипт для панели Comfort в TiaPrtal

Сообщение alex2k3 »

Добрый день.
Необходимо с помощью скрипта решить следующую задачу:
На форме располагается поле IO Field, для вывода значений тэгов.
По кнопке с помощью скрипта становится видным это поле IO Field.
Далее в зависимости от того какая кнопка нажата, в поле IO Field, должно выводиться значение того или иного тэга, но не один раз при визуализации поля, а постоянно, пока поле не будет снова скрыто.
Т.е. просто пересылка значения тэга с помощью SmartTags, задачу не решает, т.к. значение поля обновляется один раз, а мне нужно значение поля обновлять пока оно видимо, и обновлять значениями из разных тэгов.
Думал, сначала, что можно схитрить и применить такую конструкцию: HmiRuntime.ActiveScreen.ScreenItems(ScreenItemName).Tag = TagName, т.е. напрямую задать имя тэга через скрипт, компилятор не ругался, а рантаим ругается.
Потом подумал, что можно запустить циклический скрипт с пересылкой значений с помощью SmartTags, но что-то сходу не нашел где задаются параметры вызова и работы скриптов.
Может кто-то решал подобную задачу, и нашел простое и изящное решение, мне кажется VBS должен что-то для этого предоставлять, т.к. мне кажется, что пересылка значений через циклический скрипт, как-то коряво выглядит.
Спасибо за понимание..

POV
Специалист
Сообщения: 104
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Скрипт для панели Comfort в TiaPrtal

Сообщение POV »

Используйте мультиплексирование или косвенную адресацию.

Михайло
Администратор
Сообщения: 3972
Зарегистрирован: 19 сен 2012, 19:16

Re: Скрипт для панели Comfort в TiaPrtal

Сообщение Михайло »

Я бы эту задачу возложил на ПЛК.

alex3110
Любитель
Сообщения: 47
Зарегистрирован: 23 сен 2016, 20:59

Re: Скрипт для панели Comfort в TiaPrtal

Сообщение alex3110 »

Михайло писал(а):
26 авг 2020, 04:10
Я бы эту задачу возложил на ПЛК.
Дело вкуса. Мне тоже советовали так делать. Но гемора с ПЛК было бы просто дофига, поэтому я исхитрился и для своей задачи сделал всё в панели на VBS.
alex2k3 писал(а):
25 авг 2020, 16:51
а мне нужно значение поля обновлять пока оно видимо, и обновлять значениями из разных тэгов
Как раз это и решается стандартным "софтовым" методом с помощью "мультиплексированных" тэгов и полей "Symbolic I/O Field". Составляете 2 или 3 текстовых списка, в одном из которых перечисляете список переменных/тэгов/датчиков и делаете привязку этого списка к тэгу "Index", который потом считайте "индексным". В каждой строке этого текстового списка сопоставляете строку текста (например "Датчик 5") какому-то значению в колонке "VALUE" (например "5"). В рантайме, при выборе этой строки, тэг "Index" получит значение "5". Потом это значение получит поле "мультиплексированное" поле "I/O Field", к которому надо было привязать опять же соотв-щий "мультиплексированный" тэг. Далее "мультиплексированный" тэг, с помощью индекса 5, подключится к обычному тэгу, содержащему значение датчика №5, а "мультиплексированное" поле "I/O Field" будет выводить это значение, пока Вы не выберите другой датчик. Немного сложновато, но зато на экране получается всё максимально компактно.
С остальными текстовыми списками - аналогично.

Ответить