每周一个编程小例子:使用 PLC 程序让灯光呼吸
引言
在现代工业自动化和智能家居中,灯光不仅仅是照明的工具,它还可以用来传递信息和增加视觉效果。呼吸灯效果,即通过逐渐增强和减弱亮度来模拟呼吸的光效,近年来广泛应用于设备状态指示和装饰性照明。本文将介绍一个实现呼吸灯效果的 PLC 程序,通过简单易懂的代码,使您能够快速了解其原理与应用。
1 程序代码及介绍
下面是完整的 PLC 程序代码(代码基于 CodeSys 平台的 ST 语言):
- FUNCTION_BLOCK FB_BreathingLight
- VAR_INPUT
- Enable : BOOL; // 使能
- CycleTime : UDINT := 4000; // 呼吸周期
- MinBrightness : INT := 10; // 最小亮度
- MaxBrightness : INT := 90; // 最大亮度
- END_VAR
- VAR_OUTPUT
- PWM_Output : INT; // PWM输出值(0-100)
- LightOn : BOOL; // 灯亮状态
- END_VAR
- VAR
- Timer : TON; // 定时器
- Direction : BOOL; // 方向 TRUE=渐亮 FALSE=渐暗
- CurrentBrightness : INT := MinBrightness;
- END_VAR
- // 应用:设备状态指示、呼吸灯效果
- IF Enable THEN
- Timer(IN := TRUE, PT := UDINT_TO_TIME(CycleTime));
- IF Timer.Q THEN
- // 更新亮度
- IF Direction THEN
- CurrentBrightness := CurrentBrightness + 1;
- IF CurrentBrightness >= MaxBrightness THEN
- Direction := FALSE;
- END_IF
- ELSE
- CurrentBrightness := CurrentBrightness - 1;
- IF CurrentBrightness <= MinBrightness THEN
- Direction := TRUE;
- END_IF
- END_IF
- Timer(IN := FALSE);
- END_IF
- PWM_Output := CurrentBrightness;
- LightOn := (CurrentBrightness > 0);
- ELSE
- PWM_Output := 0;
- LightOn := FALSE;
- CurrentBrightness := MinBrightness;
- Direction := TRUE;
- END_IF
2 程序功能分析
2.1 变量介绍
这个功能块 FB_BreathingLight 实现了一个简单的呼吸灯效果。它包括以下几个输入和输出变量:
输入变量:
-
Enable: 用于启动或停止呼吸灯效果的使能开关。
-
CycleTime: 控制灯光呼吸的周期时间(单位为毫秒)。
-
MinBrightness 和 MaxBrightness: 分别定义了灯光的最小和最大亮度。
输出变量:
-
PWM_Output: PWM 输出值,用于控制灯光亮度(范围从 0 到 100)。
-
LightOn: 指示灯是否亮起的状态。
2.2 工作原理
程序利用定时器 Timer 来控制亮度的变化。每当定时器超时后,程序将根据当前的亮度变化方向(Direction)调整亮度值 CurrentBrightness。当亮度达到最大或最小值时,程序会反转变化方向,从而产生呼吸效果。
3 应用场景
该程序可以广泛应用于多个场景,如:
设备状态指示:通过呼吸灯效果来表示设备的工作状态,例如正常工作、故障或待机状态。
装饰性照明:在家居或商业环境中,使用呼吸灯效果增加视觉吸引力。
警示灯:在需要引起注意的情况下,通过渐变亮度的灯光吸引用户关注。
4 拓展思考
随着智能家居和物联网的发展,灯光控制的智能化程度越来越高。未来的呼吸灯效果可以结合环境传感器,实现根据周围环境变化自动调节亮度的智能灯光。此外,利用蓝牙或 Wi-Fi 技术,可以实现远程控制和定时设置,让灯光效果更加个性化和人性化。
总结
通过本文的介绍,我们了解到如何使用 PLC 编写一个简单的呼吸灯效果程序。该程序不仅具有实用价值,还能为我们的产品增添视觉美感。希望这篇文章能够帮助您更好地理解并应用呼吸灯效果,为您的项目增添亮点。
你来出题 我来答


欢迎大家在评论区提一些标准功能块的需求,如果合适,我们会在以后的文章中与大家分享。
往期回顾
每周一个编程小例子 :Bit 到 Word 转换的两种实现方案对比
每周一个编程小例子:PID 控制算法在 PLC 系统中的实现与应用
每周一个编程小例子:PLC 波形生成器 (正弦 方波 三角波)
2026年4月


