Сообщение от
cad555
у меня одни переменные меняются в течение одного цикла и влияют на условия вызова фб со считыванием времени , а в слудующем цикле переменные уже приняли другие значения а фб еще не отработал. а на второй проход он уже не вызывается.
Правильно ли я понял, что вы говорите о конструкции типа:
Код:
IF условия THEN
считать системное время
если системное время считано и равно (или больше/меньше/не равно) заданному, то сбросить ФБ и выполнить нужные действия
END_IF
Если речь об этом - то вы пытаетесь заставить блок выполняться по уровню, но, как уже упоминалось, он запускается по фронту.
Т.е. просто вызывайте его в стиле:
Код:
// выносим запуск ФБ за пределы IF ... END_IF
dtugt(xExecute:=( условие1 AND условие 2 и т.д.) );
IF dtugt.xDone
// забираем dtDateAndTime
END_IF
Еще раз уточню, что забирать время с выхода блока можно только в тот цикл, когда xDone=TRUE (т.е. блок успешно завершил работу).