Вы находитесь на странице: 1из 1

Блок одноканального широтно импульсного модулятора для ПЛК.

Версия от 21.10.2015.

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

FUNCTION_BLOCK FB15 //ШИМ генератор.


TITLE = 'ШИМ генератор';

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


DutyCucle:REAL:=50.0; //Коэффициент заполнения 0...100[%].
Period:REAL:=10.0; //Период выходного сигнала [с].
Ts:REAL:=0.0; //Шаг дискретизации по времени [с].
END_VAR

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


PWM:BOOL:=FALSE; //Выход ШИМ.
END_VAR

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


CurrentTime:REAL:=0.0; //Текущее время расчета [с].
END_VAR

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


PulseTime:REAL; //Время импульса [с].
END_VAR

//Исходный код.
PulseTime:=Period*(DutyCucle/100.0); //Время импульса.
IF (CurrentTime<PulseTime)
THEN
PWM:=TRUE;
ELSE
PWM:=FALSE;
END_IF;
CurrentTime:=CurrentTime+Ts; //Период.
IF (CurrentTime>=Period)
THEN
CurrentTime:=0.0;
END_IF;

END_FUNCTION_BLOCK

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

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

Вам также может понравиться