3、PLC编程入门:PLC工作原理、梯形图基础、LD与FBD语言对比
各位同学,今天咱们聊聊PLC编程入门。说实话,很多刚入行的朋友一听到PLC就觉得是“硬核工业设备”,其实没那么玄乎。我当年第一次接触PLC时,也觉得这东西跟天书似的,后来摸透了原理,发现它就是个“工业大脑”,逻辑清晰得很。
3.1 PLC工作原理:循环扫描,别想偷懒
PLC的工作方式,说白了就是“一遍又一遍地重复做三件事”。哪三件?读输入、跑程序、写输出。这叫“循环扫描”,也叫“周期扫描”。
我习惯用一个比喻来解释:PLC就像一个敬业的保安,每秒钟绕着工厂巡逻好几圈。每圈都做同样的事——先看看门口有没有人按门铃(读输入),然后根据规则决定要不要开门(执行程序),最后决定开门还是关门(写输出)。
具体来说,一个扫描周期包含三个阶段:
- 输入采样阶段:PLC一次性把所有输入信号(按钮、传感器等)的状态读入内存,存到“输入映像区”。
- 程序执行阶段:CPU从上到下、从左到右执行用户程序,结果存到“输出映像区”。
- 输出刷新阶段:把输出映像区的数据一次性送到输出模块,驱动继电器、电磁阀等设备。
关键点:整个扫描周期内,输入信号的状态是“冻结”的。也就是说,程序执行过程中,即使外部输入变了,PLC也不会理睬,直到下一个周期才会重新读取。这一点在写程序时特别重要,我踩过坑,后面会讲。
扫描周期有多快?一般几毫秒到几十毫秒。对于大多数工业场景,这个速度完全够用。但如果你做高速计数或运动控制,就得小心了——PLC的扫描周期可能成为瓶颈。
3.2 梯形图基础:从继电器电路到PLC程序
梯形图(Ladder Diagram,简称LD)是PLC最经典的编程语言。为什么叫“梯形图”?你想想看,它长得就像梯子——左右两条竖线是电源轨,中间横线是逻辑行。
梯形图的核心思想,就是把传统的继电器控制电路“翻译”成PLC能理解的图形语言。我刚开始学的时候,老师就说了一句话:“你会看继电器电路图,就会写梯形图。” 嗯,这话有点夸张,但道理没错。
咱们看一个最简单的例子:一个启动按钮(常开触点)控制一个指示灯。
|----[ 启动 ]----------------( 指示灯 )----|
| |
这个梯形图的意思是:当“启动”按钮按下(触点闭合),电流从左流到右,“指示灯”线圈得电,灯亮。松开按钮,触点断开,灯灭。
梯形图的基本元素就三种:
- 触点(Contact):代表输入信号,有常开(-] [-)和常闭(-]/[-)两种。
- 线圈(Coil):代表输出信号,用-( )-表示。
- 连线:表示逻辑连接,电流从左向右流动。
我的经验:写梯形图时,记住一个原则——“左重右轻”。复杂的逻辑放在左边,简单的输出放在右边。这样程序可读性高,也方便调试。我曾经见过一个同事把所有逻辑堆在一行里,结果查故障查了三天……
再来看一个自锁电路(启动后保持运行):
|----[ 启动 ]----[ 停止 ]----( 电机 )----|
| | |
| +----[ 电机 ]---------------------|
这个电路里,“电机”线圈的常开触点并联在“启动”按钮上。按下启动按钮,电机得电,同时电机触点闭合,即使松开按钮,电流也能通过电机触点继续流通。按下“停止”按钮(常闭触点),电路断开,电机停止。
嗯,这里要注意:梯形图中的“停止”按钮通常用常闭触点。为什么?因为这样即使按钮线断了,系统也会自动停机,符合安全原则。我在项目中遇到过因为用了常开触点导致急停失效的情况,差点出事故。
3.3 LD与FBD语言对比:图形化编程的两大流派
梯形图(LD)和功能块图(FBD)是PLC编程中最常用的两种图形化语言。它们各有千秋,我根据自己的使用经验做个对比。
| 对比维度 | 梯形图(LD) | 功能块图(FBD) |
|---|---|---|
| 起源 | 继承继电器控制电路 | 继承数字逻辑电路 |
| 逻辑表达 | 触点串联/并联表示与/或 | 功能块连线表示逻辑关系 |
| 可读性 | 电气工程师容易上手 | 软件工程师更容易理解 |
| 复杂运算 | 比较吃力,需要大量中间变量 | 直接调用数学/逻辑功能块,简洁 |
| 调试方便性 | 在线监控直观,电流流向清晰 | 数据流清晰,但信号路径多时容易乱 |
| 典型应用 | 开关量控制、顺序控制 | 模拟量处理、PID控制、数据运算 |
说白了,梯形图更适合做“开关逻辑”——启动、停止、互锁、顺序控制这些。功能块图则更适合做“数据处理”——把传感器信号经过运算后输出控制量。
我个人的习惯是:控制逻辑用LD,数据处理用FBD。比如一个电机控制程序,启停逻辑用梯形图写,电流检测和过载保护用功能块图写。这样各取所长,程序既清晰又高效。
避坑指南:我曾经在一个项目中,用梯形图写了一个复杂的数学运算,结果程序又长又难懂,调试花了两天。后来改成FBD,半小时搞定。反过来,我也见过有人用FBD写简单的启停逻辑,结果功能块连线绕来绕去,还不如梯形图三行搞定。所以,选对语言很重要。
最后,用一张图总结一下本章的知识体系:
这张图把本章的三个核心内容串起来了:PLC的工作原理是基础,梯形图是入门工具,LD与FBD的对比帮你选对语言。三者缺一不可。
给新手的建议:先别急着学FBD,把梯形图玩熟了再说。梯形图是PLC的“普通话”,几乎所有PLC都支持。等你用梯形图写过几十个程序,再学FBD,你会发现很多概念是相通的。
好了,这一章就到这里。记住:PLC编程不是写代码,而是画逻辑。把逻辑理清了,程序自然就出来了。