Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Tac (запись с Op в точку Snvt)
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем > LonWorks
Sasha_24
Уважаемые специалисты


Несколько вопросов по TAC - думаю, для тех, кто работала с этой техникой вопросы будут элементарными

1. Возможно, ли как-то подключить внутренние свойства функциональных блоков к SNVT точкам сети LON. Например, свойства «Delay On/Delay off» блока DELAY (см скриншот 1)

2. Возможно ли с OP записывать значения в SNVT точки сети LON, или же запись с OP можно осуществлять только пользуясь блоками PVB, PVI, PVR (см. диаграмму – корректны ли на диаграмме комментарии, которые обведены зелеными областями?)
(см. скриншот 2)

спасибо всем


ttt
1. Нет
2. Нет

Вы смотрели примеры из библиотеки?
Тут C:\Program Files (x86)\Schneider Electric\TAC Menta 5.1.8\Library\Macro Block Library\Miscellaneous\SNVT
utkini2
1.согласен.
2. не согласен. с ОР можно в принудительном режиме записать. значок принудительной записи >
Sasha_24
Уважаемый utkini2,
Поведайте на счет символа принудительной записи ">" - куда его проставлять - в dop файл что-ли?

спасибо
utkini2
А что у Вас ОР?
Я же писал - с ОР.
В любую переменную выведенную в ОР. после ввода "красного пароля" можно записать принудительно значения.
Не совсем понятна ваша задача. если хотите принять сигнал SNVT используйте (PVB,I,R), хотите передать, отправить - (АО,DO)
Sasha_24
Задача в том, что бы иметь возможность изменять одну и ту же SNVT точку из двух источников
* с АРМ оператора
* Операторская панель

Например SNVT точка - уставка контура регулирования температуры.

Важно, что бы была возможность изменять уставку и с OP панели и с диспетчерского места (TAC Vista).
С TAC Vista никаких проблем, но с OP не получается. Если в Menta конфигуришь AI объект как SNVT, то с ПО конфигурирования OP панели данная точка имеет статус исключительно R (Только чтение).
utkini2
А какую переменную меняете из висты?
И а зачем меняете входной сигнал (AI)?
Меняйте как хотите PVR а потом отдавайте на выход AO и его используйте как SNVT.
ttt
"2. Возможно ли с OP записывать значения в SNVT точки сети LON"
Возможно, например такНажмите для просмотра прикрепленного файла

"Важно, что бы была возможность изменять уставку и с OP панели и с диспетчерского места (TAC Vista). "
Не понял, причем здесь Виста.
Или Виста с Xenta и без SNVT. или Xenta c SNVT и с какой-то другой СКАДОй.
Sasha_24
наверное я очень жестко туплю, но совсем не получается "вытянуть" объекты PVR в Vista.

* В Menta сохраняю приложение в котором есть PVR блок. Данный блок имеет статус Public, именуется как "Setpoint", а в поле InitValue прописана "Setpoint1" -глобальная константа, имеющая также статус Public
* Проект загружаю в контроллер Xenta 302
* В Vista добавляю новое устройство "New/Device/Lonworks Device", потом в несколько шагов мастера указываю NID контроллера и XIF файл
* В дереве появляется контроллер, но "подтягиваются" только SNVT точки (они также есть в приложении), - переменной "Setpoint" нету.sad.gif

ttt
Используйте TAC Xenta Group.
Если используется Виста и только Xentы, то SNVT и *.xif не нужны.
Sasha_24
Уважаемый ttt, спасибо огромное за совет - действительно - через Xenta Group все объекты видны.

Можно еще вопрос.
Как в системе TAC оптимальнее всего организовать присвоение одной типовой точке (в рамках 200 контроллеров) некого общего значения.
Например, есть 200 номерных контроллеров (Xenta 121) и надо одной командой (кнопкой из мнемосхемы) задать температурную уставку (например 18С) всем контроллерам. При этом возможность изменения данной уставки у каждого фанкойла отдельно также остается.
В SCADA типа WinCC или Citect данный механизм просто реализуется через скрипт, так как из скриптов есть возможность обращаться к большинству объектов SCADA (в т.ч. и к тэгам, которые привязаны к внешним точкам). Можно ли в TAC сделать что то подобное, может ли JavaScript, обращаться (Читать/Писать) к точкам. Проглядывал документацию - сложилось впечатление, что все, что может JavaScript, - это исключительно анимирование разных примитивов страниц

Спасибо
ttt
"Можно ли в TAC сделать что то подобное"
Можно. Используется не Java, в TGML скрипты.
Есть документация на объекты и функции TGML.
Есть примеры, есть предустановленные компоненты с подобными скриптами.
Вам бы поучиться в представительстве, или хотя бы документацию собрать и почитать.
Sasha_24
К сожаления изучать приходится самому.
Я конечно дико извиняюсь,
- можете прикрепить ссылку на документацию по TGML скриптам.
Сапорт предоставил мне документ TGML Format Specification TGML 1.0, в которым кроме обработки визуальных примитивов страниц (анимаций и событий над ними) я ничего не нашел.
Тут бы кусочек скрипта где-то посмотреть - типа
void function somefunc()
{
//....
WriteToTag(string tag, real value)
//...
}

Спасибо
ttt
"Тут бы кусочек скрипта где-то посмотреть"
Легко. Разберите как написаны и как работают компоненты ToggleButton и SpinButton во вкладке Basic Controls панели Components.
ttt
Посмотрите этот документ. Здесь перечень функций и операторов используемых в TGML.
Нажмите для просмотра прикрепленного файла
Sasha_24
Спасибо большое за документ - весьма полезен

Просмотрел скрипты компоненты ToggleButton.
Действительно есть функция setValue(string BindingName, string Value), но...
Она ведь записывает в Bind, то есть условно говоря в промежуточную переменную (например MyToggle_00.Value), которая в свою очередь связана с переменной сервера.То есть в любом случае функция setValue за рамки DOM не вылазит.
А вот, если представить ситуацию, что нужно осуществить запись в точку, которая незабиндина ни с одним из элементом ни на одной из страниц.
- осуществить запись напрямую в точку сервера, типа setValue("TESTER-NIC_USB100_1-l1-Floor_01-Fan01-SCCFanCoil.nviDO1","0"), где первый длинный параметр это адрес. Можно ли это как то реализовать?

И еще вот интересующий момент, если можно (уж простите, больше не у кого спросить)
* правда ли, что изменив функционал, своего (ранее разработанного) компонента, эти изменения никак не "подтянутся" в экземпляры этого компонента, которые ранее были добавлены на страницы? То есть если это 200 раз встречающийся на разных страницах, например, анимированный клапан - его придется заменить 200 раз и в каждом экземпляре сделать новый перебиндинг.
Спасибо
ttt
- осуществить запись напрямую в точку сервера, типа setValue("TESTER-NIC_USB100_1-l1-Floor_01-Fan01-SCCFanCoil.nviDO1","0"), где первый длинный параметр это адрес. Можно ли это как то реализовать?

Нет, нельзя. Читаем документ.
setValue("‹bindingName›","‹value›")
Sets the value of a bound signal object. The
bindingName is the full name (as it is exposed to
the binding tools) of a Bind element.


правда ли, что изменив функционал, своего (ранее разработанного) компонента, эти изменения никак не "подтянутся" в экземпляры этого компонента, которые ранее были добавлены на страницы?
Конечно нет. Представьте что получится при открытии файла TGML работающей (в смысле правильной БД) на Вашем ноутбуке с измененной кнопкой.

У Вас странные вопросы. Какую задачу Вы решаете? Освоение? Или что-то конкретное.
Sasha_24
Освоение + реальное внедрение гостиницы, так уж получилось (приходится осваивать на ходу с нуля)
На счет setValue("‹bindingName›","‹value›") - я имел ввиду, что не конкретно эта функция сможет записать в адрес (действительно по документу приложенному Вами очевидно, что она так не умеет), может есть какая то альтернативная функция.

По поводу компонент. Если не вдаваться в технические подробности реализации изнутри на уровне SCADA - это совершенно стандартный подход в большинстве систем (В Citect есть Super Genius, в Wincc есть faceplate и т.д.). И это, не то что бы удобно - необходимо, что бы при изменении самой компоненты - ее экземпляры подхватывали изменения (иначе в чем тогда смысл, если любая из ошибок может стать серийной).

Вопросы может и странные, но думаю, что они вполне адекватные в рамках SCADA систем:
Шаблоны; компоненты; наследование; интеграция со сторонними СУБД, интеграция сторонних Dll, ActieX, .NET компонент; скриптинг, который может работать со всеми без исключениями объектами среды (а не только в рамках графических примитивов) и.т.д., - все эти факторы важны для понимания процесса разработки конечного HMI .

Спасибо
ttt
"По поводу компонент"
Меня не напрягает что нет наследования.
Если у Вас есть уже 200 экземпляров с ошибкой то можно поменять код в них на правильный.
Открываем вкладку Source и заменяем неправильный код на правильный во всем документе.

"Освоение + реальное внедрение гостиницы."
Ну так и скажите, например "Имею 200 номеров с Xenta 121 в каждом. В ТЗ написано - ночью менять все уставки на 30С, чтобы фанкойлы выключились, утром вернуть обратно. Постояльцы пусть спят в тишине. Как это сделать правильно?". Уверяю Вас решений может быть несколько.
Sasha_24
Еще узрел вопрос, может опять странный...

можно ли из скрипта внутри страницы "А", обратится к свойствам/методам некоторого объекта (node) страницы "Б".?
Не помню регламентирует ли такую штуку DOM, но насколько мне известно в мире Web страниц, через JavaScript'ы это реализуется.

Спасибо
ttt
Не знаю. Вряд ли.
Назовите причину необходимости такой функциональности.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.