刚学 PLC 那会儿,总觉得 “指令”“逻辑” 这些词特抽象,直到上手做了跑马灯 —— 看着指示灯按自己写的程序一步步亮起来,突然就懂了定时器、移位指令到底咋用。其实跑马灯是新手入门的 “绝佳跳板”,逻辑不复杂,效果还直观,跟着练一遍,既能摸透基础指令,又能找到编程的乐趣。一、输出和输入配置 新手不用一开始就纠结 “必须接实物”,两种方式都能练手:
输出端:要么用 PLC 的 Y0~Y7 接 8 个指示灯;要么直接在 GX Works2 里用软元件模拟 ,我刚开始怕接错线,先模拟跑通了逻辑,再拆了旧电路板上的灯来试实物,既安全又有成就感。
控制端:实物的话,找两个按钮接 X0(启动,常开)和 X1(停止,常闭)就行,按下 X0 程序跑,按 X1 就停;模拟更简单,在监控界面直接点 X0 “置位”、X1 “复位”,不用拧螺丝接线,适合快速试错。
二、程序核心逻辑 说穿了就三步:用定时器定好 “亮灯间隔”(比如 1 秒换一个灯),用计数器记着 “换了多少次灯”(8 次就从头来),再用移位指令把 “亮灯信号” 从 Y0 传到 Y7,就像排队传东西,定时器是 “传的节奏”,计数器是 “传几圈重置”,逻辑顺了,程序就好写了。三、完整梯形图程序(分步骤解析)1. 启动/停止控制:先搭个开关 我一开始没加这个保持电路,按 X0 时灯能跑,手一松就停,后来才明白 M0 是 “运行使能”—— 按 X0 让 M0 置 1 并保持,程序就一直跑;按 X1 让 M0 复位,所有灯都灭,相当于给程序装了个 “总开关”,安全又方便。2. 定时器控制(1秒间隔) 新手容易搞混 “定时器时基”,比如 T0 是 100ms 单位,想让灯 1 秒换一次,就得设 K10(10 个 100ms)。我之前误设成 K1,结果灯闪得飞快,后来改了 K 值才正常 —— 记住 “时基 ×K 值 = 实际时间”,调速度就靠改 K 值。3. 计数器控制(8次循环复位) 8 个灯要循环,就得让计数器记够 8 次就重置。比如 C0 计到 8,说明 Y0 到 Y7 都亮过了,这时候让 C0 自己复位,下一次移位就又从 Y0 开始 —— 我刚开始忘加复位,结果灯跑到 Y7 就停了,加上这个回路才实现循环。4. 移位指令(指示灯依次点亮) SFTL:左移位指令;M2:移位数据源(初始“1”);Y0:移位目标首地址;K8:共8个目标位(Y0~Y7);K1:每次移1位;这里要注意:移位得有 “初始信号”,第一次 T0 动作时,M2 的 “1” 移到 Y0,Y0 亮;第二次移到 Y1,Y1 亮…… 我之前没加初始置位,结果灯全不亮,查了半天才发现是数据源没信号。 - 功能:第一次T0触发:M2=1移到Y0 → Y0亮,其余Y1~Y7灭;第二次T0触发:“1”移到Y1 → Y1亮,Y0灭;……第八次T0触发:“1”移到Y7 → Y7亮,Y6灭;第九次T0触发:C0计数到8并复位,“1”重新移回Y0 → 循环开始。5. 停止时LED熄灭 不用一个个复位 Y0~Y7,直接用 M0 的常闭触点批量复位: - 功能:停止时使用批量复位指令复位所有指示灯,避免指示灯点亮错乱。 6.模拟效果
学会基础款后,试试这些小改动,成就感会更强:
调速度:想让灯闪快点就改 T0 为 K5(0.5 秒),想慢就改 K20(2 秒),我试过 K50(5 秒),慢得像 “呼吸灯”,也挺有意思;
改路数:比如只接 5 个灯,就把 SFTL 的 K8 改成 K5,计数器 C0 的 K8 也改成 K5—— 记住 “两处 K 值要同步”,不然会出错;
反向跑马:把 SFTL(左移位)换成 SFTR(右移位),灯就从 Y7 往 Y0 跑,我第一次改的时候,看着灯倒着亮,突然就懂了 “左右移位” 的区别。
大家动手试试吧!我刚开始写的时候,也犯过 “数据源设错”“计数器忘复位” 的错,后来对着程序一步步查,慢慢就摸透了。如果遇到问题,欢迎在评论区聊,PLC编程这事,多试多错才学得快。
结语:跑马灯看着简单,却藏着 PLC 编程的 “基本功”:定时器控时间、计数器控次数、移位指令控顺序。我当初就是靠这个案例,从 “分不清指令” 到能独立改程序,后来学电机控制、温控的时候,都觉得顺手多了。新手不用怕难,先把这个程序练熟,跟着灯的节奏理逻辑,慢慢就会发现:PLC 编程其实没那么抽象,反而很有意思。
以下相关文章也可以参考参考: