音乐喷泉,三菱plc程序音乐喷泉。 功能:启动开关SB1为ON时,LED指示灯依次循环显示1→2→3...→8→1、2→3、4→5、6-7、8→1、2、3→4、5、6→7、8→1→2....,模拟流水状态。 SB1为OFF,LED灯关闭。 提供学习使用,008。
最近在车间折腾一个音乐喷泉模型,用三菱FX3U PLC控制LED流水灯效果。别看只是几个小灯,要实现那种踩着音乐节拍变化的灯光节奏,程序里的小机关可不少。
先上主程序骨架:
LD M8000 // 上电初始化 MOV K0 D100 // 模式计数器清零 LD X0 // 启动开关SB1 OUT M0 // 主运行标志 ANI X0 OUT M1 // 停止标志 LD M0 CALL P0 // 运行主流程 LD M1 ZRST Y000 Y007 // 关闭所有LED这段代码的精髓在M8000这个特殊继电器,PLC一上电就自动置位,省去了手动复位的麻烦。D100作为模式寄存器,负责记录当前灯光特效的进度。
灯光特效的核心是循环移位指令,搭配定时器做出节奏感:
// 单灯流水模式 LD T0 K50 // 50ms定时器 RORP D0 K1 // 循环右移 MOV D0 K4Y000 // 输出到Y0-Y7 // 双灯追逐模式 LD T1 K30 ROL D1 K2 MOV D1 K4Y000 // 四灯爆破模式 LD T2 K100 MOV H0F0 K4Y000 // Y0-Y3亮 MOV H0F00 K4Y000 // Y4-Y7亮RORP指令在这里玩出了花样,通过改变移位位数和方向,配合不同定时器的节奏参数,就能搞出单灯追逐、双灯并进这些花式效果。H0F0这样的十六进制数直接控制灯组,比单个点动利索多了。
模式切换是重头戏,用比较指令搭了个状态机:
LD M0 CMP D100 K0 = M10 // 模式1 CMP D100 K100 = M11 // 模式2 ... // 模式计数器自增 LD T4 INC D100每完成一个灯光周期,T4计时器就推着D100往前走一步。K0到K100这些设定值就像乐谱里的节拍记号,控制着灯光秀的章节切换。实际调试时发现,把K值设为斐波那契数列能让过渡更自然,这大概就是数字世界的节奏美学吧。
玩到最后,给急停功能加了个小彩蛋:
LD X1 // 急停按钮 ALT M100 // 切换特效模式这个ALT指令用得妙,按一下急停反而触发特殊灯光效果,把安全隐患变成演出亮点。当然实际工程可不能这么搞,但在这个玩具项目里,这种小叛逆反而增加了可玩性。
调完程序那天,看着八盏LED跟着老旧的《蓝色多瑙河》节奏明明灭灭,突然觉得PLC编程就像指挥交响乐——MOV是定音鼓,ROR是小提琴,CMP则是指挥棒。下次准备把水流电磁阀也接进来,让真正的喷泉跟着代码起舞,那才是硬核的机电交响曲呢。