
1. 先搞清楚这两个案例到底在解决什么实际问题如果你刚开始接触PLC编程看到“电机启停”和“闪烁灯”这两个案例可能会觉得太简单、太基础。但恰恰是这两个案例是理解PLC逻辑控制最核心的“开关”。它们解决的不仅仅是让一个电机转起来、让一个灯闪起来而是帮你建立一套最底层的编程思维如何用程序语言去描述物理世界的“启动-保持-停止”和“周期性动作”。很多人学PLC不动手只看理论结果就是面对一个真实的控制需求时脑子里有一堆指令却不知道从哪里开始接线、画梯形图。杨小飞老师这两个案例之所以经典就是因为它们剥离了复杂的工艺直击本质案例一电机启停核心是理解“自锁”OR自锁。它解决的是“如何用一个瞬间的按钮信号去维持一个持续的输出状态”。这是所有保持型控制的基础比如一台设备运行、一个阀门打开、一个指示灯常亮背后都是这个逻辑。案例二闪烁灯核心是理解“定时器T的交替计时”。它解决的是“如何让输出按照固定的时间周期自动循环通断”。这是周期性动作的基石比如报警灯闪烁、设备间歇运行、巡检周期触发都离不开这个模式。所以这篇文章不是给你一堆指令表而是带你亲手搭建这两个逻辑并讲清楚每一个触点、线圈、定时器为什么必须这么放。我会假设你手边有一套PLC硬件三菱FX系列或西门子S7-200 SMART这类入门机型或者一个仿真软件如GX Works2的仿真器我们从头开始接线、编程、调试。2. 动手前的准备软硬件环境与核心概念对齐在动手写第一行程序之前必须把“战场”准备好。这里不讲复杂理论只说马上要用的。2.1 你需要准备什么硬件二选一真实PLC如三菱FX3U、FX5U西门子S7-200 SMART欧姆龙CP1E等。这是最好的方式。仿真软件最低成本三菱的GX Works2/3自带仿真器GX Simulator2西门子的STEP 7-Micro/WIN SMART也自带仿真。强烈建议初学者先用仿真软件跑通避免接线错误导致设备问题。软件根据你的PLC品牌安装对应的编程软件。本文以三菱GX Works2为例进行演示因为其梯形图直观仿真器易用。逻辑本身是通用的。核心元件认知就这几个记牢X输入继电器。对应物理按钮、传感器信号。X0就代表接在PLC第0个输入端子上的按钮。Y输出继电器。对应物理接触器、指示灯。Y0就代表从PLC第0个输出端子输出的信号。T定时器。用于计时。T0 K10表示定时器T0设定时间为10单位可能是100ms或1s看PLC型号常用100ms。常开触点-||-。信号通了这个触点就“闭合”。常闭触点-|/|-。信号通了这个触点就“断开”。线圈-( )-。表示输出。前面的逻辑通了这个线圈就“得电”。2.2 案例的物理接线想象非常重要即使你用仿真也要在脑子里接好线电机启停启动按钮常开接X0停止按钮常闭接X1。输出Y0接一个接触器控制电机主回路。闪烁灯一个常开按钮接X2作为总开关。输出Y1接一个指示灯。注意实际停止按钮通常用常闭触点接入PLC这样按钮线断了PLC也会认为停止信号有效更安全。在程序里我们用常闭触点X1来编程。3. 案例一电机启停控制——深入理解“自锁”这个案例的目标是按下启动按钮X0电机Y0运行松开X0电机保持运行按下停止按钮X1电机停止。3.1 梯形图程序与逐行解析我们直接在GX Works2里编写以下梯形图X0 X1 Y0 |--||------|/|------( )--| // 网络1启动与自锁 Y0 | |--||-----------------| END // 程序结束逐行拆解为什么这么写第一行逻辑启动与自锁回路X0常开启动按钮。按下时X0状态为ON触点闭合。X1常闭停止按钮。注意这里是常闭。未按下时X1状态为ON触点闭合按下时X1状态为OFF触点断开。Y0线圈电机输出。当按下X0当前提是X1没被按下常闭闭合电流能流从左母线流经X0、X1到达Y0线圈Y0得电输出。关键来了Y0得电的同时与X0并联的Y0常开触点也闭合了。这时即使你松开了启动按钮X0电流可以从左母线流经这个已经闭合的Y0触点再经过X1继续维持Y0线圈得电。这就是“自锁”也叫自保持。停止动作当按下停止按钮X1其常闭触点断开整个回路被切断Y0线圈失电电机停止。同时并联的Y0触点也断开。此时即使你再松开停止按钮X1触点恢复闭合因为X0和Y0触点都是断开的回路无法导通Y0保持停止状态。必须再次按下X0才能启动。3.2 在仿真中调试与验证光看懂不行必须跑起来看。在GX Works2中写好程序转换F4后启动仿真工具 - 调试 - 模拟开始。打开“软元件监视”窗口强制X0为ON模拟按下启动按钮。你应该立刻看到Y0变为ON并保持。将X0强制为OFF模拟松开按钮Y0应保持ON。强制X1为ON模拟按下停止按钮Y0应立即变为OFF。再将X1置为OFFY0应保持OFF。常见问题与排查现象按下X0Y0不亮。排查首先检查X1的状态。如果你在程序里错误地将停止信号X1写成了常开触点-||-那么在未按下时它是断开的整个回路不通。这是新手最常犯的错误搞混物理接线的常闭按钮与程序中的常闭触点逻辑。现象松开X0后Y0也灭了无法保持。排查100%是自锁线路没接对。检查并联的Y0常开触点是否并在了正确的位置必须与X0并联并且其地址是否正确。现象停止按钮X1不起作用。排查检查X1触点是否用的是常闭-|/|-并且串联在回路中。如果错用成常开或放错了位置就无法切断回路。这个案例务必练到肌肉记忆。它是后续所有复杂逻辑的“原子”。4. 案例二闪烁灯振荡电路——掌握定时器的接力赛这个案例的目标是按下总开关X2指示灯Y1以1秒亮、1秒灭的周期循环闪烁断开X2灯灭。4.1 梯形图程序与逻辑流分析这里用到两个定时器T0和T1实现交替计时。程序如下X2 T1 |--||------|/|------[T0 K10]--| // 网络1T0计时回路 X2 T0 |--||------|/|------[T1 K10]--| // 网络2T1计时回路 X2 T0 T1 |--||------|/|------||------(Y1)--| // 网络3输出灯逻辑 END逻辑流分步解析像看一场接力赛初始状态X2OFF所有定时器未触发Y1OFF。启动X2ON总开关打开。网络1X2通T1的常闭触点初始是通的因为T1未计时完成所以定时器T0开始计时。设定值K10假设定时器单位是100ms则计时时间为10 * 100ms 1秒。网络3此时T0未到时间常闭通T1未到时间常开断Y1不输出灯灭。第一秒灯灭期T0计时进行中...网络3T0常闭仍通T1常开仍断Y1OFF。第一秒到触发翻转T0计时1秒到其状态发生变化T0线圈得电其常开触点闭合常闭触点断开。网络1T0的常闭触点|/|断开T0计时停止。网络2T0的常开触点||闭合T1开始计时同样计1秒。网络3T0的常闭触点断开T1的常开触点尚未闭合Y1状态别急看下一步。第二秒灯亮期T1开始计时。网络3此时T0常闭已断但T1常开已闭合因为T1线圈一得电其常开触点瞬间闭合所以Y1回路导通灯亮这里是个关键点灯亮是由T1的启动瞬间触发的。第二秒到再次翻转T1计时1秒到。T1线圈得电其触点动作。网络2T1的常闭触点断开T1自己停止计时。网络1T1的常闭触点断开但此时T0已停无影响更重要的是T1的常闭触点断开后又为T0的重新启动清除了障碍因为网络1中串联了T1的常闭。网络3T1的常开触点闭合但T0常闭已断Y1回路断开灯灭。同时由于网络1中的T1常闭变回闭合T0又重新开始计时...如此循环形成振荡。4.2 仿真调试与参数调整在仿真中写入程序启动。强制X2为ON。你应该在监视窗口看到T0和T1的当前值交替变化Y1的状态也跟随T1的得电状态周期性ON/OFF。用波形图或时序图功能观察可以清晰看到Y1输出一个完美的方波。如何改变闪烁频率修改定时器设定值K10。例如改为K5则亮0.5秒灭0.5秒。注意两个定时器的设定值K要相等才能形成对称的方波。如果想亮3秒灭1秒那么T0的设定值应为K303秒T1的设定值应为K101秒同时需要调整网络3的输出逻辑可能要用T0的常开来驱动Y1。常见问题与排查现象X2接通后灯常亮或不亮不闪烁。排查检查两个定时器的触点是否用错。核心规则一个定时器的常闭触点去控制另一个定时器的线圈回路同时用自己的常开触点去触发输出或下一个动作。确保T0和T1的常闭触点串联在对方的启动回路中。现象闪烁周期不对。排查第一确认定时器单位时间看PLC手册FX系列普通定时器T0-T199是100ms单位。第二检查设定值K是否正确。第三在仿真中监视定时器的当前值看它是否从0累加到设定值。现象X2断开后灯还闪了一下才停。排查这是因为X2断开时定时器可能正在计时。需要在T0和T1的线圈回路中都串联X2的常开触点如程序所示保证主开关能同时切断两个定时器的“电源”。5. 从案例到实战避坑指南与扩展思路把两个案例独立跑通只是第一步。真正理解是能把它们组合、扩展并应用到实际设备中。5.1 两个经典“坑”与解决方法“双线圈输出”冲突现象在程序的不同位置出现了两个或以上驱动同一个Y线圈的指令。PLC扫描周期最后只会执行最后一个线圈的状态导致逻辑混乱。案例在电机启停程序中如果你又在另一个地方用X3单独去驱动Y0就冲突了。解决一个输出线圈在程序中只应被驱动一次。复杂的控制逻辑应通过中间继电器M进行汇合最后再统一输出给Y。定时器/计数器复位问题现象定时器计时不准或计数器计数累加。案例在闪烁灯案例中如果X2断开后T0和T1的当前值没有清零下次启动时可能从残余值开始计时。解决在定时器/计数器线圈前串联一个常闭触点当需要复位时用RST指令三菱或专门的复位逻辑将其当前值清零。对于简单的启停控制像我们案例中串联X2断开即停止计时通常当前值会归零但最好养成使用复位指令的习惯。5.2 如何将案例组合应用实际项目往往是多个基础逻辑的组合。例如一个带延时启动和闪烁报警的电机控制主逻辑采用案例一的电机启停逻辑X0启动X1停止控制Y0电机。延时启动在启动回路中加入一个定时器T2。按下启动按钮X0后先让T2计时例如5秒T2计时到其常开触点才接通电机Y0的线圈。故障报警假设X10是故障信号常开故障时接通。当X10接通则触发一个类似案例二的闪烁电路用T3、T4驱动报警灯Y10闪烁同时还可以驱动蜂鸣器Y11响。复位增加一个报警复位按钮X11用于复位报警灯和蜂鸣器并复位闪烁用的定时器。这样你就把自锁、定时、振荡三个基本元素用在一个项目里了。5.3 下一步该练什么当你熟练这两个案例后建议按以下顺序深化练习变式练习把电机启停的停止按钮X1从程序中的“常闭”改为“常开”思考物理接线该如何改变程序该如何调整这是理解“常开/常闭”物理与逻辑对应关系的关键。功能扩展给电机启停增加一个“点动”功能X2点动按钮即按下X2时电机转松开就停与自锁逻辑互不干扰。参数化让闪烁灯的亮时间和灭时间可以通过两个数据寄存器D来设定而不是固定的K值。仿真到实物如果条件允许在真实的PLC和指示灯、按钮上复现这两个案例。你会遇到接线松动、电源问题、COM端接错等仿真中遇不到的问题这才是真正的经验。记住PLC编程是“动手”的学问。眼睛看懂了手没动过等于没懂。把这篇文章当作操作手册打开你的软件从建立新工程、编写第一行梯形图、进行第一次仿真监视开始把每一个触点的状态变化、每一条能流的走向都盯明白。这两个案例吃透了后面学习顺序控制、数据处理、通信等高级功能才会有一个坚实可靠的逻辑地基。