Sasha_24
  1.10.2013, 19:28
  
 
  Уважаемые специалисты
Несколько вопросов по TAC - думаю, для тех, кто работала с этой техникой вопросы будут элементарными
1.	Возможно,  ли как-то подключить внутренние свойства функциональных блоков к SNVT точкам сети LON. Например, свойства «Delay On/Delay off» блока DELAY (см скриншот 1)
2.	Возможно ли с OP записывать значения в SNVT точки сети LON, или же запись с OP можно осуществлять только пользуясь блоками PVB, PVI, PVR (см. диаграмму – корректны ли на диаграмме комментарии, которые обведены зелеными областями?)
(см. скриншот 2)
спасибо всем
 
 
 
 
  1. Нет
2. Нет
Вы смотрели примеры из библиотеки?
Тут C:\Program Files (x86)\Schneider Electric\TAC Menta 5.1.8\Library\Macro Block Library\Miscellaneous\SNVT
 
 
 
 
  1.согласен.
2. не согласен. с ОР можно в принудительном режиме записать. значок принудительной записи >
 
 
 
  Sasha_24
  4.10.2013, 12:03
  
 
  Уважаемый utkini2,
Поведайте на счет символа принудительной записи ">"  - куда его проставлять - в dop файл что-ли?
спасибо
 
 
 
 
  А что у Вас ОР?
Я же писал - с ОР.
В любую переменную выведенную в ОР. после ввода "красного пароля" можно записать принудительно значения.
Не совсем понятна ваша задача. если хотите принять сигнал SNVT используйте (PVB,I,R), хотите передать, отправить - (АО,DO)
 
 
 
  Sasha_24
  4.10.2013, 16:13
  
 
  Задача в том, что бы иметь возможность изменять одну и ту же SNVT точку из двух источников 
* с АРМ оператора
* Операторская панель
Например SNVT точка -  уставка контура регулирования температуры. 
Важно, что бы была возможность изменять уставку и с OP панели и с диспетчерского места (TAC Vista). 
С TAC Vista никаких проблем, но с OP не получается. Если в Menta конфигуришь AI объект как SNVT, то с ПО конфигурирования OP панели данная точка имеет статус исключительно R (Только чтение).
 
 
 
 
  А какую переменную меняете из висты? 
И а зачем меняете входной сигнал (AI)? 
Меняйте как хотите PVR а потом отдавайте на выход AO и его используйте как SNVT.
 
 
 
 
  "2. Возможно ли с OP записывать значения в SNVT точки сети LON"
Возможно, например так
Нажмите для просмотра прикрепленного файла"Важно, что бы была возможность изменять уставку и с OP панели и с диспетчерского места (TAC Vista). "
Не понял, причем здесь Виста.
Или Виста с Xenta и без SNVT. или Xenta c SNVT и с какой-то другой СКАДОй.
 
 
 
  Sasha_24
  7.10.2013, 20:27
  
 
  наверное я очень жестко туплю, но совсем не получается "вытянуть" объекты PVR в Vista.
* В Menta сохраняю приложение в котором есть PVR блок. Данный блок имеет статус Public, именуется как "Setpoint", а в поле InitValue прописана "Setpoint1" -глобальная константа, имеющая также статус Public
* Проект загружаю в контроллер Xenta 302
* В Vista добавляю новое устройство "New/Device/Lonworks Device", потом в несколько шагов мастера указываю NID контроллера и XIF файл
* В дереве появляется контроллер, но "подтягиваются" только SNVT точки (они также есть в приложении), - переменной "Setpoint" нету.
 
  
 
 
  Используйте TAC Xenta Group.
Если используется Виста и только Xentы, то SNVT и *.xif не нужны.
 
 
 
  Sasha_24
  8.10.2013, 18:55
  
 
  Уважаемый ttt, спасибо огромное за совет - действительно  - через Xenta Group все объекты видны.
Можно еще вопрос. 
Как в системе TAC оптимальнее всего организовать присвоение одной типовой точке (в рамках 200 контроллеров) некого общего значения. 
Например, есть 200 номерных контроллеров (Xenta 121) и надо одной командой (кнопкой из мнемосхемы)  задать температурную уставку (например 18С) всем контроллерам. При этом возможность изменения данной уставки у каждого фанкойла  отдельно также остается. 
В SCADA типа WinCC или Citect данный  механизм просто реализуется  через скрипт, так как из скриптов есть возможность обращаться к большинству объектов SCADA (в т.ч. и к тэгам, которые привязаны к внешним точкам). Можно ли в TAC сделать что то подобное, может ли JavaScript,  обращаться (Читать/Писать) к точкам. Проглядывал документацию - сложилось впечатление, что все, что может JavaScript, - это исключительно анимирование разных примитивов страниц
Спасибо
 
 
 
 
  "Можно ли в TAC сделать что то подобное"
Можно. Используется не Java, в TGML скрипты. 
Есть документация на объекты и функции TGML.
Есть примеры, есть предустановленные компоненты с подобными скриптами.
Вам бы поучиться в представительстве, или хотя бы документацию собрать и почитать.
 
 
 
  Sasha_24
  9.10.2013, 12:28
  
 
  К сожаления изучать приходится самому.
Я конечно дико извиняюсь, 
- можете прикрепить ссылку на документацию по TGML скриптам.
Сапорт предоставил мне документ TGML Format Specification TGML 1.0,  в которым кроме обработки визуальных примитивов страниц (анимаций и событий над ними) я ничего не нашел. 
Тут бы кусочек скрипта где-то посмотреть  - типа 
void function somefunc() 
{
//.... 
WriteToTag(string tag, real value) 
//...
}
Спасибо
 
 
 
 
  "Тут бы кусочек скрипта где-то посмотреть"
Легко. Разберите как написаны и как работают компоненты ToggleButton и SpinButton во вкладке Basic Controls панели Components.
 
 
 
 
  Посмотрите этот документ. Здесь перечень функций и операторов используемых в TGML.
Нажмите для просмотра прикрепленного файла
  
 
  Sasha_24
  10.10.2013, 13:21
  
 
  Спасибо большое за документ - весьма полезен
Просмотрел скрипты компоненты 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 раз и в каждом экземпляре сделать новый перебиндинг.
Спасибо
 
 
 
 
  - осуществить запись напрямую в точку сервера, типа 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
  10.10.2013, 15:10
  
 
  Освоение + реальное внедрение гостиницы, так уж получилось (приходится осваивать на ходу с нуля)
На счет setValue("‹bindingName›","‹value›") -  я имел ввиду, что не конкретно эта функция сможет записать в адрес  (действительно по документу приложенному Вами очевидно, что она так не умеет),  может есть какая то альтернативная функция.
По поводу компонент. Если не вдаваться в технические подробности реализации изнутри на уровне SCADA - это совершенно стандартный подход в большинстве систем (В Citect есть Super Genius, в Wincc есть faceplate и т.д.). И это, не то что бы удобно - необходимо, что бы при изменении самой компоненты - ее экземпляры подхватывали изменения (иначе в чем тогда смысл, если любая из ошибок может стать серийной). 
Вопросы может и странные, но думаю, что они вполне адекватные в рамках SCADA систем: 
Шаблоны; компоненты; наследование; интеграция со сторонними СУБД, интеграция сторонних Dll, ActieX, .NET компонент; скриптинг, который может работать со всеми без исключениями объектами среды (а не только в рамках графических примитивов) и.т.д., - все эти факторы важны для понимания процесса разработки конечного HMI . 
Спасибо
 
 
 
 
  "По поводу компонент"
Меня не напрягает что нет наследования.
Если у Вас есть уже 200 экземпляров с ошибкой то можно поменять код в них на правильный.
Открываем вкладку Source и заменяем неправильный код на правильный во всем документе.
"Освоение + реальное  внедрение гостиницы."
Ну так и скажите, например "Имею 200 номеров с Xenta 121 в каждом. В ТЗ написано - ночью менять все уставки на 30С, чтобы фанкойлы выключились, утром вернуть обратно. Постояльцы пусть спят в тишине. Как это сделать правильно?". Уверяю Вас решений может быть несколько.
 
 
 
  Sasha_24
  14.10.2013, 16:26
  
 
  Еще узрел вопрос, может опять странный...
можно ли из скрипта внутри страницы "А", обратится к свойствам/методам некоторого объекта (node) страницы "Б".?  
Не помню регламентирует ли такую штуку DOM, но насколько мне известно в мире Web страниц, через JavaScript'ы это реализуется.
Спасибо
 
 
 
 
  Не знаю. Вряд ли. 
Назовите причину необходимости такой функциональности.
 
 
   
  Для просмотра полной версии этой страницы, пожалуйста, 
пройдите по ссылке.