Тогда всё проще. Надо определить порог значимого изменения и запоминать время, когда такое изменение накапливается. А дальше это время сравнивать с текущим, и если оно, скажем, больше 30 сек, то производить нужные вам действия. Как-то так:
Код:
thrs, cur, last: REAL;
lastTimeStamp: TIME;

IF ABS(last - cur) > thrs THEN
	last := cur;
	lastTimeStamp := TIME();
END_IF

IF TIME() - lastTimeStamp > T#30s THEN
	whatever;
END_IF