Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт мар 29, 2024 16:02

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 25 сообщений ]  На страницу Назад  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Чт окт 15, 2009 13:50 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
У тебя цикл никак не может завершится вот комп и зависает, т.е. кажется что зависает, на самом деле скрипт грузит на 100% процессор компа. Запусти диспетчер задач и увидишь. Вообще он здесь не нужен. Ну и когда используешь циклы нужно быть уверенным что он обязательно закончится, или предусматривать выход.

цикл здесь совсем не нужен
text_1 ={*****}
IF t_1THEN
text_1 ={1}
ENDIF
IF t_2 THEN
text_1 ={2}
ENDIF

{текст} вроде применяют для каких-то особых случаев, обычно "текст".


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Чт окт 15, 2009 14:17 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Я разобрался, что к чему у меня было неправильно поставлено 1 - ое условие входа в цикл и так же после LOOP уже ничего не должно быть, а также сделал досрочные выходы из цикла.
Всем спасибо за помощь!!!!!!!

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Пн окт 19, 2009 16:57 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Подскажите, можно ли сделать так чтобы при Аlarms разбитых на группы.
В случае возникновения аварии в какой - либо группе, допустип сигнализировал элемент указывающий на данную группу(например прямоугольник мигал), как можно сделать выборку аварий??

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Пн окт 19, 2009 18:55 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
приходилось сталкиваться с подобным, ничего лучьше придумать не смог.
Код:
InitArray(Alarm,0)

Alarm[1] = IsAlarmActive("ЛЗ_авария_01")
Alarm[2] = IsAlarmActive("ЛЗ_авария_02")
Alarm[3] = IsAlarmActive("ЛЗ_авария_03")
Alarm[4] = IsAlarmActive("Обрыв_уров")
Alarm[5] = IsAlarmActive("Отказ_уров")
Alarm[6] = IsAlarmActive("ПЗ_авария_01")
Alarm[7] = IsAlarmActive("ПЗ_авария_02")
Alarm[8] = IsAlarmActive("ПЗ_авария_03")
Alarm[9] = IsAlarmActive("Уров_пред")
Alarm[10] = IsAlarmActive("Уров_пред1")
Alarm[11] = IsAlarmActive("Связь2")
Alarm[12] = IsAlarmActive("Связь3")
Alarm[13] = IsAlarmActive("Связь4")
Alarm[14] = IsAlarmActive("Связь5")
Alarm[15] = IsAlarmActive("Вода")
Alarm[16] = IsAlarmActive("Вода1")

FOR n=0 to 20
Alarm
=Alarm+Alarm[n]
NEXT 

IF Alarm
> 0 THEN
Alarm_1
.visible( 1 )
ELSE
Alarm_1.visible( 0 )
ENDIF 

т.е. вначале обнуляю массив, потом элементам массива присваиваю статус аварии, и суммирую массив, если больше ноля, значит есть авария.

если аварий в группе много, то скрипт быстрее всего сделать с помощью экселя, скопировав в него и подправив нужную группу аварий.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Ср окт 21, 2009 11:35 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Попробую, сделать таким методом, но только у меня есть авариии созданные в виде булевского массива, т.е я создавал точку типа BOOL с разрядностью 16(целое слово).
А для соответствующей аварии я довал имя точки например:


У вас нет необходимых прав для просмотра вложений в этом сообщении.

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Ср окт 21, 2009 12:10 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
ну и просуммируй в массиве булевые как целые. У меня аварии разных типов и из разных массивов, поэтому делал через имя аварии.

В описание аварии лучше копируй текст сообщения аварии, иначе если приспичит, нужную аварию в списке не сразу найдёшь.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Чт окт 22, 2009 10:27 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
У меня все получилось, спасибо, Вам огромное. В процессе написания у меня возникли несколько проблем, поэтому мне пришлось немного модернизировать код:
Код:
InitArray(Alarm,0)
   Alarm[1] = IsAlarmActive("al_1")
   Alarm[2] = IsAlarmActive("al_2")
   Alarm[3] = IsAlarmActive("al_3")
   Alarm[4] = IsAlarmActive("al_4")
t_1 = 0
FOR n = 1 TO 4 STEP 1
   t_1 = t_1 + Alarm[n]
NEXT

IF t_1 > 0 THEN
   t_2 = true
ELSE
   t_2 = false
ENDIF

где Alarm - массив типа BOLL;
t_1 - переменная для хранения суммы элементов массива Alarm;
t_2 - переменная для привязки элемента на видимость(делал так потому что при visible, компилятор пишет что нет такого объекта на странице????)

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Вт ноя 03, 2009 11:15 
Не в сети
Аватара пользователя

Регистрация: Вт окт 14, 2008 09:13
Сообщения: 46
pavelzii писал(а):
У меня все получилось, спасибо, Вам огромное. В процессе написания у меня возникли несколько проблем, поэтому мне пришлось немного модернизировать код ... компилятор пишет что нет такого объекта на странице????)


Это потому, что ты используешь в скрипте CX-Supervisor Script. А если написать, например, так:
Код:
InitArray(Alarm,0)
   Alarm[1] = IsAlarmActive("al_1")
   Alarm[2] = IsAlarmActive("al_2")
   Alarm[3] = IsAlarmActive("al_3")
   Alarm[4] = IsAlarmActive("al_4")
t_1 = 0
FOR n = 1 TO 4 STEP 1
   t_1 = t_1 + Alarm[n]
NEXT

@VBSCRIPT

IF t_1 > 0 THEN
   alarm_1.visible = true
ELSE
   alarm_1.visible = false
END IF

@ENDSCRIPT


то все будет работать без введения дополнительных переменных на отображение.

_________________
Когда судьба ставит тебе палки в колёса, ломаются лишь негодные спицы. /Авессалом Подводный/


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Сб окт 30, 2010 11:39 
Не в сети
Аватара пользователя

Регистрация: Сб дек 06, 2008 10:45
Сообщения: 83
Откуда: Благовещенск
Подскажите пожалуйста в чем проблема, я уже голову сломал...

Developer V3.0
В скрипте всего одна строчка:
Sys_point_memo[2] = 1


Рунтайм выводит следующую ошибку:
Ошибка VBScript в строке 1, символ1:()
Обработанная ошибка VBScript. □□Sys_point_memo[2]=1□□


В начало
 Профиль  
 
 Заголовок сообщения: Re: Работа со скриптами
СообщениеДобавлено: Вс окт 31, 2010 18:04 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
:D :D :D
для VBScript скобки на указатель массива круглые а не квадратные как в супервайзоре.
Sys_point_memo(2) = 1


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 25 сообщений ]  На страницу Назад  1, 2

Часовой пояс: UTC + 3 часа (Russia: MSK)


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3