气缸和电磁阀的控制是PLC入门里最经典、也最容易被低估的一块内容。说它经典是因为几乎每一本PLC教材、每一个培训课程都会拿单作用气缸伸出缩回当第一个案例说它容易被低估是因为很多人照着例子把梯形图敲进去、气缸动了就以为自己会了结果一到现场就出问题——气缸爬行、电磁阀烧线圈、动作节拍对不上、手动自动切换打架、急停之后气缸停在半路。我自己刚入行那会儿就吃过这个亏一个简单的压装工位调试了整整两天最后发现是电磁阀的得电逻辑和机械阀的常态位没对上。这篇内容我打算把PLC控制气缸与电磁阀这件事从头到尾讲透。不是只给你一张梯形图而是把气缸和电磁阀到底怎么选、PLC的DO点怎么接、单电控和双电控的编程差异在哪、手动/自动/急停三种模式怎么不打架、节拍怎么算、常见故障怎么排查这些实战里真正会遇到的问题一条一条拆开讲。适合刚接触PLC编程的初学者也适合已经能写梯形图、但一到现场就手忙脚乱的朋友。看完你至少能做到拿到一个气缸动作需求能独立完成选型、接线、编程、调试的全流程。1. 先把气缸和电磁阀的脾气摸清楚很多人编程出问题根子不在梯形图而在对执行元件本身理解不到位。PLC只是发号施令的大脑真正干活的是气缸和电磁阀你得先知道它们的脾气写出来的程序才不会和机械打架。1.1 单作用气缸和双作用气缸控制逻辑完全不同气缸按动作方式分两大类这个分类直接决定了你要用几位几通的电磁阀、要写几个输出点。单作用气缸只有一个进气口靠压缩空气推出去靠内置弹簧拉回来。也就是说它只有一个方向是主动的另一个方向是被动复位。这种气缸只需要一个PLC输出点控制一个二位三通电磁阀常闭或常开得电伸出、失电靠弹簧缩回。优点是省气、接线简单缺点是推力小、行程短、复位力受弹簧限制一般用在夹紧、挡料、顶升这类小负载场合。双作用气缸有两个进气口伸出和缩回都靠压缩空气推力和拉力都可以做得很大行程也能做长。它需要配二位五通或三位五通电磁阀通常要占用PLC的两个输出点双电控阀或者一个输出点单电控阀。绝大多数工业场合用的都是双作用气缸因为可控性强、力量足。这里有个新手最容易踩的坑以为双作用气缸必须用两个输出点。其实不一定。双电控电磁阀两个线圈一个管伸出、一个管缩回确实要两个点但单电控电磁阀一个线圈弹簧复位只需要一个点得电走一个方向失电靠弹簧回另一个方向。选哪种取决于你的工艺需不需要断电保持位置。提示如果工艺要求断电后气缸必须保持在当前位置比如垂直顶升、夹持工件一定要用双电控阀因为单电控阀一断电就复位工件可能掉下来。这是安全问题不是编程技巧问题。1.2 电磁阀的位和通决定了你怎么接线和编程电磁阀的命名规则是几位几通这个位和通必须搞明白否则接线就是瞎接。位指阀芯有几个工作位置。二位阀有两个位置比如伸出位、缩回位三位阀有三个位置伸出位、中位、缩回位。通指阀体上有几个气路接口。三通对应一个进气、一个出气、一个排气五通对应一个进气、两个出气、两个排气。组合起来常见的有阀类型适用气缸PLC输出点数特点二位三通单电控单作用1得电伸出失电弹簧复位二位五通单电控双作用1得电一个方向失电弹簧回另一方向二位五通双电控双作用2两个线圈分别控制两个方向断电保持三位五通双电控双作用2有中位可实现中间停止三位五通阀的中位功能特别值得说。中位有中封、中泄、中压三种形式中封是三个口都堵住气缸锁在中间位置中泄是两个气腔都通大气气缸可以自由推动中压是两个气腔都通气气缸也锁住但更稳。选哪种中位取决于你的工艺——需要中间停住就用中封需要手动能推动就用中泄。我见过一个案例工程师用了中泄型三位阀做垂直升降结果断电后气缸因为重力自己滑下来了差点砸到人。后来换成中封型才解决。所以中位形式的选择是安全设计的一部分不能随便选。1.3 气缸上的磁性开关是程序判断动作到位的眼睛光有气缸和电磁阀还不够程序怎么知道气缸伸出到位了没有靠的就是气缸缸筒上装的磁性开关也叫接近开关、磁感应开关。气缸活塞上有一圈磁环磁性开关卡在缸筒外壁的导轨上活塞走到那个位置开关就输出信号给PLC的DI点。一般一个气缸装两个一个检测伸出到位一个检测缩回到位。这里有几个实操细节磁性开关的位置是可以滑动的调试时要根据实际行程调整不能装上去就不管了。磁性开关分两线制和三线制两线制直接串在回路里三线制要接电源和信号线接线前一定看型号。有些便宜的气缸磁环磁性弱开关检测不稳定会出现到位信号时有时无的假象排查半天以为是程序问题其实是硬件。注意程序里判断气缸到位一定要用磁性开关信号做条件不能靠输出点得电后延时来假装到位。延时只能做超时报警不能替代真实位置反馈否则气缸卡住你都不知道。2. PLC的DO点怎么驱动电磁阀接线不是小事梯形图写得再漂亮接线错了照样不动。电磁阀是感性负载驱动方式和普通指示灯完全不一样这一节专门讲接线和驱动。2.1 继电器输出和晶体管输出选错了会烧点PLC的输出类型主要有三种继电器输出、晶体管输出、晶闸管输出。控制电磁阀选型时要注意继电器输出的触点是机械触点可以接交流也可以接直流负载能力强一般2A左右但寿命有限机械触点有动作次数限制动作频率不能太高。适合动作不频繁、负载电流较大的场合。晶体管输出是电子开关只能接直流响应快、寿命长、无触点磨损但过载能力差一般每点0.5A左右短路容易烧。适合高频动作、需要PWM控制的场合。电磁阀线圈的启动电流比保持电流大而且断电瞬间会产生反向电动势。如果电磁阀功率较大或者动作频繁我一般建议用中间继电器转接PLC输出点驱动中间继电器中间继电器再驱动电磁阀。这样PLC输出点只承担继电器线圈的小电流电磁阀的大电流和反向电动势由中间继电器承担保护PLC。如果直接驱动一定要在电磁阀线圈两端并联续流二极管直流阀或RC吸收回路交流阀吸收反向电动势。我踩过的坑早期用一个晶体管输出的PLC直接驱动一个24V电磁阀动作几百次之后输出点就烧了量了一下电磁阀线圈启动电流接近1A远超输出点额定值。后来加了中间继电器再没出过问题。这个钱不能省一个中间继电器几块钱一个PLC输出模块几百块。2.2 共阳接法和共阴接法决定你的输出逻辑PLC输出点驱动负载有共阳源型和共阴漏型两种接法这个和PLC品牌、型号有关。共阴接法漏型输出NPN负载一端接正电源另一端接PLC输出点输出点导通时把负载拉到地0V。三菱FX系列、多数日系PLC常用这种。共阳接法源型输出PNP负载一端接地另一端接PLC输出点输出点导通时输出正电压。西门子S7-1200、部分欧系PLC常用这种。这个区别在接线时非常关键接反了要么不动作要么直接短路。而且它还会影响你选磁性开关的类型——NPN型磁性开关配漏型输入PNP型配源型输入必须匹配。提示买磁性开关和电磁阀之前先确认你的PLC是源型还是漏型然后统一选对应类型。混用会导致信号读不到或者烧输入点这是新手最常见的接线事故。2.3 一个完整的接线示例假设用三菱FX3U漏型输出控制一个双作用气缸配二位五通双电控阀带两个磁性开关。接线大致如下电磁阀伸出线圈接Y0线圈另一端接24VY0导通时拉到0V阀动作。电磁阀缩回线圈接Y1同上。磁性开关伸出到位NPN型信号线接X0X0与COM之间导通时输入有效。磁性开关缩回到位接X1。输入端COM接24V漏型输入输出端COM接0V。这个接法里Y0和Y1不能同时得电否则双电控阀两个线圈同时通电阀芯会卡在中间或者烧线圈。所以程序里必须做互锁这是下一节的重点。3. 梯形图编程从最简单的单缸控制到多缸协同接线搞定进入正题。梯形图是PLC编程最直观的语言但能写和写得好是两回事。这一节从单缸控制讲到多缸协同把每一步的设计意图讲清楚。3.1 单作用气缸的梯形图一个输出点就够单作用气缸最简单一个输出点控制电磁阀一个输入点读伸出到位信号缩回靠弹簧一般不需要检测但要求高的场合也可以加。控制要求按下启动按钮气缸伸出检测到伸出到位后延时1秒气缸自动缩回。梯形图逻辑启动按钮X0 常开 ──┬── 伸出到位X1 常闭 ── (Y0 伸出) │ └── 自锁具体写第一行X0常开 与Y0常开并联自锁再串X1常闭输出Y0。第二行X1常开伸出到位触发定时器T0 K101秒。第三行T0常开触发复位断开Y0。这里的关键是自锁。启动按钮是点动信号按一下就松开如果不自锁Y0只在按钮按下的瞬间得电气缸刚动一下就停。自锁让Y0在启动后持续得电直到到位信号X1断开回路。注意X1用常闭还是常开取决于你的逻辑设计。用常闭的意思是没到位时回路通到位后断开这样到位就自动停止。但要注意如果磁性开关坏了一直断开气缸就永远不动所以最好加一个超时报警。3.2 双作用气缸的双电控编程互锁是灵魂双作用气缸配双电控阀两个输出点Y0伸出、Y1缩回必须做互锁——Y0和Y1不能同时得电。控制要求按启动气缸伸出到位后延时2秒气缸缩回缩回到位后等待下一次启动。梯形图核心逻辑伸出X0启动与Y0并联自锁串X2缩回到位常闭、串Y1常闭互锁输出Y0。缩回X1伸出到位触发与Y1并联自锁串Y0常闭互锁输出Y1。复位X3缩回到位断开Y1自锁。互锁的写法有两种一种是在各自回路里串对方的常闭触点软件互锁另一种是硬件上把对方的常闭触点串进线圈回路硬件互锁。我强烈建议两个都做。软件互锁防程序逻辑错误硬件互锁防输出点粘连或短路。现场出过一次事故就是输出点粘连导致两个线圈同时得电阀芯卡死幸好机械上没造成损坏。3.3 手动/自动/急停三种模式怎么让它们不打架实际设备不可能只有自动运行一定还有手动调试模式和急停。这三种模式如果处理不好会互相干扰比如手动模式下自动程序还在跑或者急停之后气缸停在半路。我的做法是用模式标志位做总控定义M0为手动模式标志M1为自动模式标志M2为急停标志。手动按钮按下置位M0、复位M1自动按钮按下置位M1、复位M0。急停按下置位M2同时复位所有输出。所有自动动作的回路上都串一个M1常开只有自动模式才允许自动动作。所有手动动作的回路上都串一个M0常开。急停M2常闭串在所有输出回路的最前面。这样模式之间天然隔离不会打架。急停一按所有输出立即断开气缸失电双电控阀保持位置单电控阀复位。提示急停之后要不要让气缸自动复位是个工艺问题。有些设备要求急停后气缸保持原位方便排查有些要求自动缩回安全。这个要和机械、安全工程师确认不能自己拍脑袋。3.4 多缸协同顺序控制和节拍计算一台设备往往有多个气缸它们之间有先后顺序。比如一个装配工位A缸顶升定位 → B缸夹紧 → C缸压装 → B缸松开 → A缸下降。多缸协同的核心是顺序控制常用两种方法方法一步进顺控SFC思路。用状态继电器三菱的S或整数寄存器表示当前步每一步只做一件事做完转移到下一步。这种写法逻辑清晰改起来方便适合步骤多的场合。方法二互锁串联。每一步的启动条件串上一步的完成信号简单直接适合步骤少的场合。节拍计算是很多人忽略的。假设每个气缸动作时间伸出0.5秒、到位检测0.1秒、延时0.3秒、缩回0.5秒那么一个完整循环大约动作时间A缸伸出到位0.6sB缸夹紧到位0.6sC缸压装到位保压1.3sB缸松开到位0.6sA缸下降到位0.6s合计约3.7s如果要求产能是每小时900件那节拍是4秒/件3.7秒刚好够但余量很小。这时候就要考虑能不能让某些动作并行比如B缸松开的同时A缸就开始下降。并行动作是压缩节拍最有效的手段但前提是机械上不干涉、安全上没问题。4. 调试现场那些文档里不会写的坑程序写完下载进去气缸动了不代表就完事了。真正的考验在调试现场。这一节我把这些年踩过的坑和排查思路整理出来都是实打实的经验。4.1 气缸爬行、抖动、不动作先别怀疑程序气缸动作异常很多人第一反应是改程序其实大部分时候是气动或机械问题。排查顺序应该是先气后电再程序。气缸完全不动先看气源压力够不够一般0.4~0.6MPa再看电磁阀有没有得电看阀上的指示灯再看PLC输出点有没有输出看输出指示灯。如果PLC输出灯亮但阀不动作多半是接线或阀的问题。气缸爬行走走停停通常是气源压力不足、气管太细、或者气缸负载过大。也可能是电磁阀流量不够换大一号的阀试试。气缸抖动可能是磁性开关信号抖动导致程序反复触发也可能是电磁阀频繁换向。检查磁性开关安装位置必要时在程序里加滤波比如信号持续0.05秒才认。气缸速度太快撞到底加装油压缓冲器或调整排气节流阀不要靠程序延时来减速那是没用的。我遇到过一个特别隐蔽的问题气缸伸出到位信号偶尔丢失导致程序卡在等待状态。查了半天程序没问题最后发现是磁性开关的固定螺丝松了气缸动作时的振动让开关位置偏移了。所以调试时一定要把磁性开关的螺丝拧紧最好打一点螺纹胶。4.2 电磁阀线圈烧毁的三个常见原因电磁阀线圈烧毁是现场高频故障原因基本就三个电压不匹配线圈是24V的接了220V瞬间就烧。或者线圈是220V的PLC输出24V驱动不了长时间半导通发热。两个线圈同时得电双电控阀如果互锁没做好两个线圈同时通电阀芯卡死线圈持续大电流发热烧毁。频繁动作散热不良电磁阀动作频率过高线圈来不及散热温度累积。这种情况要么降低动作频率要么选耐高温线圈。排查时用万用表量线圈电阻正常应该在几十到几百欧姆如果接近0或者无穷大就是烧了。4.3 急停之后气缸停在半路怎么处理才安全急停按下所有输出断开。这时候单电控阀失电复位气缸回到初始位弹簧复位方向。双电控阀失电保持气缸停在当前位置。如果气缸停在半路会带来危险比如压着头、夹着手那就要在急停逻辑里做处理。但注意急停的第一原则是立即切断动力不是执行复位动作。所以正确的做法是急停立即断输出然后由操作人员确认安全后手动或半自动地把气缸复位而不是让程序自动复位。有些设备会加失电保护比如垂直轴加配重或机械锁防止断电后下滑。这是机械设计的事编程只能配合不能替代。4.4 一个完整的故障排查链路示例分享一个我实际处理过的案例把排查思路完整走一遍。现象某工位双作用气缸自动模式下伸出到位后不缩回手动模式下正常。排查过程手动正常说明气缸、电磁阀、接线、输出点都没问题问题在自动逻辑。检查自动模式下的缩回条件缩回是由伸出到位信号X1触发的。手动模式下缩回是按钮直接触发不经过X1。监控PLC发现自动模式下X1一直是OFF但手动模式下气缸明明伸出到位了。说明X1信号在自动模式下没进来。检查X1接线发现X1的线在端子排上有点松手动模式下操作人员碰了一下线接触上了自动模式下设备振动接触不良。重新压紧端子问题解决。这个案例的教训是手动正常、自动异常优先怀疑信号在自动流程中的传递而不是执行机构本身。因为执行机构是共用的手动能动说明它是好的。5. 进阶让气缸控制更稳、更快、更智能基础的单缸、多缸控制搞定之后可以往进阶方向走。这一节讲几个提升控制品质的思路都是实际项目里验证过有用的。5.1 用状态机思想重构梯形图告别面条式程序初学者写多缸程序容易写成一大坨互相交织的梯形图改一个地方牵动全身俗称面条式程序。用状态机思想重构会清爽很多。核心思路把设备的运行过程拆成若干个状态步每个状态有明确的进入条件、执行动作、退出条件。用一个整数寄存器D0存当前状态号程序用比较指令判断当前在哪一步。比如D00初始状态等待启动。D010A缸伸出等待A到位。D020B缸夹紧等待B到位。D030C缸压装等待C到位保压。D040B缸松开等待B到位。D050A缸下降等待A到位。D060循环结束回到D00或D010。每一步的梯形图只关心当前步号进入条件→执行动作转移条件→下一步号。这样每一步都是独立的改哪一步都不影响其他步。而且调试时监控D0的值一眼就知道设备卡在哪一步排查效率极高。提示状态号建议用10、20、30这样的间隔编号方便以后在中间插入新步骤不用全部重排。5.2 气缸动作的超时监控和报警气缸卡住、气源断了、阀坏了程序如果一直等到位信号就会死等。所以每个气缸动作都要加超时监控。做法气缸开始动作时启动一个定时器比如设定3秒正常动作时间的2~3倍。3秒内没收到到位信号触发报警同时停止自动流程提示操作人员检查。超时时间怎么定取正常动作时间的2~3倍。太短会误报太长失去保护意义。比如正常伸出0.5秒超时设1.5秒比较合适。报警信息要具体不能只报设备故障要报几号气缸伸出超时这样维修人员才能快速定位。5.3 节拍优化并行、预动作、减少等待前面提到并行能压缩节拍这里展开讲几个技巧并行动作互不干涉的气缸同时动作。比如A缸下降的同时B缸开始松开。预动作在上一动作还没完全结束时提前启动下一动作的准备。比如压装缸快到位时提前给松开缸信号。减少等待检查程序里有没有不必要的延时。很多延时是调试时加的量产时应该去掉或缩短。优化气路加大气管直径、缩短气管长度、用大流量阀都能加快气缸动作速度。但要注意节拍优化不能牺牲安全。任何并行和预动作都要确认机械上不会碰撞、安全上不会伤人。5.4 从梯形图到结构化编程的过渡当设备越来越复杂纯梯形图会显得力不从心。这时候可以考虑功能块FB把控制一个气缸封装成一个功能块输入启动、停止、到位信号输出阀控制、报警。多个气缸调用同一个功能块程序量大幅减少。结构化文本ST复杂逻辑用ST写比梯形图简洁。比如状态机的转移逻辑用ST的CASE语句写非常清晰。SFC顺序功能图专门为顺序控制设计的语言三菱、西门子都支持。画出来就是流程图直观易懂。不过我的建议是先把梯形图写扎实再学结构化。梯形图是基础它逼着你把每一个逻辑关系想清楚。跳过梯形图直接上ST容易写出逻辑漏洞。6. 选型与配置不同品牌PLC的实操差异最后聊聊选型和品牌差异。虽然梯形图逻辑是通用的但不同品牌PLC在指令、地址、编程软件上差别不小实际项目里要注意。6.1 三菱、西门子、汇川的编程习惯对比品牌代表型号编程软件特点三菱FX3U、FX5UGX Works日系经典指令直观国内保有量大西门子S7-1200、S7-200 SMARTTIA Portal、STEP7欧系主流结构化强功能块好用汇川H5U、AM系列AutoShop国产替代性价比高兼容三菱习惯三菱的编程习惯是直接、简单X/Y/M/T/C地址清晰适合快速上手。西门子强调结构化DB块、FB/FC、符号寻址适合大型项目。汇川很多地方模仿三菱学过三菱的转汇川很快。选型时考虑项目规模、预算、维护人员熟悉度、备件供应。小设备用三菱或汇川大项目用西门子这是比较常见的搭配。6.2 气缸和电磁阀的选型要点气缸选型主要看缸径、行程、安装方式、缓冲形式。缸径决定推力行程决定动作距离安装方式要和机械匹配缓冲形式影响噪音和寿命。电磁阀选型主要看几位几通、单电控还是双电控、电压、接口尺寸、流量。电压要和PLC输出匹配一般DC24V接口尺寸要和气管匹配流量要满足气缸速度要求。一个经验电磁阀的流量宁大勿小。流量不够会导致气缸动作慢、爬行。选型时按气缸最大耗气量的1.2~1.5倍选阀。6.3 接线和接地的注意事项电磁阀、PLC、传感器尽量用独立电源或隔离电源避免干扰。信号线和动力线分开走线不要捆在一起。PLC和变频器、伺服驱动器要有良好接地接地电阻小于4欧姆。长距离信号线用屏蔽线屏蔽层单端接地。这些看起来是小事但现场很多莫名其妙的故障都是干扰引起的。我遇到过一次气缸随机误动作查了很久最后发现是信号线和变频器输出线走在一个线槽里变频器干扰串进来了。分开走线后问题消失。6.4 一个可直接复用的气缸控制功能块思路最后给一个功能块的接口设计思路不管你用什么品牌都可以照着封装输入Start启动信号Stop停止信号ExtendSensor伸出到位信号RetractSensor缩回到位信号Mode模式手动/自动Timeout超时时间设定输出ExtendValve伸出阀输出RetractValve缩回阀输出Alarm报警输出Busy动作中标志Done动作完成标志内部逻辑状态机管理伸出、等待到位、缩回、等待到位、完成几个状态带超时监控和互锁。封装好之后每个气缸调用一次传入对应的信号和参数程序量能减少一半以上而且逻辑统一维护方便。气缸和电磁阀的控制说到底就是把机械动作翻译成电信号再把电信号翻译回机械动作的过程。梯形图只是工具真正重要的是你对机械、气动、电气三者的理解。我个人的体会是每次调试新设备先别急着写程序花半小时把气路图、机械动作顺序、传感器位置都看一遍想清楚每个动作的前后依赖关系再动手写效率反而更高。那些调试时反复改程序的往往是前期没想清楚。另外磁性开关的螺丝一定要拧紧这个坑我踩过不止一次。