恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

三菱FX系列PLC分拣程序实战:从I/O规划到梯形图调试详解

  • 首页
  • 资讯中心
  • /
  • 三菱FX系列PLC分拣程序实战:从I/O规划到梯形图调试详解

相关资讯

勒索攻击应急响应下半场:溯源、清除与数据恢复实战指南 2026/10/17 7:14:38
PARK变换与反PARK变换:FOC电机控制的坐标变换原理与调试要点 2026/10/17 7:14:38
HL7 V3 Schema:医疗语义契约的编译式验证机制 2026/10/17 7:09:38

最新资讯

社区防疫物资申报系统实战:SpringBoot+Vue全栈设计与实现
PAT甲级1001-1159刷题复盘:思路、测试点与代码沉淀
ORB-SLAM2彩色点云补全:从稀疏着色到TSDF稠密重建
Windows 10与Arch Linux双系统安装:LVM分区实战指南
一文讲清,什么是ERP系统?
大模型调用链的数据安全从模型路由到企业级反萃取:TaoToken 统一 Key 通道下的可复制配置与验证

今日推荐

Qwen3.5-122B-A10B-singprobe幻觉检测实战:AUC 0.7806,如何实时揪出大模型一本正经的胡话?
NetSpot 实战:用信道分析与频宽优化解决 Wi-Fi 卡顿
C++ split() 字符串分割的五种实现与性能实测

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

三菱FX系列PLC分拣程序实战:从I/O规划到梯形图调试详解

发布时间:2026/10/17 7:14:38
三菱FX系列PLC分拣程序实战:从I/O规划到梯形图调试详解 做自动化这些年分拣是我接触最多的应用场景之一。不管是包装线上的次品剔除、物流中心的小件分拨还是装配线的物料分配说到底就是一件事让控制器知道“来了个什么东西、它该去哪、什么时候推”然后把动作精确地做出来。这篇我就拿一个三菱FX系列的分拣程序来拆解从I/O规划、梯形图逻辑到现场调试的坑完整走一遍工业自动化的控制思路。适合正在学PLC的工程师也适合准备做小型分拣设备的开发者。1. 项目全景与设计思路1.1 这个分拣项目要解决什么问题很多教材会把分拣程序讲得很抽象但实际设备是有物理边界的。我们假设一个典型的场景一条皮带输送线入口处有一个光电传感器皮带沿线分布三个分拣工位每个工位有一个推料气缸。工件依次进入输送线系统需要将每3个工件分成一组组内第1个在A工位推出第2个在B工位推出第3个在C工位推出然后自动开始下一组。这个场景非常经典因为它涵盖了PLC编程里最难培养的两种能力一个是“状态记忆”你得让PLC记住当前进来的这个工件是本组第几个另一个是“动作时序”工件从入口走到对应工位需要时间气缸推出早了或晚了都会失败。再说直白一点这套逻辑一旦吃透常见的一进多出分拣、批处理控制、包装计数这些程序你基本都能套用同样的思路去写。这也是我建议初学者不要一上来就碰视觉识别、伺服定位这些花活的原因——先把光电计数和气缸动作玩明白工业自动化的地基就打牢了。1.2 为什么用三菱FX系列PLC这个项目选用三菱FX3U不是因为什么先进而是因为FX系列在小型分拣设备里实在太常见了。小型皮带输送机、简易包装机、送料装置十个里面有六七个就是FX3U配一个触摸屏成本可控供货稳定会维护的人也容易找。从技术上分析FX3U的指令系统完整度对于这个项目来说是“恰到好处”。它支持普通的计数器、定时器也支持INC自增指令、比较指令、SET/RST置位复位指令这些刚好覆盖分拣逻辑需要的所有操作。再往上一档的FX5U功能更强但成本高往下一档的FX1N虽然也能写但在程序容量上就比较局促。所以综合下来FX3U是这类分拣设备性价比和性能比较平衡的选择。有人会问为什么不用单片机或者继电器回路单片机的逻辑灵活性确实高但面对工业现场的电磁干扰、电压波动、接线端子松动这些恶劣条件可靠性远不如专门为工业环境设计的PLC。继电器回路就更不用说了分拣逻辑里有大量“记住当前是第几个”的状态锁存用继电器搭出来就是一个巨型蜘蛛网改一个动作等于重新布线。这就是PLC在这个场景下不可替代的原因。1.3 I/O点表先于程序电气设计的一次到位写程序之前第一件事永远是列I/O点表。很多零基础的朋友一上来就拖梯形图结果写完才发现输入输出分配不合理返工成本非常高。点表不是为了凑字数它是整个设备的“接线地图”也是以后别人维护你程序的第一手资料。我做这个小项目时点表这样定地址功能说明X0启动按钮常开触点按下启动X1停止按钮常开触点按下停止运行X2入口检测光电工件进入输送线的瞬间给出信号X3A工位到位光电工件到达A工位推出位置X4B工位到位光电工件到达B工位推出位置X5C工位到位光电工件到达C工位推出位置X6A工位气缸缩回到位磁性开关判断气缸是否归位X7急停按钮常闭触点断开即急停X10手动/自动切换用于调试维护X11报警复位清除故障标志Y0皮带电机控制输送线运行Y1A工位推料气缸单线圈电磁阀得电推出、断电磁簧缩回Y2B工位推料气缸同上Y3C工位推料气缸同上Y4三色灯绿灯运行指示Y5三色灯红灯报警指示Y6蜂鸣器报警声音这个点表有几个细节值得展开。第一急停按钮用了常闭触点而不是常开触点这是安全回路的基本常识——急停线断了PLC能立刻知道如果用的是常开线掉了急停等于没接。第二气缸选了单线圈电磁阀靠弹簧复位这样断电时气缸自动缩回避免设备停机后气缸还顶在外面挡住工件。第三所有输入都留了余量X6、X10、X11这种位置以后要加传感器或者按钮不需要重新规划点表。2. 控制逻辑的分层拆解2.1 启动、停止与复位链路分拣程序的第一个逻辑块是主控回路梯形图里最典型的“启保停”电路。它看起来简单但里面藏着两个容易被忽略的工程细节。启动按钮X0接到M100运行标志同时M100的常开触点并联到自身形成自保。停止按钮X1用常闭输入串联报警标志M50的常闭触点也串在这个回路里。这样设计的结果是按下启动线圈得电松开启动按钮运行状态保持按下停止按钮或报警发生运行状态立刻断开。这里要说一个关键点报警串联到运行回路是为了保证故障时设备不可能继续自动动作。但复位按钮X11不能直接接在运行回路上因为报警消除后设备应该处于待机状态而不是自动重新跑起来。安全的逻辑是“报警后必须人工干预、重新启动”这是自动化设备的一条铁律。实际编程里这个回路我还会加一个“上电初始状态”的处理。有些程序员不考虑PLC上电瞬间的初始状态导致设备一上电就自己开始跑这在现场是很吓人的。我在程序初始化里用一段特殊寄存器逻辑强制清零所有输出中间变量和气缸状态确保设备上电永远处于停止待命状态。2.2 计数与批次识别的核心逻辑分拣逻辑的心脏在入口计数这一段。入口光电X2每次被工件遮挡后恢复实际上产生了一个脉冲上升沿。如果直接把X2的常开触点接到计数器上会出现一个严重问题——光电信号保持的几十毫秒内PLC的每个扫描周期都会认为“来了一个工件”计数会爆炸式增长。所以要取上升沿。三菱FX里可以用PLS指令把任意接点信号转成一个扫描周期的微分脉冲。程序这样写LD X2 AND M100 PLS M10M10每检测到一个工件只在ON的状态保持一个扫描周期后面的计数逻辑必须用M10来驱动而不能直接接X2。这个细节是新手最容易犯错的地方也是“为什么我的计数一次跳几十个”这类问题的最常见根源。计数逻辑本身我用了INC自增指令配合D0寄存器LD M10 AND M20 // 批次空闲标志 INC D0 // D0 当前批次内第几件这里又出现了一个M20它的作用是“批次空闲”。也就是说只有上一组三个工件全部处理完毕、所有标签都消费掉了新来的工件才允许开始新的计数。没有这个限制第二个批次还没处理完第三批工件就已经混进计数了整个分拣顺序全部打乱。接下来是项目里最有意思的部分——给工件“贴标签”。D0计数只是知道“来了第几个”但工件要走到各自工位还需要时间D0的值会变。比如第一批第1件还在输送路上第二批第1件可能已经进来了D0又变成了1。所以光靠D0判断意义不大必须把“这一件是第几个”这个信息锁存下来跟随这件工件“走”。用SET指令实现标签锁存LD D0 K1 SET M1 // 第1件贴上1#标签 LD D0 K2 SET M2 // 第2件贴上2#标签 LD D0 K3 SET M3 // 第3件贴上3#标签M1、M2、M3就是三张“标签”。工件在皮带上走的时候标签跟着它不会因为后续工件进来而改变。等到这件工件走到对应工位的到位光电处标签才被RST复位同时触发气缸推出。这个“状态锁存”思想是PLC程序从入门到进阶的分水岭。2.3 工位推出与互锁条件工位A的推出逻辑可以这样拆A工位到位光电X3检测到有工件同时M1标签为ON说明来的正是本组第1件这时置位Y1气缸推出。程序如下LD X3 AND M1 AND M100 SET Y1 // 气缸推出 RST M1 // 1#标签消费完成复位这里用SET置位Y1是因为气缸推出需要保持动作不能只维持一个扫描周期。气缸推出后需要延时再缩回我用T0定时器做了0.5秒的推出时间LD Y1 OUT T0 K50 LD T0 RST Y1 // 时间到电磁阀断电弹簧拉回这个“置位推出、定时复位”的模式在气动控制里很常见也可以改用气缸磁性开关来触发复位——Y1推出到位后磁性开关动作马上复位Y1缩回。两种方式都能跑用定时器的好处是结构简单用到位开关的好处是能检测气缸是否真的推出成功了。B、C两个工位的逻辑与A完全一致只是把X3换成X4/X5M1换成M2/M3Y1换成Y2/Y3。写程序时直接复制再改地址但一定要注意软元件不要改重复我就见过有人复制了三段程序结果三个工位都在操作M1导致所有工件都在A工位推出的鬼故事。还需要补充一个互锁条件气缸推出的瞬间皮带最好继续运行还是停止取决于工艺。我这个项目里皮带不停止因为气缸推出动作极快而且靠弹簧缩回不会影响皮带上的其他工件。但在某些需要精确定位的场合会在推出前先停皮带这就需要在逻辑里加一个皮带停止标志和推出标志的互锁道理是一样的。2.4 报警与急停安全逻辑的兜底设计分拣设备最危险的故障是气缸卡阻。电磁阀得电了但气缸因为气压不足或者机械卡住没推到位工件没有被推出后面第二件工件又顶上来了设备就会堆料甚至损坏。所以分拣程序必须对气缸动作做“超时监控”。我在A工位气缸推出指令Y1得电的同时启动一个定时器T1设定时间为1秒。如果1秒后Y1还在ON状态说明气还没缩回就置位报警标志M50LD Y1 OUT T1 K100 LD T1 AND Y1 SET M50这个报警标志M50一旦置位主控回路里M50的常闭触点断开M100运行标志立刻掉电皮带停止、气缸停止动作同时红灯Y5和蜂鸣器Y6输出提示操作员处理。操作员检查完成、清除故障后需要按X11复位按钮然后重新按启动按钮才能恢复生产。再有就是急停。我在点表规划时把X7接了急停按钮的常闭触点。程序里只要X7断开就用它的常闭触点切断所有输出。但必须强调真正的急停不能只靠PLC程序还需要在电气硬接线上把急停触点串接到主接触器线圈回路里。PLC程序里的急停只是为了安全联锁电气硬件的断电保护才是最后一道防线这个意识必须建立。3. 程序段落的落地实现3.1 从指令表看计数器自复位技巧前面我们用INC配合D0做计数器这是比较现代、比较灵活的做法。但如果用三菱传统的计数器C0还有一个常见的自复位技巧值得了解。传统计数器写法是LD M10 OUT C0 K3意思很直接M10每来一个脉冲C0的当前值加1加到3时C0线圈得电C0的常开触点闭合。但这个触点闭合后会一直保持必须用RST C0手工复位才能清零。于是就有了自复位计数器LD M10 OUT C0 K3 LD C0 RST C0M10脉冲第3次到来时C0触点闭合这个闭合信号立刻驱动RST C0C0清零同时C0的闭合状态只维持了一个扫描周期正好可以用来触发“一批处理完成”的动作。这种自复位计数器在包装计数、流量累加、重复次数统计里非常常用用熟了会有一种“一段指令解决一类问题”的爽快感。但也有一个要注意的地方C0在计数到达设定值后如果用它的触点去驱动后面的逻辑要注意这个触点还驱动了自己的复位指令那么同一个扫描周期里依赖这个触点的其他逻辑可能也会被复位掉。所以如果你要在计满3件时同时触发一个处理动作建议用C0常开触点去置位一个M标志然后再用这个M标志驱动后续动作和复位C0避免一群逻辑挤在一个扫描周期里抢时间。3.2 气缸时序定时器与到位开关的选择气缸的推出时序是这项目里最需要根据现场调整的参数。我把A工位的完整动作时序捋一遍第1件工件经过入口光电X2D0变成1M1被SET置位。之后工件在皮带上以一定速度输送经过一段距离后到达A工位的到位光电X3。X3刚一检测到工件M1又是ONY1立即置位气缸电磁阀得电推杆伸出把工件从皮带上推进A道。0.5秒后T0定时器时间到Y1复位电磁阀断电气缸靠弹簧缩回。如果推杆在1秒内没有缩回到位T1超时报警触发设备停机。这里两个定时器的参数怎么定T0的0.5秒是推出保持时间它的依据是气缸从电磁阀得电到活塞完全推出的时间典型的小型气缸在0.2~0.4秒之间加上工件被推出皮带的机械过程给0.5秒是留了余量的。T1的1秒是超时报警判断一般取“正常缩回时间”的2~3倍既不会误报又能及时暴露卡料问题。如果换用磁性开关做缩回确认逻辑会更可靠因为定时器不会骗人但机械系统会。使用磁性开关时只要X6A气缸缩回到位信号为ON就可直接复位Y1不需要T0参与。这样气缸的缩回状态的确认来自实际机械位置而非估算时间。代价是多一根传感线和一个输入点但对于比较关键的工位值得。我个人的做法是普通分拣工位用定时器快速又够用对有精度要求或容易卡料的工位改用磁性开关做位置确认。两种方案在程序里只是差了几行现场效果差异却很大。3.3 手自动模式切换的编程细节手动模式是很多人写程序时完全不重视设备调试时才发现没有它寸步难行的功能。装调阶段要一个人站在设备尾端推动限位、单独试气缸如果没有手动模式就只能一遍遍切自动、观察、停效率低得吓人。手自动切换我用X10控制。X10断开是自动模式闭合是手动模式。手动模式下皮带和气缸分别由按钮控制不经过自动逻辑。关键点是自动模式下PLC直接输出Y口手动模式下也直接输出Y口这会产生“双线圈”冲突而且必须用输出收口模式来规避。不规范的写法是自动逻辑输出一个Y1手动逻辑又输出一个Y1。这样PLC内部会执行两次OUT Y1最后一次执行的结果覆盖第一次。比如自动逻辑要推气缸但扫描到手动逻辑那个OUT Y1时条件不满足Y1就被关掉了设备动作完全乱套。规范做法是自动逻辑和手动逻辑都各自驱动中间标志M最后用这些中间标志统一驱动物理输出并且物理输出线圈在程序中只出现一次LD M11 // 自动模式下的中间输出 OR M12 // 手动模式下的中间输出 OUT Y1 // 物理输出整个程序只写一次这样哪怕自动和手动逻辑有多个条件只要最后收口到这一个输出线圈运行结果就可预测。手动模式还有一个好处调试气缸时可以直接在触摸屏上做按钮不用去电控柜里临时接线安全性也更高。3.4 注释、软元件分配和维护性聊完逻辑说一个决定程序口碑的细节——注释和软元件分配。很多人觉得注释是给别人看的自己写的程序自己能看懂就行这是不成熟的艺德。设备投入使用三个月后你自己回头改程序看着一整页没有任何注释的软元件也得靠猜。我的习惯是M10到M19留作微分中间信号M50到M59留作报警标志M100以上留作运行控制标志D0到D9留作计数和数据寄存器。每类软元件的作用范围固定后面加功能时不需要打乱原有分配。三菱GX Works2里可以给软元件加注释注释名用中文也支持。我写每一段逻辑都会在开头加一个标签注释例如“入口计数与标签分配”“A工位推出控制”“报警超时监控”别人看程序时完全不需要从线圈追到触点反推用途。程序加注释这件事花不了半小时但它能把设备维护时间从半天压缩到十分钟是真正的投入产出比最高的一步。4. 现场调试常见问题与排查实录4.1 计数乱跳信号抖动与滤波处理我之前调试一个分拣机时遇到过奇怪问题入口光电没检测到任何东西计数却在自动增加。一开始怀疑光电坏了换了一个新的还是跳。后来用万用表量信号线发现是皮带电机启动瞬间的电磁干扰串进了传感器信号线每启动一次计数就跳几次。这个案例说明三个道理。第一传感器信号线必须用屏蔽线且屏蔽层要单端接地绝对不要把传感器线和电机动力线走在同一个线槽里。第二PLC输入端对高频干扰敏感时可以在程序里给计数信号加软件滤波取信号后延时几个毫秒再确认电平。第三简单粗暴但有效的办法是改用常闭型传感器接法让信号线平时带电检测物到位时断开这样外部断线也会被识别成“有信号”不至于漏检。程序里的软件滤波可以用定时器做一个消抖M10上升沿产生后延时20毫秒再次读取X2状态如果仍然有信号才确认这个脉冲有效。这个笨办法在低速分拣线上很好用但在高速线上不要用因为它会损失检测实时性。4.2 气缸慢半拍传送带速度与动作时序另一个常见问题是“工件明明到了工位气缸推的时候却扑空了”。排查下来几乎都是时序问题入口光电到工位光电之间的距离是固定的但皮带速度可能因为变频器频率、物料重量变化而产生波动导致工件到达工位的时间不固定气缸按定时器设定时间去推总差了那么一两百毫秒。解决办法有几种。最可靠的是在工位口增加到位光电让气缸的动作由“工件真实到位”触发而不是由“入口计数推导的时间”触发。只要到位光电检测可靠气缸就不可能扑空。这也说明了我前面点表里为什么要给每个工位都配独立的到位光电这不是浪费点数而是稳定性的保障。还有一种情况气缸动作本身没问题但推杆伸出期间工件还在皮带上往前走推出瞬间工件的中心已经偏离了推杆轴线导致推歪。解决办法是调低皮带速度或者把到位光电的位置往气缸上游挪一点让气缸在工件中心还没完全过推杆时开始推出。这个调整没有公式纯靠现场观察多试几次就能找到最佳点。4.3 上电就乱掉电保持区的设置分拣设备最怕的事情之一是半夜停电再来电第二天一上班发现计数器D0里残留了一个不明数值工件分组全乱第一批推到了C工位第二批又推到了A工位。三菱FX3U的D区默认按区划分部分数据寄存器在断电后保持部分在断电后清零。计数器当前值也一样。如果要让设备断电后记住计数状态当然一般不建议自动恢复最好停机后重新复位或者反过来确保上电时计数值一定是0就必须明确这些软元件是否掉电保持。我建议在项目里做上电初始化用PLC的特殊辅助继电器M8002或者M8039做一个开机脉冲把D0、M1、M2、M3、M20这些关键软元件统一复位。这样即使断电重启PLC也是从干净状态开始。分拣设备本质上不需要“断电续跑”自动恢复反而有安全风险不如让操作员确认后重新启动。4.4 调试工具与强制输出使用心得最后说一个几乎所有PLC工程师都用过但用不好就会出大事的功能——强制输出Force。在GX Works2里你可以强制Y1为ON让气缸直接推出去这在装调阶段检查接线和气路非常高效。但你一定要记住强制输出不经过程序逻辑它直接改写PLC输出映像区。如果在自动运行状态下强制打开了某个输出程序读到这个输出状态时可能触发一堆你意想不到的连锁动作甚至设备乱动造成危险。我的经验是强制输出只用在以下两种情况一是设备完全停机、程序不运行时用来检测接线和负载二是手动模式下单独验证某个机构动作。用完强制输出后必须手动把所有强制位释放再从触摸屏或PLC上确认输出状态恢复正常。我见过工程师调试完忘记释放强制信号结果设备一上电气缸直接弹出来把料顶飞了。这种事情发生一次就足够让你养成“调试完必查强制释放”的习惯。另外一个调试好习惯是善用GX Works2的软元件监控表和时序图。把X2、X3、D0、M1、M2、M3、Y1同时拉进监控表运行设备时盯着这些状态的跳变分拣逻辑哪里出了问题一眼就能定位。相比在梯形图上一段段翻逻辑用监控表“看数据流”的效率高出一个数量级。调试行当干久了你会越来越认同一件事逻辑写得再漂亮都不如现场多测几轮。分拣程序的坑往往不在指令本身而在于信号抖动、机械时序、硬件接线这些程序之外的地方。每次写完梯形图我习惯先在脑子里把扫描顺序过一遍——从输入信号采集到中间逻辑计算再到输出刷新——像看电影一样把整个流程走一遍能发现很多逻辑漏洞。这个习惯比任何调试工具都管用。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号