学西门子PLC很多人第一反应是找个视频从头看到尾结果看了两三天梯形图真到了设备面前还是不知道从哪里下手。这篇内容不是教程复读而是把我实际学习过程中认为最该先懂的西门子PLC基础知识做了个骨架梳理正好作为这个系列的第一篇。我要讲的东西包括PLC在工业现场到底扮演什么角色、西门子各个系列的PLC怎么选、硬件上哪些细节最容易翻车、编程软件和第一个梯形图程序怎么跑通以及后面自学时最容易卡住的地址和数据类型问题。适合完全没有基础、准备入行或者刚接触西门子平台的朋友哪怕你现在连PLC和单片机都分不清也可以放心往下看。1. 先搞清楚PLC和继电器柜的关系很多人学PLC是被“自动化”三个字吸引来的但真到了现场面对的却是接线柜里密密麻麻的中间继电器、时间继电器、接触器一时半会儿根本理不清逻辑。我建议你换个思路看待这个问题PLC本身就不是凭空冒出来的它就是为了替代继电器控制系统而生的。1.1 从继电器控制逻辑说起早年的机械设备控制逻辑全靠硬接线实现。比如一个简单的电机启停就要用到启动按钮、停止按钮、接触器然后接触器的一个常开触点并联在启动按钮两端做自锁。这套方案本身很成熟但问题在于一旦工艺调整、需要修改逻辑就得重新改线设备用久了触点氧化、接触不良、线圈烧毁故障排查全靠万用表一段一段量线效率极低。你想想一个有几十个继电器的控制柜想要从一堆线里理出一条回路的来龙去脉那是相当头疼的事。PLC的核心思路就是把“逻辑”从硬件线路上搬到CPU程序里面。按钮按下、传感器触发这些信号通过输入端子进入PLCCPU按照你写的程序做判断再把结果通过输出端子送到接触器、电磁阀、指示灯上。需要改逻辑改程序重新下载就行硬件一根线都不用动。1.2 扫描周期理解PLC工作原理的钥匙PLC干活儿的节奏是循环扫描实际大部分主流PLC的工作过程都差不多先读取输入信号刷新输入映像区然后CPU逐条执行用户程序程序执行完毕后再把结果统一写到输出端子期间还要做系统自诊断和通讯处理然后再回到第一步。这个扫描周期通常只有几毫秒到几十毫秒但理解它非常重要因为程序不是“实时并行”执行而是“顺序扫描”执行。你就不用再奇怪为什么程序里明明线圈在上面已经接通了下面读取同一个位却还是“旧值”了。一个典型的坑自锁回路里如果停止按钮接的是常闭触点程序里又写成常开那按停止时输出根本断不掉这种问题后面我会专门讲。1.3 为什么学习首选西门子工业自动化领域品牌很多我建议入门还是从西门子学起理由很实在市场占有率大遇到问题能搜到的资料多从S7-200 SMART到S7-1200/1500软件和编程思路一脉相承学会一个平台就能迁移西门子的官方手册和例程做得很规范英文中文资料都齐全碰到怪异问题至少有官方文档可以查。我说的“一脉相承”不是白说的。举个例子你在S7-200 SMART上熟悉的位逻辑指令、定时器、计数器换到TIA Portal里写S7-1200/1500绝大部分概念都能直接平移只是存储区和组态方式变了。这就是选对平台带来的长期学习收益。2. 西门子PLC家族怎么选别在第一步就纠结打开西门子的选型手册你会看到一大串系列S7-200 SMART、S7-1200、S7-1500还有老一代的S7-300/400。新手经常在选型这一步就懵了我建议你先别管那些高端参数只抓住一个核心问题你要解决什么规模的设备机型选型是PLC学习之路的第一步选错了后面学起来事倍功半。2.1 三个主流系列的定位对比我直接把最常用的三个系列放在一张表里方便你对照。系列编程软件定位常见应用场景S7-200 SMARTSTEP 7-MicroWIN SMART小型经济型点数少的小型单机设备、简单输送线S7-1200TIA Portal博途中小型通用型中小型自动化设备、分布式IO、以太网通讯S7-1500TIA Portal博途中大型高端型高速生产线、多轴运动控制、复杂数据运算S7-200 SMART价格低、上手快、资料多学校实训和很多小设备都在用。S7-1200是目前主流项目的主力虽然组态要用博途界面一开始觉得繁琐但熟悉以后会发现它才是真正的“通用平台”。S7-1500性能强很多但新手没必要一上来就碰你以后做大型项目自然会接触到。2.2 选型三步法真的没那么玄我的习惯是先算IO点数再数模拟量通道最后看通讯需求。数字量输入输出点好统计按钮、传感器、接触器、电磁阀逐个加模拟量通道就是温度、压力、流量、变频器反馈这类信号4到20毫安和0到10伏是最常见的。点数算完之后我会再往后预留百分之二十左右的余量一是防止后期增加点位二是CPU扩展能力要留足。比如你算了40个数字量输入、20个数字量输出那S7-1200系列可以选择CPU 1214C自带14DI/10DO这是内置的再加上一个信号板或扩展模块基本就够了。真实做项目的时候我见过不少因为点数差三个被迫换大 CPU 的情况预留真的很重要。通讯需求主要看要不要连触摸屏、上位机、变频器或者伺服如果设备要联网、要采集数据那就直接锁足以太网接口为主的系列。2.3 新手最容易犯的选型心态错误有一种心态我见得很多先花大量时间研究高端CPU的性能参数觉得以后迟早要用。实际上你学PLC的任务是把逻辑、程序、接线这一套框架建立起来CPU型号不对一点也不影响你理解位逻辑和循环扫描。我的建议是做练习用S7-200 SMART预算允许就上S7-1200加博途跟着一个平台学完整别今天换一款明天换一版那才是最浪费时间的。3. 硬件构成和接线细节这里翻车最多软件再熟接线出问题照样白搭。PLC硬件基础这部分我建议你当成“现场交学费最少”的知识来学因为很多故障现象你摸不清规律本质上还是硬件环节理解不到位。3.1 一套PLC最小系统包含什么不管哪个系列一套能跑起来的PLC系统都离不开五样电源、CPU模块、输入电路、输出电路、编程下载工具。以S7-200 SMART为例CPU本体上已经带了数字量输入输出点还留了信号板插槽和扩展模块接口网线口直接用来下载程序。S7-1200类似但组态更灵活扩展模块种类更多。电源这块我要多提醒一句PLC本体通常用24V直流很多项目直接用开关电源给CPU供电但千万不要把给传感器供电的开关电源和给PLC供电的电源混在一个出口上不加保护地乱接电压跌落容易导致CPU无故重启。最好遵守“CPU电源独立、传感器电源独立”或者至少选用容量充足的品牌电源并做好隔离。3.2 数字量输入和PNP/NPN传感器配接这是新手最迷糊的地方。传感器输出信号线要接到PLC输入端但PNP和NPN传感器触发时输出的电平正好相反PNP触发时输出高电平24VNPN触发时输出低电平0V。PLC输入端电气上需要的是一个相对公共端M的电压差所以就要求输入端公共端接法跟着传感器类型走。有一个常见配置是用PNP传感器时公共端M接24V负极信号触发就是24V对COM产生压差用NPN传感器时公共端M接24V正极信号触发就是0V对COM产生压差。提示不同品牌甚至不同型号的PLC输入公共端叫法可能不同有的是“1M/2M”有的是“DI COM”。接法是否支持源型/漏型、可不可以切换一定以对应硬件手册为准。我见过有人不看手册把PNP传感器接到只支持漏型输入的模块上结果信号灯常灭查了半天才反应过来。3.3 数字量输出继电器输出和晶体管输出的区别继电器输出和晶体管输出从点位上根本看不出来但选错会很麻烦。继电器输出的内部是小型继电器触点优点是可以用作交直流负载切换带载能力强缺点是开关频率低不适合发高速脉冲。晶体管输出开关速度快能输出高速脉冲去控制步进和伺服但是只能接直流负载而且要根据是源型还是漏型选择接线方向。所以如果你要控制伺服或步进驱动器必须用晶体管输出类型的CPU或模块如果只是控制接触器、继电器、指示灯继电器输出就够用了。另外输出端接感性负载时比如继电器线圈、接触器线圈建议在负载两端反向并联一个续流二极管否则断电瞬间产生的反向电动势对输出触点冲击很大久了必坏。3.4 模拟量信号接线要防干扰模拟量信号比数字量娇贵得多。温度变送器输出的4到20毫安电流信号、变频器反馈的0到10伏电压信号只要线缆一长或者跟动力电缆走同一个线槽读数跳来跳去就很正常。我实际用的原则是模拟量信号线用屏蔽双绞线屏蔽层单端接地模拟量线尽可能远离变频器输出线、接触器控制线等大电流线路模拟量信号负端和PLC的M端子连接要按模块说明书要求接不要自作聪明乱并。4. 编程软件和第一个梯形图程序从下载成功开始软件装好了程序写进去、设备动起来这时候才能真正感觉到PLC“上线”了。这个环节我也会讲一些别人教程里容易一笔带过的细节。4.1 用博途还是MicroWIN SMART建项目S7-200 SMART用的是STEP 7-MicroWIN SMART界面相对轻量特别适合入门。S7-1200/1500要用TIA Portal即博途。博途功能非常强大集成了PLC编程、触摸屏组态、驱动器配置我第一次打开时也被那种“大而全”的界面吓到了但你只需要用到“新建项目→添加设备→编写程序→编译下载”这一条主线路其他先当不存在。建议你跟着选定的硬件来定软件手上是S7-200 SMART就学MicroWIN SMART如果你想走主流招聘和项目方向那就直接开始学博途硬件用S7-1200或S7-1500的仿真环境甚至真机别两个软件同时学语言和快捷键都不一样容易记混。4.2 第一个项目启保停回路一个布尔量程序的入门代表作就是启保停。我建议你在软件里新建一个项目写上下面的梯形图逻辑按下启动按钮I0.0输出Q0.0得电同时Q0.0的常开触点并联在启动按钮上靠它保持Q0.0继续输出按下停止按钮I0.1输出断开。这就是最基本的“自锁”回路和继电器控制里的接触器自锁一模一样。这里有一个细节值得反复琢磨停止按钮现场常闭触点程序里用常开还是常闭两种做法都存在。如果硬件接的是常闭触点程序里用常开指令PLC读到的是真实状态的取反这种做法的好处是停止线断了PLC反而认为停止被触发设备更安全如果硬件接常开触点程序里用常闭指令那断线时PLC会认为停止没有按下反而有隐患。我在学习时强烈建议你把两种接法都在脑子里过一遍并亲手验证一遍这能帮你建立起“硬件电气安全”和“程序逻辑安全”的区分。写完程序之后记得编译然后下载到CPU。下载之前要确保编程软件和PLC能通信MicroWIN SMART走以太网的话要把电脑IP和PLC IP设成同一网段博途下载前要先正确选择了设备和接口编译通过且组态正确下载后把CPU切到RUN模式。第一次下载失败是非常正常的事不用慌百分之八十都是IP地址或者接口选错了。4.3 用仿真软件练习但要知道仿真到不了现场如果你手头还没有真机可以先在电脑上装仿真器练逻辑博途自带S7-PLCSIMS7-200 SMART也有仿真方式。仿真能帮你快速验证梯形图逻辑对不对省去买硬件的成本。但你要清醒认识到模拟量漂移、通讯干扰、接线错误、输出触点烧毁这些问题仿真一概体现不出来。仿真最大的作用是练程序结构和调试思维真正的动手能力一定要在实物上练。我见过有人仿真玩得特别溜一到真机下载完后设备动起来就手足无措就是因为没接触过硬件的“脾气”。5. 地址、数据格式和常用指令绕不开的底层知识程序能跑通之后你就会开始接触一个让很多新手头疼的概念寻址和数据类型。同样一个地址为什么有时是I0.0、有时是IW0、有时是ID0字节、字、双字到底什么关系这块基础不打牢后面写模拟量处理和通讯程序就是无底洞。5.1 存储区I、Q、M、DB到底分别存什么西门子PLC把存储器按功能划分成不同区域。I区专门存放输入信号Q区存放输出信号M区是中间位存储区相当于程序里的全局变量区DB数据块则用来存放有组织的数据比如设备参数、配方数据、统计值。以常见的S7-1200为例I0.0表示第0个字节的第0位IB0表示第0个字节IW0表示从第0字节开始的16位数据ID0表示从第0字节开始的32位数据。这里有个很关键的规则字和双字访问必须注意地址对齐。IW0占用了IB0和IB1IW2占用了IB2和IB3如果你同时使用IW0和IB1就会发生重叠程序里面很难查。我在给一个项目做地址规划时习惯把所有字的起始地址都习惯性排在偶数位这样天然避免重叠问题。5.2 常用数据类型的取值范围BOOL就是一位TRUE或者FALSEBYTE是8位取值0到255WORD是16位无符号取值0到65535INT是16位有符号取值-32768到32767REAL是32位浮点数带小数。你不要觉得记范围很枯燥数范围不清真的会出事故。比如模拟量采集值经过运算后直接送给了显示仪表结果仪表显示一个完全错乱的数大概率就是REAL和INT搞混了或者直接把原始0到27648的数值当成了工程量去显示忘了做量程变换。5.3 定时器、计数器、比较指令三个常用指令先吃透定时器TON是入门第一个必学的指令。举个我常用的场景气缸伸出到位后希望停顿2秒再让夹爪动作这时候就用TON指令输入条件为气缸到位信号定时预设值为2秒的毫秒数PT定时时间到TON的Q输出接通再触发夹爪动作。这里要注意很多系统的定时器单位是毫秒但不同软件和模块有差异不要想当然认为填2就是2秒。计数器CTU也非常常见。产品经过光电传感器每遮挡一次计一个数计数到设定值输出一个信号让包装机暂停。比较指令则用来做条件判断比如温度大于80度就报警电机电流超过阈值就降频。这三个指令加上位逻辑的与或非已经能覆盖大量设备逻辑了先把它们练熟再上复杂功能块心里才踏实。6. 学习路线和现场避坑建议少走弯路最后这部分是写给正在自学或者刚入行朋友的经验沉淀不是官方文档能直接查到的内容更像是踩了坑之后总结出来的实战心得。6.1 几个新手反复踩的坑我整理了一个快速对照表方便你排查。故障现象可能原因排查思路程序下载不进去电脑和PLC不在同一IP网段、接口选错、CPU处于STOP外的异常状态先Ping测试再查看软件连接参数输入信号灯不亮传感器类型与输入公共端接法不匹配、24V电源掉了、接线端子松先查电源再查传感器输出最后核对公共端输出动作后设备不动输出点或接线端子虚接、负载电压不对、继电器触点烧坏用万用表测输出点电压确认不带负载时是否有输出模拟量读数乱跳信号线未屏蔽、与动力线同槽、电源纹波大缩短信号线距离屏蔽层单端接地分开线槽CPU运行灯正常但程序没反应程序下载后没有切到RUN模式、某个位被程序其他位置复位在线监控程序看是卡在哪个位置这些坑我几乎都踩过一遍。特别是第一个下载失败的时候先别急着怀疑软件先Ping一下PLC的IP90%的问题都在这一层。6.2 一门深入项目驱动式学习我个人的学习建议非常明确不要囤几十个G的视频要找一套完整的官方手册和一个软件然后按照“点动→启保停→电机正反转→定时计数→模拟量采集→变频器通讯”这样的小项目顺序一个一个亲手实现。每天写一小段程序、跑通一个功能比周末看十个小时视频管用十倍。学第三个项目之后可以试着找一个现成的简单程序逐条分析每一行为什么这样写。看别人写的程序你学到的不是某个指令怎么用而是整个程序的架构思路比如报警逻辑为什么要集中在一块、手动自动切换为什么要做互锁这些光靠琢磨自己是很难想到的。6.3 基础知识和现场经验缺一不可我学到后面发现一个道理PLC基础知识和普通编程学习最大的不同在于它始终要跟现场物理设备打交道。你可以不会写复杂算法但你必须看得懂接线图必须知道接触器的辅助触点和主触点的区别必须明白急停回路应该单独硬接线而不是只靠程序。这不是学不学的问题是安全意识问题。千万不要在程序里写个“软件急停”就觉得安全了硬件急停回路该接还是要接。最后再分享一个我自己的习惯每学一个新的知识点我都会把它写下来贴在一个在线笔记里专门记“当时为什么卡壳”和“最后怎么解决”。因为很多坑不是靠逻辑推出来的而是靠现场一次一次试出来的。这个习惯看着笨但我后来带人学PLC时发现能最快速把新手带上手的往往不是最聪明的那个而是最善于记录“自己踩过的坑”的那个。学西门子PLC基础知识前面这一大段就是完整的第一站。你把硬件构成、选型逻辑、接线规矩、循环扫描、地址格式和三个常用指令都摸清了后面的进阶内容比如模拟量处理、通讯配置、运动控制才有往下走的底气。下一篇文章我打算从模拟量信号处理和常见传感变送器的选型讲起咱们到时候见。
阅读完成 · 觉得有帮助?