Здравствуйте!
Помогите, пожалуйста, решить проблему. Написал блок в Codesys 2.3 для ПЛК. В нем какая то загвоздка с присвоением "Temp_Prev := Temp_Curr;"
При выполнении этого присвоения у Temp_Prev сохраняется прошлое значение. Переменные Temp_Prev и Temp_Curr обе глобальные. Подскажите в какую сторону копать?
Код:
(*Данный блок выполняется 1 раз при завершении времени таймера отсчета ступени.
Далее он может повторно выполняться при условии, что разница температур была больше 45 градусов.
Условием для повторного выполнения будет сигнал с дополнительного таймера включения с отсчетом 1 час*)
IF Exec_trig THEN
delT := Temp_Curr - Temp_Prev;
IF delT < ust_delT THEN
(*Если разница температур меньше 45 градусов, то подаем сигнал на увеличение ступени на 1 и сбрасываем таймер отсчета ступени*)
StepUp := TRUE;
ResetTimer := TRUE;
ExtraTimer_On := FALSE;
ELSE
(*В противном случае присваиваем текущее значение температуры предыдущему и запускаем таймер повторного выполнения блока спустя 1 час*)
Temp_Prev := Temp_Curr;
StepUp := FALSE;
ResetTimer := FALSE;
ExtraTimer_On := TRUE;
END_IF
ELSE
(*Если нет сигнала на выполнение, то обнуляем подъем ступени и сброс таймеров*)
StepUp := FALSE;
ResetTimer := FALSE;
END_IF