You are on page 1of 2

Блок численного дифференцирования по времени с фильтрацией для ПЛК.

Версия от 30.09.2015.

1. Исходный код на языке структурированного текста IEC 61131-3.

FUNCTION_BLOCK FB4 //Производная с фильтром W(s)=(K*s)/(Tf*s+1).


TITLE = 'Производная с фильтром';

VAR_INPUT //Входные переменные, сохраняемые.


X:REAL:=0.0; //Входной сигнал.
K:REAL:=1.0; //Коэффициент передачи.
Tf:REAL:=1.0; //Постоянная времени фильтра [с].
Ts:REAL:=0.0; //Шаг дискретизации по времени [с].
END_VAR

VAR_OUTPUT //Выходные переменные, сохраняемые.


Y:REAL:=0.0; //Выходной сигнал.
END_VAR

VAR //Внутренние переменные, сохраняемые.


XPrevios:REAL:=0.0; //Предыдущее значение входа.
END_VAR

//Исходный код.
IF (Tf=0)
THEN
Y:=0.0;
ELSE
Y:=Y*(1.0-(Ts/Tf))+(K/Tf)*(X-XPrevios);
END_IF;
XPrevios:=X;

END_FUNCTION_BLOCK

2. Протестирован на SIEMENS SIMATIC S7-300.

Страница 1 из 2
3. Вывод уравнений.

4. Блок схема.

Где

Страница 2 из 2

You might also like