PLC中,用ST语言制作PWM脉冲程序
平时报警指示灯可以用到PWM脉冲输出,小灯的闪灭速度表示报警是否严重,具体程序如下:
设置变量
主程序
//周期设定,限定在一定的范围内
vd_周期设定 :=LIMIT(10,vd_周期设定,2000);
//设定延时计时器,使其在固定周期内循环触发
FB_PWM定时器(IN:=NOT FB_PWM定时器.Q , PT:=DINT_TO_TIME(vd_周期设定) , Q=>, ET=> );
//注意数据类型的变换,常用数据转换格式DINT_TO_REAL
vr_输出时间 :=vd_周期设定*vr_占空比设定;
vb_输出 := (TIME_TO_REAL(FB_PWM定时器.ET)>0)AND(TIME_TO_REAL(FB_PWM定时器.ET)<vr_输出时间);
参数设置如下:vd_周期设定=1000;
vr_占空比设定=0.5;
监控波形图如下:
梯形波形为vb_输出,两波形之间的时间如右下角所示,总时间为1s5ms,
FB_PWM定时器.Q输出波形如绿色波形图所示,Q点输出后立马复位。