Written on: 06. 04. 2015 [10:13]
|
Igor123123
Игорь Тор
Topic creator
registered since: 29.03.2014
Posts: 1
|
Вот допустим есть у нас контроллер в вычислителе на java-подобном, который вызывает скрипт и в зависимости от результатов выдает или снимает аварию. С вызовом внешнего скрипта мне более менее понятно. А вот с аварией возникли вопросы. При возникновении аварии нужно выжать сообщение 1 раз (а не постоянно выдавать). Наваял тестовый скрипт на java-подобном:
if (f_start)
{
lock1=false;
lock2=false;
}
if (alarmIn == true)
{
lock2=false;
if (lock1==false)
{
lock1 = true;
this.alarmSet(this.cfg("NAME") + " нарушение параметра - ВКЛ", -5, "prm");
}
}
if (alarmIn == false)
{
lock1 = false;
if (lock2 == false)
{
lock2 = true;
this.alarmSet(this.cfg("NAME") + " нарушение параметра - ВЫКЛ", 5, "prm");
}
}
alarmIn - входная переменная логич.типа
Вроде как работает. Но кажется мне, что я велосипед изобретаю. Должно быть проще решение или правильнее что-ли. Есть ли такое?
И еще, чтобы получить значение конфигурационного поля контроллера "Имя" пользую cfg(). Т.е.:
И если мне надо например получить значение поля ID то вызывать я буду:
а вот если мне нужно содержание поля "Описание"? Что вызывать тогда? Где в wiki найти название полей с их именами, ну вроде ID-ID, Имя-NAME и.т.д.?.
Или опять же я велосипед придумываю и нужно как-то по другому это делать?
|
Written on: 06. 04. 2015 [20:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Igor123123" wrote:
Вот допустим есть у нас контроллер в вычислителе на java-подобном, который вызывает скрипт и в зависимости от результатов выдает или снимает аварию. С вызовом внешнего скрипта мне более менее понятно. А вот с аварией возникли вопросы. При возникновении аварии нужно выжать сообщение 1 раз (а не постоянно выдавать). Наваял тестовый скрипт на java-подобном:
Для начала читаем тут, если не читали: http://wiki.oscada.org/Doc/QuickStart#h988-31
Потом смотрим примеры в стандартной библиотеке или ДемоБД, скажем шаблон DAQ base.digAlarm или рядом, где видно как просто проверять смену ошибки для установки/снятия состояния "Нарушения".
"Igor123123" wrote:
И еще, чтобы получить значение конфигурационного поля контроллера "Имя" пользую cfg(). Т.е.:
И если мне надо например получить значение поля ID то вызывать я буду:
а вот если мне нужно содержание поля "Описание"? Что вызывать тогда? Где в wiki найти название полей с их именами, ну вроде ID-ID, Имя-NAME и.т.д.?.
Не на Wiki, а в конфигураторе, в разделе "Конфигурация", наведением на поле и считыванием из строки статуса последнего элемента. В большинстве своём совпадает, кроме ряда исключений.
Learn, learn and learn better than work, work and work.
|