PLC自动化汇
关注我们
产生固定频率的脉冲信号,用于指示灯闪烁、设备周期性动作等。工业中最常用的信号发生器之一。
设备运行/故障指示灯
蜂鸣器报警
周期性采样/检测
测试信号源
FUNCTION_BLOCK FB_闪烁信号发生器VAR_INPUT// 控制信号b_使能信号: BOOL; // 输入:使能信号b_手动闪烁: BOOL := FALSE; // 输入:手动触发闪烁// 闪烁参数(可在HMI设置)r_亮的时间: TIME := T#1S; // 输入:信号为ON的时间r_灭的时间: TIME := T#1S; // 输入:信号为OFF的时间b_单次触发: BOOL := FALSE; // 输入:单次闪烁模式END_VARVAR_OUTPUTb_闪烁输出: BOOL; // 输出:闪烁信号b_闪烁指示: BOOL; // 输出:闪烁状态指示i_闪烁计数: INT; // 输出:闪烁次数计数END_VARVARt_亮定时器: TON; // 定时器:亮的时间t_灭定时器: TON; // 定时器:灭的时间b_当前状态: BOOL; // 内部:当前闪烁状态i_计数缓存: INT := 0; // 内部:闪烁计数b_单次完成: BOOL; // 内部:单次闪烁完成END_VAR
// == 闪烁控制逻辑 ==IF b_使能信号 OR b_手动闪烁 THENIF b_单次触发 AND b_单次完成 THEN// 单次模式且已完成,停止闪烁b_闪烁输出 := FALSE;b_当前状态 := FALSE;t_亮定时器(IN:=FALSE);t_灭定时器(IN:=FALSE);ELSECASE b_当前状态 OFFALSE: // 状态0:输出为OFF,等待变为ONb_闪烁输出 := FALSE;t_灭定时器(IN:=TRUE, PT:=r_灭的时间);IF t_灭定时器.Q THENb_当前状态 := TRUE; // 切换到ON状态t_灭定时器(IN:=FALSE);// 计数(从OFF到ON算一次闪烁)i_计数缓存 := i_计数缓存 + 1;// 单次模式检查IF b_单次触发 AND (i_计数缓存 >= 1) THENb_单次完成 := TRUE;END_IF;END_IF;TRUE: // 状态1:输出为ON,等待变为OFFb_闪烁输出 := TRUE;t_亮定时器(IN:=TRUE, PT:=r_亮的时间);IF t_亮定时器.Q THENb_当前状态 := FALSE; // 切换到OFF状态t_亮定时器(IN:=FALSE);END_IF;END_CASE;END_IF;ELSE// 禁用状态b_闪烁输出 := FALSE;b_当前状态 := FALSE;t_亮定时器(IN:=FALSE);t_灭定时器(IN:=FALSE);i_计数缓存 := 0;b_单次完成 := FALSE;END_IF;
// == 输出处理 ==b_闪烁指示 := b_使能信号 OR b_手动闪烁;i_闪烁计数 := i_计数缓存;// == 高级功能:占空比控制 ==VAR_INPUTr_占空比: REAL := 50.0; // 输入:占空比(0-100%)r_闪烁周期: TIME := T#2S; // 输入:总周期时间END_VAR// 如果提供占空比和周期,可以自动计算亮灭时间IF r_占空比 > 0.0 AND r_闪烁周期 > T#0S THENr_亮的时间 := r_闪烁周期 * (r_占空比 / 100.0);r_灭的时间 := r_闪烁周期 - r_亮的时间;END_IF;END_FUNCTION_BLOCK
// 1. 标准闪烁模式fb标准闪烁(b_使能信号 := b_设备运行,r_亮的时间 := T#0.5S,r_灭的时间 := T#0.5S,b_闪烁输出 => b_运行指示灯);// 2. 快速报警闪烁fb报警闪烁(b_使能信号 := b_设备故障,r_亮的时间 := T#0.2S,r_灭的时间 := T#0.2S,b_闪烁输出 => b_故障指示灯);// 3. 单次确认闪烁fb单次闪烁(b_使能信号 := b_按钮按下,b_单次触发 := TRUE,r_亮的时间 := T#0.1S,r_灭的时间 := T#0.1S,b_闪烁输出 => b_确认指示灯);
状态切换:两个状态(ON/OFF)清晰明了
参数灵活:亮灭时间可独立设置
多种模式:支持连续、单次、占空比控制
计数功能:可统计闪烁次数
学习PLC编程是一场逻辑思维与工程实践的深度结合。沉下心来,从每一个开关、定时器、计数器开始,你终将能搭建出属于自己的自动化大厦。祝你学习顺利!
【🔥 看完别滑走!需要你的支持!】
这篇干货文章花了大量时间整理,如果对你有帮助或启发,请一定:
❶ 「评论区」 留下你的想法➠ 遇到了类似问题?有更好的方法?期待你分享见解!
❷ 「转发」 给更多需要的人➠ 也许你身边的朋友,正被同样的问题困扰!
❸ 「收藏」 随时回看复习➠ 知识点需要反复消化,码住不迷路!
每一次互动都是我们继续创作优质内容的动力!💪感谢有你,一起进步!
分享让更多人看看

点赞
收藏
分享