Не работает проверка условия в скрипте

Системная платформа - продукт для комплексной автоматизации процессов предприятия от Wonderware.

Не работает проверка условия в скрипте

Сообщение kingwsf » Чт янв 10, 2013 3:26 pm

Здравствуйте!
Archestra IDE, создаю символ.
Нужно отследить состояние аларма - при уменьшении значения меньше HiAlarm, нужно присвоить AlarmState = 0
Пишу именованный скрипт по триггеру OnFalse, для значения HiStatus:

IF NOT HiHiStatus THEN
AlarmState = 0;
ENDIF;

Не работает! То есть вообще не идет проверка условия. Код после THEN никогда не выполняется, если даже я напишу в условии IF 5 > 2 THEN.. все равно не будет работать.
Подскажите, плиз, в чем может быть дело?
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Чт янв 10, 2013 3:46 pm

IF NOT Me.HiHiStatus THEN
AlarmState = 0;
ENDIF;
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Чт янв 10, 2013 3:55 pm

Не помогает..
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Чт янв 10, 2013 4:58 pm

А на что скрипт накладываетя? И как символ привязан к переменным?
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Чт янв 10, 2013 5:09 pm

Генератор зла писал(а):А на что скрипт накладываетя? И как символ привязан к переменным?


Накладывается? Я его просто добавил в SymbolScripts.
Задача - настроить визуализацию алармов. У меня там есть еще несколько скриптов, например, при установке HiStatus в true, я присваиваю AlarmState = 10.
При HiHiStatus = true - AlarmState = 20. Это работает, там не нужно проверять условия.
В windowMaker я привязываю HiStatus, LoStatus и т.д. соответствующим полям тега, по значению которого возникают алармы
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Чт янв 10, 2013 5:19 pm

IF NOT HiHiStatus THEN
AlarmState = 0;
LogMessage ("AlarmStatus = 0 !!!");
ENDIF;
Проверьте, появляются ли записи в логере SMC. Если нет, то, возможно, в том же логере есть записи почему скрипт не отработал.
Если в логере пусто, то значит скрипт не срабатывает, попробуйте подвесить его на нажатие кнопки.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Чт янв 10, 2013 5:50 pm

О работе скрипта в логе ничего нет, но там много таких сообщений, честно говоря не знаю что это..
Тега facepi у меня нет.

193443 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.lololimit"
193444 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.lolimit"
193445 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.hilimit"
193446 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.hihilimit"
193447 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.alarmvaldeadband"
193448 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.minordevpct"
193449 10.01.2013 14:17:20 808 3608 Info ArchestrA.Visualization.IntouchDataProvider Failed to advise item "facepi.majordevpct"

А вообще, когда я добавил вашу строчку, то в логе она появляется, если только я совсем убираю проверку условия
193483 10.01.2013 14:17:29 808 3608 Info view RVS1: AlarmStatus = 0 !!!
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Чт янв 10, 2013 5:54 pm

kingwsf писал(а):Тега facepi у меня нет.

Вы видите суслика? ;)
kingwsf писал(а):она появляется, если только я совсем убираю проверку условия

М.б. условие никогда не срабатывает :?:
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Чт янв 10, 2013 6:25 pm

Да, действительно не срабатывает!
И непонятно почему! Я вывожу значение поля HiHiStatus и оно "0", но условие не срабатывает.
А если в таблице привязки параметров символа, ставлю не ссылку на поле тега, а просто "0", то срабатывает!
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Чт янв 10, 2013 6:30 pm

"Лёд тронулся!" (О. Бендер)
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Пт янв 11, 2013 12:43 pm

Спасибо, уважаемый генератор!
Я решил проблему, зайдя с другой стороны..
Но почему значение поля HiHiStatus не может сравниться с нулем в скрипте - до сих пор загадка!
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Пт янв 11, 2013 12:45 pm

Возможно, нужны скобки?
IF (NOT HiHiStatus) THEN
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: Не работает проверка условия в скрипте

Сообщение kingwsf » Пт янв 11, 2013 12:54 pm

Нет, со скобками такая же безрадостная картина..
kingwsf
 
Сообщения: 26
Зарегистрирован: Чт янв 10, 2013 3:17 pm

Re: Не работает проверка условия в скрипте

Сообщение Генератор зла » Пт янв 11, 2013 12:58 pm

Тогда надо в отладчике (или ещё как) смотреть состояние переменных HiHiStatus, AlarmState, HiStatus, ....
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm


Вернуться в Wonderware System Platform

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31