Author |
Message |
Written on: 29. 09. 2011 [10:44]
|
Maxim
Maxim Lisenko
Contributor
registered since: 18.08.2008
Posts: 141
|
А если у параметров на мнемосхеме нету такой общей части, т.е. они связываются с параметрами из различных источников данных..?
И что жуткого в том чтобы переобвязать несколько десятков параметров с помощью Ctrl+C и Ctrl+V?
З.Ы. Желательно все же обвязку параметров делать на последней стадии, когда уже таких глобальных изменений не предвидится :-)
|
Written on: 29. 09. 2011 [10:57]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
"Maxim" wrote:
А если у параметров на мнемосхеме нету такой общей части, т.е. они связываются с параметрами из различных источников данных..?
И что жуткого в том чтобы переобвязать несколько десятков параметров с помощью Ctrl+C и Ctrl+V?
З.Ы. Желательно все же обвязку параметров делать на последней стадии, когда уже таких глобальных изменений не предвидится :-)
Жуткого в переобвязке параметров с помощью Ctrl+C и Ctrl+V ничего нет. Сейчас так и делаю. Но это до тех пор, пока их количество более-менее приемлимое. Про обвязку на последней стадии - задним числом-то все мы умные. Знал бы прикуп - жил бы в Сочи.
Очевидно, что не у всех параметров есть общая часть. Даже скорее всего эти части разные. Поэтому можно, к примеру, задавать эти общие части через переменные, которые в свою очередь инициализировать где-то в одном месте. Думал может что-то подобное уже в каком-то виде реализовано, просто я не в курсе.
Это сняло бы еще одну проблему, когда одна и та же мнемосхема используется несколько раз для одних и тех же параметров, но из разных источников (как, например, частично в проекте AGLKS).
|
Written on: 29. 09. 2011 [12:31]
|
Vandrizm
Игорь М
registered since: 31.07.2010
Posts: 55
|
Возможно тебе подойдёт такой способ:
Чтение и запись значений атрибутов подсистемы "Сбор данных" функцией
|
Written on: 29. 09. 2011 [17:30]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
Можно конечно ручками и таким образом. Но, честно говоря, хрен редьки не слаще.
|
Written on: 17. 11. 2011 [09:34]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
В чем разница между SYS.system() и Special.FLibSYS.sysCall()? Какую лучше использовать?
|
Written on: 17. 11. 2011 [09:45]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"yozhik" wrote:
В чем разница между SYS.system() и Special.FLibSYS.sysCall()? Какую лучше использовать?
Первая - новое, вторая - старое API.
Learn, learn and learn better than work, work and work.
|
Written on: 17. 12. 2011 [23:57]
|
andrey-sw
Андрей Сычев
registered since: 10.12.2008
Posts: 32
|
Помогите разобраться в данной ситуации
Есть прибор ТРМ212, опрашиваю по Modbus через преобразователь
В приборе есть некий вешественный параметр но отдается он как целое число и положение точки.
Соответственно создаём в шаблоне LogicLev три атрибута
Sp / целое / выход / не атрибут / связь / TRM212|sp
prec / целое / вход / только чтение / связь / TRM212|sp
X / вещест. / выход / полный доступ / константа /
Соответственно программа
using Special.FLibSYS;
X=Sp/pow(10,prec);
Но нужно что бы оператор мог менять параметр X с последующим обратным преобразованием и записью в контроллер
Я сделал следующее, добавил еще оди атрибут
oldX / вещест. / выход / не атрибут / константа /
Соответственно программа
using Special.FLibSYS;
if( oldX!=EVAL_REAL && oldX!=X ) { Sp=X*pow(10,prec);}
oldX=X=Sp/pow(10,prec);
Вроде работает, но почемуто кажется что это не совсем верный подход, и существует опасность записи в контролер неверных значение например в момент старта. Может есть другие решения.
И еще немоглибы вы пояснить чуть подробнее роль параметров атрибута [Режим(вх вых)] и [Атрибут(не атриб, только чтение, полный доступ) по отдельности вроде все понятно но до конца не могу в голове уложить кто отвечает за доступ к физ контролеру через связ а кто к самому атрибуту например из UI
|
Written on: 18. 12. 2011 [20:10]
|
andrey-sw
Андрей Сычев
registered since: 10.12.2008
Posts: 32
|
И еще один вопросик. Можно ли из визуализации получить имя атрибута в логическом контроллере по его ID чтобы в нескольких местах не прописывать человекопонятные имена атрибутов. Ну или хотя бы имя атрибута в виджете по его ID, чтобы в тексте программы не повторять одно и тоже.
В конфигураторе этот механизм используется слош и рядом... Кстати в конфигураторе это не совсем удобно, например когда смотришь атрибуты у лог.контроллера и видишь длиннющие названия. На мой взгляд было бы удобнее если бы отображался ID атрибута а при наведении мышки всплывала подсказка с его именем... Это на мой взгляд но если меня поддержат - примите на заметку.
[This article was edited 1 times, at last 18.12.2011 at 20:24.]
|
Written on: 20. 12. 2011 [13:59]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"andrey-sw" wrote:
Вроде работает, но почемуто кажется что это не совсем верный подход, и существует опасность записи в контролер неверных значение например в момент старта. Может есть другие решения.
Креститься нужно если кажется. Запись по связям производится только при модификации в скрипте или транзитом!
"andrey-sw" wrote:
И еще немоглибы вы пояснить чуть подробнее роль параметров атрибута [Режим(вх вых)] и [Атрибут(не атриб, только чтение, полный доступ) по отдельности вроде все понятно но до конца не могу в голове уложить кто отвечает за доступ к физ контролеру через связ а кто к самому атрибуту например из UI
В документации нормально описано (дополнил).
"andrey-sw" wrote:
И еще один вопросик. Можно ли из визуализации получить имя атрибута в логическом контроллере по его ID чтобы в нескольких местах не прописывать человекопонятные имена атрибутов. Ну или хотя бы имя атрибута в виджете по его ID, чтобы в тексте программы не повторять одно и тоже.
У атрибута параметра смотрим здесь: http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-10 , у атрибута виджета не имеет смысла.
Learn, learn and learn better than work, work and work.
|
Written on: 24. 05. 2012 [14:34]
|
legend
Oleg N
registered since: 13.04.2012
Posts: 63
|
Добрый день.
Необходимо в архив аварийных сообщений записывать сообщение об отсутствии или потери связи при случайном извлечении USB адаптера RS-485.
Пытался получить статус транспортного протокола по аналогии с функцией "Запрос интерфейса управления (xmlCntrReq)":
using Special.FLibSYS;
req = xmlNode("get").setAttr("path","/sub_Transport/Serial/out_testModBus/%2fprm%2fst%2fen");
rez = xmlCntrReq(req);
messPut("test",6,"Значение: "+req.text());
В ответ получаю: "Значение: get:/sub_Transport/Serial/out_testModBus/%2fprm%2fst%2fen:> Ошибка элемента управления '/prm/st/en'!"
Подскажите пожалуйста, как получить статус (выполняется или остановлен) testModBus модуля Транспорты (последовательный интерфейс - выходной транспорт - testModBus)
|