PDA

Просмотр полной версии : Ошибка при тестировании программы



Anatol_rus
01.03.2009, 18:14
Есть алгоритм,ему нужно крутонуться в цикле 1001 раз,но уже на 48 круге возникает ошибка((,что она значит и как решить проблему,подскажите пожайлуста))
PrintScreen ошибки прилагается.
Разрабатываю программу на Овен ПЛК 150 У-М,прошивка 2.02

Малышев Олег
01.03.2009, 18:21
срабатывает охранный таймер.
Время цикла ПЛК должно быть меньше отработки POU

Anatol_rus
01.03.2009, 18:29
А как можно это обойти возможно ли его отключить,т.к. контроллер будет работать с медленными объектами,где время не меньше 0.5секунды??
И я чет не пойму ,может цикл плк должен быть больше отработки POU(т.е. моей проги)?

Филоненко Владислав
01.03.2009, 19:07
1 цикл в ПЛК всегда выполняется - глобальный цикл выполнения программы.
Если Вы разобъёте свой 1000 итерационный цикл на 100 10 итерационный, к примеру, всё заработает.
А Watchdog срабатывает через 1 секунду - нет таких задач, к-е бы требовали выполнения в течении 1 секунды и их нельзя было бы прервать и разбить на кусочки.

Anatol_rus
01.03.2009, 19:30
1 цикл в ПЛК всегда выполняется - глобальный цикл выполнения программы.
Если Вы разобъёте свой 1000 итерационный цикл на 100 10 итерационный, к примеру, всё заработает.
А Watchdog срабатывает через 1 секунду - нет таких задач, к-е бы требовали выполнения в течении 1 секунды и их нельзя было бы прервать и разбить на кусочки.

Если я правильно понял просто :
for i := 1 to 100 do
for j := 1 to 10 do
- а здесь делать что мне нужно??
end_for;
end_for;
Я правильно вас понял,и все это выполняется в 1 функциональном блоке.
Если ет не правильно то если не трудно киньте код как разбить чтоб WatchDog не ругался))

Dmitry
04.03.2009, 20:35
Полагаю, имеется ввиду, что вводится

for j := 1 to 100 do
здесь ваши действия, которые в цикле выполняются
end_for;

и за 10 циклов ПЛК получается тоже самое что и

for j := 1 to 1000 do
здесь ваши действия, которые в цикле выполняются
end_for;

естевственно с поправкой по индексу