1. 为什么越来越多人开始啃PLC编程这块硬骨头如果你在工厂做过设备维护或者正在往自动化方向转大概率绕不开一个词——PLC。这东西全称叫可编程逻辑控制器说白了就是工业现场的大脑负责接收按钮、传感器这些输入信号再按你写好的逻辑去驱动电机、气缸、指示灯这些执行机构。我最早接触PLC是在一条包装线上当时设备动不动就停老师傅拿着图纸查半天后来发现就是一个小延时参数设错了。从那时候起我就意识到PLC编程入门这件事光看手册没用得动手、得踩坑、得把逻辑跑通。这篇内容我想聊的是一个完全没有编程基础、或者只有一点电工常识的人怎么从零开始把PLC编程这件事啃下来。核心会围绕梯形图、定时器、编程软件这几个关键词展开因为这三样东西基本构成了入门阶段80%的工作量。梯形图是你和PLC对话的主要语言定时器是你实现顺序控制、延时动作的核心工具编程软件则是你写代码、仿真、下载程序的战场。适合谁看设备维护人员、电气助理工程师、自动化专业在校生以及那些想从继电器控制往程序控制转型的老电工。我不打算讲太深的理论重点放在“怎么上手、怎么避坑、怎么把程序跑起来”这三件事上。2. 入门之前先把这几个概念捋清楚2.1 PLC到底在干什么用生活化的例子讲透很多人一上来就被“可编程逻辑控制器”这个正式名字吓住了其实你可以把它想象成一个特别听话的值班员。这个值班员有一张任务清单清单上写着如果一楼按钮被按下就打开一楼灯如果水箱水位低于下限就启动水泵如果传送带上有产品经过就计数加一。PLC干的就是这个值班员的活只不过它的“任务清单”是你用编程软件写进去的程序它的“眼睛耳朵”是输入模块接的传感器和按钮它的“手”是输出模块接的接触器、电磁阀和指示灯。理解这个类比之后很多概念就顺了。输入就是值班员看到或听到的信号输出就是值班员做出的动作程序就是那张任务清单扫描周期就是值班员从头到尾看一遍清单再执行一遍的时间。PLC的扫描周期通常只有几毫秒到几十毫秒所以它反应特别快这也是它比传统继电器控制柜强的地方——继电器逻辑是硬件接线决定的改逻辑得重新接线PLC逻辑是软件写的改逻辑只需要改程序。2.2 梯形图为什么成了入门首选语言PLC编程语言有好几种IEC 61131-3标准里列了梯形图、功能块图、指令表、结构化文本、顺序功能图。但你去现场看看绝大多数搞维护和调试的人第一眼看懂的都是梯形图。原因很简单梯形图的符号和继电器控制电路几乎一一对应。常开触点、常闭触点、线圈、并联、串联这些在电工图纸上怎么画在梯形图里就怎么画。我个人的经验是如果你有电工基础梯形图基本是零门槛上手。比如一个启动停止电路硬件上是一个启动按钮并联一个自锁触点再串联一个停止按钮最后接线圈。梯形图里就是启动触点并联输出线圈的常开触点再串联停止触点最后输出线圈。逻辑完全一样只是从接线变成了画图。这也是为什么我建议新手从梯形图开始而不是一上来就啃结构化文本。梯形图输入与输出的区别这个热搜词其实反映了很多人的困惑输入触点的状态由外部信号决定输出线圈的状态由程序逻辑决定两者在梯形图里的符号和位置都不一样输入在左边输出在右边中间是逻辑条件。2.3 定时器顺序控制的灵魂如果说梯形图是骨架那定时器就是让程序活起来的肌肉。没有定时器的PLC程序基本只能做最简单的组合逻辑比如“按下按钮灯就亮”。但实际项目里大量需要的是顺序逻辑比如“按下启动按钮电机先转5秒然后气缸伸出气缸到位后保持2秒再自动缩回”。这些时间间隔全靠定时器来实现。定时器的本质是一个计数器它数的是PLC内部的时钟脉冲。比如一个100ms精度的定时器你设定值为50那就是50乘以100ms等于5秒。不同品牌的PLC定时器编号和设定方式略有差异但原理都一样。三菱的定时器用T开头西门子的用TON、TOF、TP这些指令欧姆龙的也是T开头。新手最容易犯的错是把定时器的时间基准搞混比如把100ms基准的定时器当成1s基准用结果时间差了10倍。这个坑我后面会详细讲怎么排查。3. 编程软件怎么选、怎么装、怎么避坑3.1 主流PLC品牌对应的编程软件盘点选编程软件这件事本质上取决于你手头有什么PLC或者你打算学哪个品牌。市面上主流的有西门子、三菱、欧姆龙、汇川、信捷、台达这些。每个品牌都有自己的编程软件而且很多品牌不同系列用的软件还不一样。品牌常用系列编程软件特点西门子S7-200 SMARTSTEP 7-Micro/WIN SMART入门友好资料多西门子S7-1200/1500TIA Portal功能强大对电脑配置要求高三菱FX系列GX Works2经典稳定老设备多三菱FX5U/Q系列GX Works3新一代支持更多功能欧姆龙CP/CJ系列CX-Programmer日系风格指令丰富汇川H5U/AM系列AutoShop/InoProShop国产替代热门性价比高信捷XD/XG系列XDPPro小型项目常用上手快如果你是纯新手我建议从西门子S7-200 SMART或者三菱FX系列入手。原因有两个一是这两个系列在二手市场和教学资源里存量巨大你很容易找到便宜的硬件或者仿真环境二是它们的编程软件对电脑要求不高安装也相对简单。热搜词里有人问“works2 编程软件能读fx3u吗”答案是能GX Works2本身就支持FX3U系列但要注意软件版本和连接线驱动。3.2 软件安装的常见坑和解决思路装编程软件这件事说起来简单但实际操作中能卡住一大半新手。我见过太多人卡在安装环节最后以为自己不适合学PLC。其实不是能力问题是环境问题。第一个坑是操作系统兼容性。很多老版本的编程软件比如三菱的GX Developer、西门子的STEP 7 Micro/WIN在Win10/Win11上安装会报错或者装完打不开。解决办法是用兼容模式运行安装程序或者装虚拟机跑Win7。热搜词里那个“三菱老式plc——fx2编程软件 fxgpwin win7_8_10_xp.zip”就是典型的老软件适配问题FX2系列太老了原厂软件在新系统上基本跑不起来只能靠虚拟机或者找第三方兼容工具。第二个坑是依赖组件缺失。Windows系统经常缺一些运行库比如.NET Framework、Visual C Redistributable这些。热搜词里出现的“microsoft visual c 2012 redistributable”就是典型例子很多编程软件安装时提示缺少这个组件去微软官网下载装一下就行。我的习惯是装编程软件之前先把常见的运行库合集装一遍能省很多事。第三个坑是杀毒软件误杀。编程软件里有些驱动文件或者授权管理程序会被杀毒软件当成风险项拦截导致软件装完打不开或者连不上PLC。装的时候先把杀毒软件临时关掉装完再把软件安装目录加到白名单里。注意下载编程软件一定要从官方渠道或者正规代理商那里获取不要随便在网上找破解版。破解版经常带木马或者被篡改轻则软件崩溃重则电脑中招。很多品牌现在都有试用版或者学习版功能足够入门使用。3.3 没有硬件怎么练仿真软件的使用很多人卡在“我想学但不想先花钱买PLC”这一步。其实完全可以用仿真软件先练手。西门子有S7-PLCSIM三菱的GX Works2自带仿真功能汇川的AutoShop也有仿真模式。热搜词里“s7-plcsim advanced v5.0 plc实例为什么启动不了”和“plcsim plc启动不了”说明不少人在用仿真时遇到了问题。仿真启动不了最常见的原因有三个一是仿真软件和编程软件的版本不匹配比如TIA Portal V16配PLCSIM V15基本必挂二是项目里用了仿真不支持的指令或者硬件模块比如某些通信指令、高速计数器指令在仿真环境下无法执行三是授权或者服务没启动PLCSIM依赖一些后台服务服务没起来仿真就起不来。排查的时候先看版本对应关系再看项目里有没有不支持的指令最后检查后台服务状态。4. 梯形图编程的核心逻辑和实操要点4.1 从最简单的启保停电路开始学梯形图第一个要刻在脑子里的电路就是启保停。启动、保持、停止这三个动作构成了绝大多数控制逻辑的基础。硬件电路里启动按钮常开停止按钮常闭输出线圈前面并联一个自己的常开触点实现自锁。梯形图里一模一样启动触点X0常开停止触点X1常闭输出线圈Y0然后在X0两端并联Y0的常开触点。这个电路看起来简单但新手容易犯两个错。第一个错是把停止按钮接成常开结果程序里用常闭触点实际接线和程序逻辑对不上按停止没反应。第二个错是自锁触点并错位置并到了停止触点后面导致自锁失效。我的建议是画完梯形图之后先在纸上把硬件接线图也画一遍两边对照着看确认输入输出的逻辑关系一致。4.2 定时器的正确打开方式定时器在梯形图里的用法不同品牌语法不同但逻辑相通。以三菱FX系列为例定时器T0的设定值是K50时间基准是100ms那实际延时就是5秒。程序里就是一条支路驱动T0线圈T0的常开触点再去驱动后面的输出。这里有个关键点定时器的常开触点在定时器线圈得电后开始计时计时到达设定值后触点动作。也就是说如果你用T0的常开触点去驱动另一个线圈那个线圈会在延时到达后才得电。这个逻辑和继电器时间继电器是一样的。新手最容易踩的坑是定时器时间基准搞混。三菱FX系列里T0到T199是100ms基准T200到T245是10ms基准T246到T255是1ms基准不同型号略有差异。如果你用T200设定K50以为是5秒实际是0.5秒。这个错误在现场调试时特别隐蔽因为程序逻辑看起来没问题就是时间不对。排查的时候先查定时器编号对应的基准再算实际时间。还有一个坑是定时器在子程序或中断里的行为。有些PLC的定时器在子程序里不会正常计时因为子程序只在调用时扫描不调用的时候定时器就停了。如果需要在子程序里做延时得用累计扫描周期的方式自己写计时逻辑或者把定时器放在主程序里。4.3 输入输出点的分配和接线注意事项程序写得好不好一半看逻辑一半看I/O分配。我见过太多项目程序逻辑没问题但I/O分配乱七八糟后期维护的人看得想骂人。好的I/O分配应该遵循几个原则按功能分区、留备用点、输入输出分开编组、高速信号和普通信号分开。比如一个简单的传送带控制输入有启动按钮、停止按钮、光电传感器、急停按钮输出有电机接触器、指示灯、蜂鸣器。分配的时候可以把X0到X7给按钮和传感器Y0到Y7给执行机构每个功能占一个连续的区域。备用点至少留10%因为现场调试时经常需要临时加信号。接线方面热搜词里“西门子plc输入输出接线”是个高频问题。西门子S7-200 SMART的输入是漏型/源型可选的输出有继电器型和晶体管型。继电器型输出可以接交流负载但动作寿命有限频繁通断的场合要用晶体管型。晶体管型输出只能接直流负载而且要注意公共端极性。接错轻则不动作重则烧输出点。提示PLC输出点烧毁是现场最常见的硬件故障之一。原因通常是负载短路、感性负载没有加续流二极管、或者输出电流超过额定值。接电磁阀、继电器线圈这类感性负载时一定要在负载两端并联续流二极管否则断电瞬间的反向电动势很容易击穿输出晶体管。5. 从仿真到实物完整实操流程拆解5.1 用仿真软件跑通第一个程序假设你装好了GX Works2或者TIA Portal也搞定了仿真环境接下来就是跑通第一个程序。我建议从十字路口红绿灯这个经典案例入手热搜词里也出现了“十字路口红绿灯plc程序”说明这是很多人的入门项目。红绿灯的逻辑不复杂但涵盖了定时器、顺序控制、输出互锁这些核心概念。东西向绿灯30秒黄灯3秒红灯33秒南北向绿灯25秒黄灯3秒红灯28秒。两个方向的红灯时间要覆盖对方的绿灯加黄灯时间确保不会同时放行。在仿真里写这个程序你可以先用一个启动按钮触发整个循环然后用多个定时器串联实现时间分段。具体做法是启动后T0开始计时T0到达30秒后触发东西向绿灯灭、黄灯亮同时T1开始计时T1到达3秒后东西向黄灯灭、红灯亮南北向绿灯亮T2开始计时以此类推。每个定时器的常开常闭触点去控制对应的输出线圈。仿真跑通之后你可以观察定时器的当前值变化确认每个时间节点输出状态是否正确。如果发现某个灯不亮或者时间不对先查定时器编号和设定值再查输出线圈有没有被其他逻辑覆盖。5.2 下载程序到实物PLC的步骤仿真跑通之后下一步就是连实物PLC。以西门子S7-200 SMART为例步骤大概是用网线连接电脑和PLC设置电脑IP和PLC在同一网段在编程软件里搜索PLC找到之后建立连接然后下载程序。这里有几个细节容易出问题。第一是IP地址S7-200 SMART默认IP是192.168.2.1你电脑的IP要设成192.168.2.x子网掩码255.255.255.0。第二是下载前要确保PLC处于STOP模式RUN模式下有些程序下载不进去。第三是下载后要切换回RUN模式否则程序不执行。三菱FX系列用USB转串口线连接需要装对应的驱动。热搜词里“信捷xd系列怎么连接plc”也是类似的问题信捷XD系列用USB线连接装好XDPPro软件和驱动之后在软件里选择正确的COM口就能连上。如果连不上先检查设备管理器里有没有识别到串口再看COM口编号和软件里选的是否一致。5.3 现场调试的实战经验程序下载进去只是开始现场调试才是真正考验人的环节。我总结了几条经验都是踩坑踩出来的。第一条先手动后自动。程序里一定要做手动/自动切换功能手动模式下可以单独点动每个输出确认接线和执行机构没问题再切到自动模式跑逻辑。没有手动模式的程序调试时只能干瞪眼。第二条加超时报警。顺序控制里如果某个动作在规定时间内没完成程序应该报警并停机而不是傻等。比如气缸伸出指令发出后5秒内没收到到位信号就判定为故障。这个逻辑用定时器加比较指令就能实现但很多新手会忽略。第三条急停逻辑要硬。急停按钮不要只接到PLC输入点然后靠程序处理应该同时切断输出模块的公共电源或者直接串在接触器线圈回路里。程序里的急停逻辑是软保护硬件回路是硬保护两者都要有。第四条注释要写清楚。我见过太多程序逻辑写得没问题但一个注释都没有过两个月自己都看不懂。每个输入输出点、每个定时器、每个中间继电器都要写注释这是对自己和后来者负责。6. 常见问题排查和避坑指南6.1 程序下载失败或PLC启动不了热搜词里“plcsim advanced plc启动不了 error11”和“plcsim plc启动不了”反映的是仿真环境的问题但实物PLC也有类似情况。程序下载失败常见原因有通信线没插好、IP地址不对、PLC处于RUN模式、程序里有语法错误、PLC存储空间不够。如果PLC上电后启动不了先看电源指示灯亮不亮再看RUN/STOP指示灯状态。如果ERROR灯闪烁说明有故障需要连上软件看诊断信息。有些PLC有拨码开关或者模式开关位置不对也会导致启动异常。6.2 定时器不动作或时间不准定时器不动作先查三个地方定时器线圈有没有得电、设定值是不是大于0、定时器编号有没有重复使用。时间不准先查时间基准再查扫描周期影响。如果定时器放在中断程序里还要确认中断有没有正常触发。6.3 输入信号时有时无输入信号不稳定最常见的原因是接线松动或者传感器供电不足。用万用表量一下输入点的电压正常应该是24V左右。如果电压偏低查电源和线径。另外输入滤波时间设置太长也会导致信号丢失特别是高速计数或者短脉冲信号要把输入滤波调小。6.4 输出点烧毁或负载不动作输出点烧毁的原因前面提过主要是过流、短路、感性负载反电动势。负载不动作先查输出点指示灯亮不亮灯亮但负载不动查负载电源和接线灯不亮查程序逻辑和输出点是否损坏。问题现象可能原因排查方法程序下载失败通信线/驱动/IP/模式逐项检查先确认物理连接PLC启动不了电源/模式开关/程序错误看指示灯连软件看诊断定时器不动作线圈未得电/设定值为0/编号重复监控程序状态查编号定时时间不准时间基准错/扫描周期影响查手册确认基准算实际时间输入信号不稳接线松动/供电不足/滤波太长万用表量电压调滤波参数输出点烧毁过流/短路/无续流查负载电流加续流二极管输出不动作程序逻辑/输出点损坏/负载电源看指示灯分段排查6.5 仿真和实物行为不一致仿真能跑通下载到实物就不行这种情况太常见了。原因通常是仿真环境不支持某些硬件相关功能比如高速计数器、PWM输出、通信指令、模拟量处理。另外仿真里的扫描周期和实物也不一样对时间精度要求高的逻辑会有差异。解决办法是仿真只用来验证逻辑框架涉及硬件特性的部分必须在实物上调试。7. 进阶方向和学习路径建议7.1 从梯形图到结构化文本梯形图能解决大部分逻辑控制问题但遇到复杂运算、数据处理、通信协议解析这些场景结构化文本会更高效。我建议在梯形图写熟之后花点时间学一下ST语言。不用学太深能看懂、能写简单的条件判断和循环就行。很多品牌的编程软件都支持梯形图和ST混合编程你可以把复杂计算部分用ST写逻辑控制部分用梯形图写各取所长。7.2 触摸屏和SCADA的联动PLC单独工作的时候你只能通过指示灯和按钮跟它交互。加上触摸屏之后你可以做画面、做报警、做趋势图操作体验完全不一样。热搜词里“plc scada如何与plc连接”和“plc, scada视频”说明很多人关心上位机这块。SCADA和PLC连接的核心是通信协议常见的有Modbus、Profibus、Profinet、EtherNet/IP。入门阶段可以先学Modbus因为它简单、开放、几乎所有PLC都支持。7.3 运动控制和过程控制逻辑控制玩熟之后可以往运动控制或者过程控制方向走。运动控制涉及伺服、步进、编码器需要理解脉冲输出、位置闭环、电子齿轮这些概念。过程控制涉及PID、模拟量采集、阀门调节需要理解反馈控制和参数整定。这两个方向都比逻辑控制复杂但薪资天花板也更高。7.4 持续学习的资源和方法PLC这行光看书没用必须动手。我的建议是找一个实际的小项目比如自动门、传送带分拣、水箱液位控制从方案设计到程序编写到调试完整走一遍。遇到问题就查手册、搜论坛、问同行。每解决一个问题你的经验值就涨一截。另外多看看别人写的程序特别是那些经过现场验证的成熟程序能学到很多书本上没有的技巧。我个人在实际操作中的体会是PLC编程入门最难的不是语法而是建立逻辑思维。你得学会把一个大动作拆解成一个个小步骤每个步骤对应一个输出状态每个状态之间的转换条件用定时器、计数器、传感器信号来定义。这个过程跟写菜谱很像先放油油热了放葱姜葱姜出香味了放菜菜变色了放盐。PLC程序就是给机器写菜谱写多了自然就顺手了。最后再分享一个小技巧每次写完程序先别急着下载在软件里用“程序检查”功能过一遍看看有没有语法错误、重复输出、未使用变量。这个习惯能帮你省下大量现场调试时间。还有程序文件记得备份按日期和版本号命名别问我怎么知道的。
阅读完成 · 觉得有帮助?