很多电气工程师第一次接触PLC时,看到密密麻麻的梯形图就头大。继电器电路看得懂,换成软继电器、软线圈、软触点就懵了。其实PLC编程没那么神秘,本质上就是用软件实现原来硬件继电器电路的功能,而且比硬件灵活得多。今天就把PLC编程的学习路径给大家理清楚。
先搞清楚PLC是什么。PLC全称可编程逻辑控制器(Programmable Logic Controller),就是专门给工业现场用的电脑,但跟我们平时用的台式机笔记本不一样:它抗干扰强、耐温范围宽(一般-20°C到+60°C)、不怕震动、支持各种工业通信协议(Modbus、Profibus、EtherCAT)。核心架构就是:CPU+存储器+输入输出模块。输入模块接传感器(按钮、限位开关、编码器、模拟量),输出模块接执行器(接触器、电磁阀、电机驱动器、指示灯)。
PLC的编程语言有好几种,国际标准IEC 61131-3规定了五种:梯形图(LD)、功能块图(FBD)、结构化文本(ST)、指令表(IL)、顺序功能图(SFC)。不同厂家支持的种类不一样,但梯形图是所有PLC都支持的入门首选。
梯形图(LAD)最接近传统继电器电路,也是初学者的最佳入口。梯形图的基本元素:左母线(电源正极)、右母线(电源负极)、触点(条件,相当于继电器的开关)、线圈(输出,相当于继电器的线圈)、指令框(功能,比如定时器、计数器、比较器)。触点分常开(| |,条件成立时导通)和常闭(|/|,条件不成立时导通)。线圈是输出点,前面的触点逻辑成立时线圈得电,对应的输出点置1。定时器TON指令:条件满足后开始计时,计时达到设定值时输出置1,常用于延时启动。计数器CTU:每来一个脉冲加1,达到预设值时输出置1,常用于计数、产线节拍统计。
举个简单例子:一个电机启动/停止控制。硬件上需要:启动按钮(接输入I0.0)、停止按钮(接输入I0.1)、交流接触器线圈(接输出Q0.0)、热继电器常闭触点(接输入I0.2)。梯形图逻辑:左母线→热继电器触点I0.2(常开)→启动按钮I0.0(常开)并联接触器Q0.0(常开,实现自锁)→停止按钮I0.1(常闭)→接触器Q0.0(线圈)→右母线。解释一下:按下启动按钮I0.0接通,Q0.0线圈得电,接触器吸合电机运转;同时Q0.0常开触点接通,实现自锁(松开启动按钮后继续运转);按下停止按钮I0.1(常闭)断开,Q0.0线圈失电,电机停转;热继电器过载断开I0.2,同样能切断电机。这个梯形图逻辑用继电器电路实现也是一样的,只是PLC里用软触点软线圈代替了硬件。
学会梯形图之后,进阶到结构化文本(ST)就很自然了。ST是类似Pascal/Delphi的高级语言,支持IF-THEN-ELSE、FOR循环、CASE语句、函数调用。复杂逻辑(比如PID控制、数据处理、通信协议解析)用ST写比梯形图简洁得多。举个ST例子:刚才的电机控制用ST写就是 Q0.0 := (I0.0 OR Q0.0) AND NOT I0.1 AND I0.2; 。再比如一个定时器+条件判断的例子:IF I0.3 THEN TON1(IN:=TRUE, PT:=T#5S); ELSE TON1(IN:=FALSE); END_IF; Q0.1 := TON1.Q; TON1.Q是定时器计时完成标志,到5秒时TRUE。
选择什么PLC入门?国内用得最多的是西门子和三菱。西门子S7系列(S7-200SMART、S7-1200、S7-1500)配套的STEP 7 MicroWIN SMART和TIA Portal博途软件,编程环境友好、资料多。三菱FX系列(FX3U、FX5U)配套GX Works3软件,日系厂商逻辑更简洁直观。免费的学习方案:下载官方编程软件(西门子STEP 7 Basic免费、三菱GX Works3学习版免费),配合仿真功能(TIA Portal的PLCSIM、GX Works3的GX Simulator),不用买硬件就能学编程。另外有个叫OpenPLC的开源项目,能在普通电脑上模拟PLC运行,适合先跑通概念。
学习建议分三步走。第一步:跟着教程做简单例子,一个按钮控一个灯、两个按钮互锁、定时器延时、计数器清零,这四个练完基本概念就通了。第二步:做小项目,比如电机星三角启动、传送带的启停+定时延时、温度超限声光报警,用梯形图和ST分别写一遍,对比两种方式的优劣。第三步:实际项目,找一个简单设备(比如小型分拣机、包装机)的PLC程序,读代码、改参数、加功能,积累实战经验。
聊几个新手常犯的错误。第一个是"输出逻辑冲突"——同一个线圈在不同程序段被多次赋值,PLC从上往下扫描,后面的覆盖前面的,导致逻辑混乱。解决办法:一个线圈只能在一个地方赋值,其他地方的条件用逻辑运算整合在一起。第二个是"定时器复位不及时"——TON定时器的IN输入断开时不会自动复位输出,要手动复位或者用TOF(延时断开)、TP(单脉冲)。第三个是"没考虑故障状态"——正常流程写完了,但异常情况(急停、断电、传感器超时)没处理,设备一报错就卡死。一定要在程序开头加"急停+安全回路"的总开关,切断所有输出,确保安全。第四个是"注释不够"——写完程序不写注释,过一个月自己再看都看不懂。每个功能块、每个关键变量都要加注释:// 电机启动自锁逻辑,启动按钮I0.0,停止按钮I0.1,输出Q0.0。梯形图上也要给每个触点加说明文字。
最后说句实话:PLC编程入门不难,难的是积累实战经验和规范养成。会写不等于写得好,一个好的PLC程序应该满足三个要求:逻辑正确、注释清楚、故障安全。多写多改多读老程序,半年下来就能独立做小项目了。
上一篇:苹果开启特努斯时代:AI成“头号考题”,下一个增长点在哪?
下一篇:没有了