Вопрос по циклу

Вопросы, не попадающие в другие разделы.

Вопрос по циклу

Сообщение ingram » Чт янв 27, 2011 10:35 am

Мне нужен цикл пока пока не выполнится условие типа Do While а щас у меня
FOR i = 1 TO 10000000
IF Arj-Day_N== Arj-Ust-Day AND Arj-Hour_N== Arj-Ust-Hour THEN
YES = 1;
EXIT FOR;
ENDIF;

NEXT;

это вешает проект пока он проверяет кто знает как мне помочь не вешать проект чето мысли у меня кончились помогите
ingram
 
Сообщения: 57
Зарегистрирован: Пн янв 24, 2011 6:49 am

Re: Вопрос по циклу

Сообщение Klinkmann_Msk » Чт янв 27, 2011 10:49 am

ingram писал(а):Мне нужен цикл пока пока не выполнится условие типа Do While а щас у меня
FOR i = 1 TO 10000000
IF Arj-Day_N== Arj-Ust-Day AND Arj-Hour_N== Arj-Ust-Hour THEN
YES = 1;
EXIT FOR;
ENDIF;

NEXT;

это вешает проект пока он проверяет кто знает как мне помочь не вешать проект чето мысли у меня кончились помогите

You can avoid pausing other run-time processes by placing the FOR loop in an asynchronous QuickFunction. :wink:
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Re: Вопрос по циклу

Сообщение ingram » Пт янв 28, 2011 2:57 am

You can avoid pausing other run-time processes by placing the FOR loop in an asynchronous QuickFunction. :wink:[/quote]

Да но это и есть QuickFunction тоесть у меня для считывания отчетов 3 функции в этой он проверяет выставлены ли теги OPC в регистры просто мне интересно если еще цикл в InTouch кроме For или опешите по подробнее как перебросить эту проверку в QuickFunction так чтоб не вешала ? спасибо
ingram
 
Сообщения: 57
Зарегистрирован: Пн янв 24, 2011 6:49 am

Сообщение Spaun » Пт янв 28, 2011 4:02 am

В окне этой QuickFunction - Options - галочка на Asynchronous.
Spaun
 
Сообщения: 105
Зарегистрирован: Вс ноя 29, 2009 10:35 am

Re: Вопрос по циклу

Сообщение skom » Пт янв 28, 2011 7:08 pm

ingram писал(а):Мне нужен цикл пока пока не выполнится условие типа Do While а щас у меня
FOR i = 1 TO 10000000
IF Arj-Day_N== Arj-Ust-Day AND Arj-Hour_N== Arj-Ust-Hour THEN
YES = 1;
EXIT FOR;
ENDIF;

NEXT;

это вешает проект пока он проверяет кто знает как мне помочь не вешать проект чето мысли у меня кончились помогите

Осторожнее с такими циклами, кстати в интаче есть таймаут по истечении которого он выходит сам из цикла, даже если не все итерации проведены. Этот параметр можно поменять то ли в InTouch.ini, то ли в каком-то другом конфигурационном файле.
Я бы подобные вещи делал совсем другим способом — скриптами по условию.
skom
 
Сообщения: 173
Зарегистрирован: Вт окт 02, 2007 5:25 pm

Сообщение Useful » Чт мар 03, 2011 9:29 am

как подсказывает личный опыт, такие задачи имеют более простое решение. Задачу "в студию" и ,может, поможем найти более приемлемое решение.
Useful
 
Сообщения: 64
Зарегистрирован: Чт мар 18, 2010 5:21 pm

Сообщение ingram » Пн мар 21, 2011 5:46 am

Useful писал(а):как подсказывает личный опыт, такие задачи имеют более простое решение. Задачу "в студию" и ,может, поможем найти более приемлемое решение.



Ну как бы сама задача ( Необходимо записать в базу данных 3 отчета 2-х часовой сменный и суточный они записываются по истечению 2 часов , 12 часов , 24 часов только при записи необходимо запросить в контроллере нужный отчет весь обмен идет по MODBUS через сервер OPC то есть он запрашиваемый отчет выставляет не сразу а по истечению нескольких секунд вот в цикле проверка выставил ли он нужный отчет ) собственно вот и все если цикл стоит в InTouch.ini я написал чтоб предел цикла 15 секунд то все ок но иногда вылетает из цикла по истечению времени но в базу ложится все ровно при этом инточ просто виснет на цикл а по DataChange делать не удобно
ingram
 
Сообщения: 57
Зарегистрирован: Пн янв 24, 2011 6:49 am


Вернуться в Другое

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

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