EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Регистрация аварий и "Вычислитель на java-подобном языке"


Author Message
Written on: 06. 04. 2015 [10:13]
Igor123123
Игорь Тор
Topic creator
registered since: 29.03.2014
Posts: 1
Вот допустим есть у нас контроллер в вычислителе на java-подобном, который вызывает скрипт и в зависимости от результатов выдает или снимает аварию. С вызовом внешнего скрипта мне более менее понятно. А вот с аварией возникли вопросы. При возникновении аварии нужно выжать сообщение 1 раз (а не постоянно выдавать). Наваял тестовый скрипт на java-подобном:

JAVASCRIPT
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(). Т.е.:

JAVASCRIPT
this.cfg("NAME")


И если мне надо например получить значение поля ID то вызывать я буду:

JAVASCRIPT
this.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(). Т.е.:
JAVASCRIPT
this.cfg("NAME")

И если мне надо например получить значение поля ID то вызывать я буду:
JAVASCRIPT
this.cfg("ID")

а вот если мне нужно содержание поля "Описание"? Что вызывать тогда? Где в wiki найти название полей с их именами, ну вроде ID-ID, Имя-NAME и.т.д.?.

Не на Wiki, а в конфигураторе, в разделе "Конфигурация", наведением на поле и считыванием из строки статуса последнего элемента. В большинстве своём совпадает, кроме ряда исключений.

Learn, learn and learn better than work, work and work.



14402