PLC在垃圾自动分拣线中的应用:I/O规划、梯形图与Modbus通讯

发布时间:2026/9/19 16:51:01
PLC在垃圾自动分拣线中的应用:I/O规划、梯形图与Modbus通讯
简介面向自动化、机电一体化及物流工程专业学习者的Word文档完整整理了一套垃圾自动分拣机构PLC控制系统设计方案。内容从自动分拣系统的基本组成出发详细阐述控制装置、分类装置、输送装置与分拣道口的功能分工并围绕PLC控制器的高可靠性、强抗干扰性与灵活编程特性介绍其在分拣信号识别与执行机构动作控制中的核心作用。文档还分析了分拣系统从人力作业到机械化、自动化、智能化的发展背景以及效率高、误差率低、基本实现无人化等应用优势同时也对推出式、浮出式、倾斜式等分类装置形式有所涉及适合作为课程设计、毕业设计或项目前期调研的参考资料。资源包内为1个docx文件整体大小约360KB文字与结构清晰便于直接阅读和修改使用。已有95人浏览学习可用于快速掌握PLC在自动分拣领域的典型应用方法。1. 垃圾自动分拣机构为什么离不开PLC一条日处理 20 吨的生活垃圾分类线分拣动作本身无非是推料、翻板、抓取这几类真正难的是时序。输送带按 0.8m/s 跑金属探测点到推料气缸只有 0.5m留给控制器的从判断到动作的时间窗口只有 600ms 出头。这个窗口里传感器要滤掉抖动、气缸要完成响应、上位机还要记录次数。用继电器逻辑搭这套改一个检测位置就得改一整排接线用单片机做抗干扰和现场调试的门槛又太高。PLC 能成为这类机构的默认选项不是因为梯形图多先进而是它把输入采集、逻辑运算、输出刷新放在一个确定的扫描周期里出问题时可强制、可仿真、可远程诊断。如果你正在做课程设计或毕业设计或者给厂房改造出方案这份工程量清单大概逃不出这几块上料输送带、金属与非金属检测、翻板或气缸分流、两到三条出料皮带外加一组手自动切换和故障报警。核心工作其实就三件事先把检测信号和执行机构对到 I/O 表上再决定用梯形图还是状态机组织逻辑最后解决多台变频器和 PLC 的通讯。下面按这个顺序把每一步的参数、接线和坑位讲透。2. 分拣机构硬件选型与I/O规划传感器、气缸与传动怎么配PLC2.1 先把分拣线拆成四段再算 I/O 点数我一般先不碰程序先把整条线按工序切成四段上料段、检测段、分流段、出料段。每一段只回答三个问题——谁给信号、谁执行动作、动作完成怎么确认。前两个问题决定 PLC 的 I/O 点数第三个问题决定要不要在气缸上装磁簧开关、在料口装料满光电。最常见的课程设计方案是把「动作完成确认」省掉用几个 TON 定时器硬排时序仿真能跑现场一堵料整个队列全部错位。所以 I/O 规划阶段我强制把执行反馈列为必配项。工序检测元件执行机构I/O 类型上料料仓低位开关给料机变频器DI / 通讯输送入口对射光电主输送带电机DI 通讯类别识别金属传感器 / 视觉相机—DI 或以太网分流气缸磁簧开关推料电磁阀DI DO出料料满光电出料皮带 / 报警灯DI DO以一条小型分拣线为例上料段 1 台给料机检测段 1 台金属传感器加 1 个对射光电分流段 2 个推料气缸电磁阀 2 路磁簧反馈 4 点出料段 2 条皮带加 2 个料满光电再加上手动、自动、急停、复位 4 个按钮DI 大约 13 点、DO 大约 7 点。按 20% 冗余选24 点输入、16 点输出的 CPU 就够。I/O 映射提前写成数据块梯形图里不再出现绝对地址后期改线只动映射表一处。(* TIA Portal 数据块分拣线 I/O 映射 *) VAR // 输入信号 xFeedHopperLow : BOOL; // 料仓低位DI0 xPartAtDetect : BOOL; // 物料到达检测位对射光电DI1 xMetalDetected : BOOL; // 金属传感器输出DI2 xCylRetracted : BOOL; // 推料气缸缩回到位磁簧开关DI3 xCylExtended : BOOL; // 推料气缸伸出到位DI4 // 输出信号 yPushValve : BOOL; // 推料电磁阀DO0 yBeltRun : BOOL; // 输送带运行接触器DO1 yAlarm : BOOL; // 故障报警灯DO2 END_VAR命名用「x 开头输入、y 开头输出、BOOL 类型」梯形图里直接引用符号名不写 %I0.0 这类绝对地址。这样做的理由是分拣线现场改检测点位置是常态改完传感器接线程序里只需更新映射表梯形图本体一行不用动。2.2 传感器选型与接线NPN、PNP 和视觉信号怎么进 PLC传感器选型是分拣准确率的第一道闸。金属件用电感式接近开关检测距离按物料厚度选 10-40mm埋在钢制支架里的一定要选埋入式否则支架本身就会误触发。非金属按有无、颜色或材质分对射光电抗粉尘能力最好漫反射光电在灰尘大的环境容易误动作颜色分选用色标传感器或视觉相机。视觉相机这类「智能传感器」输出不再是开关量而是通过工业以太网把类别码发给 PLC这时要加握手信号——相机给出「结果有效」脉冲PLC 收数后回一个「取走」信号握手 500ms 超时就按漏检处理。搜索里常年有人问视觉与 PLC 通讯坑大多出在握手没做超时。接线之前必须先确认传感器输出形式和 PLC 输入模块匹配三菱 FX3U 的 X 输入默认是漏型接 NPN 常开传感器信号线进 X 端子、COM 接 0V动作时 X 被拉到低电位西门子 S7-1200 的 DI 模块多数源漏兼容但组态里要选对输入类型。NPN 和 PNP 接反的典型症状不是烧点而是信号恒为 0 或者恒为 1。现场判断最快的方法是用万用表量信号线与 COM 之间的电压动作瞬间从 24V 跳到 0V 是 NPN从 0V 跳到 24V 是 PNP。提示分不清 NPN 和 PNP 时先量电压再改线比反复试接线快得多也安全得多。检测内容常用传感器输出信号现场注意金属电感式接近开关NPN/PNP 常开注意埋入式与非埋入式有无物料对射光电NPN/PNP抗粉尘两侧要对准气缸到位磁簧开关触点气缸侧面装磁性开关类别识别视觉相机以太网/IO必须做握手超时2.3 执行机构接法电磁阀、变频器、伺服和星三角互锁执行机构分三种接法。气缸类负载推料、翻板用 24V 电磁阀晶体管输出点直接驱动时要在电磁阀线圈两端并联续流二极管否则断电瞬间的反电动势会把输出管打穿。容量超过 PLC 输出点允许电流的负载比如 5.5kW 的输送带电机必须经过接触器或变频器PLC 只驱动中间继电器线圈。伺服电机用在视觉引导抓取工位PLC 发脉冲加方向信号或者走 EtherCAT 总线加减速时间在伺服驱动器里设不要在 PLC 里做软斜坡。容易踩的坑是星三角降压启动。破碎机、给料机的电机超过 7.5kW 时不建议直接启动星三角启动的梯形图逻辑不复杂启动时星点接触器和主接触器同时吸合4-6 秒后断开星点、吸合角接触器。真正要紧的是互锁——两个接触器在程序里必须串对方的常闭触点主回路转换时间不小于 300ms否则拉弧。同理软启动器一拖三的场合PLC 做接触器轮换时也要串互锁防止两台电机同时挂到软启动器输出端。2.4 PLC 选型从 I/O 点数反推 CPU 和通讯口I/O 点数算完选型就顺了。西门子 S7-1200 CPU 1214C 自带 14DI/10DO加一个 CM1241 RS485 模块就能带变频器三菱 FX5U-32MT 是 16DI/16DOGX Works3 里组态方便汇川 H5U 的强项是 EtherCAT 带伺服一条线既带变频器又带伺服时用它的 InoProShopCodesys 内核可以省一个网关。国产 PLC 这几年在分拣设备上用量很大程序结构上注意地址体系差异——三菱用八进制地址西门子和 Codesys 是纯位/字节地址移植时最容易错的是 X7 后面直接写 X8。品牌/系列编程软件通讯口适用规模特点西门子 S7-1200TIA Portal以太网 RS485中型线库函数全调试体验好三菱 FX5UGX Works3以太网 RS485单线/小型指令生态成熟汇川 H5UInoProShopCodesys以太网 RS485 EtherCAT带伺服分拣伺服联动成本低信捷 / 台达各品牌软件RS485/232小型改造维护门槛低选型的另一个硬指标是通讯口数量。计划用通讯控变频器的线CPU 至少要留 1 路 RS485要接组态屏或 MES 的以太网口必须预留。存量设备里三菱 FX3U、欧姆龙 CP 系列还大量在跑维修时按原型号备件最省事新项目按上面四类选就够。3. 梯形图与状态机写法分拣逻辑的两种落地方式3.1 最小梯形图程序金属检测与推料气缸的联动最典型的单通道分拣一条输送带、一个金属传感器、一个推料气缸。传感器装在气缸上游 0.5m皮带速度 0.8m/s物料从传感器动作到抵达推料位需要约 625ms。梯形图第一版不用状态机几个网络就能表达把金属检测结果锁存用 TON 定时器生成推料脉冲。下面是等价的结构文本程序梯形图画出来是同样的信号流四段逻辑对应四个网络。(* 网络1金属检测结果锁存 *) IF xPartAtDetect AND xMetalDetected THEN bMetalLatched : TRUE; // 金属信号保持 ELSIF NOT xPartAtDetect THEN bMetalLatched : FALSE; // 物料离开检测位后复位 END_IF; (* 网络2推料延时让物料走到推料位 *) tonPushDelay(IN : bMetalLatched AND NOT xCylExtended, PT : T#625MS); (* 网络3执行推料气缸缩回到位才允许动作 *) yPushValve : tonPushDelay.Q AND xCylRetracted; (* 网络4堵料保护推料超过 2s 未到位报故障 *) tonStuck(IN : yPushValve, PT : T#2S); yAlarm : tonStuck.Q;bMetalLatched 的复位条件是这段程序的关键物料离开检测位xPartAtDetect 变 0后立刻清掉否则下一件非金属物料会被上一件的检测结果误推。定时器 PT 用理论值 625ms实际要按 1.1 倍留余量因为变频调速后皮带在重载下会有滑差。yPushValve 前面串了 xCylRetracted这是安全互锁气缸没缩回时即使延时到了也不推避免把上一件还没推出的物料撞偏。另外注意定时器参数格式TIA Portal 里写 T#625MS三菱 FX 里对应 K625 乘 1ms 时基格式不同是移植时最容易错的点。3.2 多类型分拣的状态机写法用 CASE 代替堆叠互锁分流口一多梯形图的自锁、互锁、复位网络会成倍膨胀。三分类以上时我直接换状态机把分拣节拍抽象成「空闲 → 等待 → 检测 → 延时 → 推料 → 复位」每个状态只做一件事转移条件集中写在分支里。三菱 FX 系列对应 SFC 编程西门子用 GRAPH 或 SCL 的 CASE思路完全一致。以两路分流为例1 号推料口推金属2 号推料口推有色塑料其他物料直接落尾部。CASE bySortState OF 0: // 空闲等待物料进入检测位 IF xPartAtDetect THEN bySortState : 10; END_IF; 10: // 检测并记录类别 IF xMetalDetected THEN bySortType : 1; // 金属件 ELSIF xColorOK THEN bySortType : 2; // 有色塑料 ELSE bySortType : 0; // 其他不推 END_IF; bySortState : 20; 20: // 按类别取延时等待物料走到对应分流口 tonPush(IN : TRUE, PT : TDELAY[bySortType]); IF tonPush.Q THEN bySortState : 30; END_IF; 30: // 执行推料 IF bySortType 0 THEN yPushValve : TRUE; END_IF; IF xCylExtended THEN bySortState : 40; END_IF; 40: // 复位缩回气缸等待下一件 yPushValve : FALSE; IF xCylRetracted THEN bySortState : 0; END_IF; END_CASE;TDELAY 是数组不同类别物料在检测点后到各自分流口的距离不同延时天然不一样。现场标定只改数组元素不动逻辑这是状态机比堆梯形图好维护的核心原因。状态机最怕卡死如果气缸卡住CASE 停在状态 30后续物料全部走错口。所以每个动作状态都要加超时——状态 30 里用 2 秒 TON 兜底超时跳 90 故障态并报警。3.3 定时器、计数器与高速输入三张参数表使用场景指令参数示例现场注意推料延时TONPT : T#625MS按实测值标定见第 5 章气缸卡死保护TONPT : T#2S超时进故障态堵料检测TONPT : T#10S光电持续有料 10s 报警皮带位置跟踪高速计数器 HSC编码器 1024 脉冲/圈皮带打滑时定时器会失真变频器斜坡变频器内部参数0-50Hz / 5sPLC 只发启停和频率字定时器方案有两处局限。一是扫描周期影响计时精度三菱 FX3U 扫描周期偏长时10ms 时基的误差会累加到推料点上二是皮带打滑时定时器不知道理论 625ms 可能实际走出 700ms 的距离。产线上的常见做法是加编码器用高速计数器跟踪物料位置位置到了才推与速度无关。注意三菱 GX Works2 里普通计数器 C0-C199 和高速计数器是两类资源高速计数器要占用 X0-X5 这类专用引脚组态时不能把普通输入映射到同一端子。4. 多台变频器与PLC的Modbus通讯32台驱动的轮询与参数规约4.1 32 台变频器通讯是否可行先算轮询周期搜索记录里「plc控制32台变频器程序设计」和「一个西门子plc与32个变频器modbus通讯控制是否可」是同一个问题。答案是可行但要把轮询周期和故障策略提前计划好。硬接线方案一台变频器至少 3 个输出点、1 个故障输入32 台超过 100 个点CPU 要加扩展模块控制柜多出两排端子。Modbus RTU 用一条双绞线串 32 台从站点数全部省掉代价是轮询周期。垃圾分拣线这类皮带负载对频率给定的实时性要求不高——变频器斜坡都要 3-5 秒轮询周期 1 秒完全够用。真正不够用的是伺服或龙门抓取那类负载不要走 Modbus 轮询上 EtherCAT 才是正路。估算规则读 2 个保持寄存器请求帧 8 字节、响应帧 9 字节RS485 每字节约 11 个位1 起始 8 数据 1 校验 1 停止加帧间隔和从站处理时间单笔交易耗时如下表。波特率单笔交易估算32 台单轮询周期9600约 30ms约 1.0s19200约 15ms约 0.5s38400约 8ms约 0.26s57600约 5ms约 0.17s结论32 台完全可行但建议起步就设 38400给以后增加读写寄存器留余量。分拣线上变频器通常压 3 到 8 台主输送带、给料机、各段皮带各一台32 台的规模按同一套轮询逻辑设计只是地址表长一点。4.2 Modbus RTU 参数对口变频器四个必设项与主站轮询程序参数对口是通讯能通的前提。不管西门子 PLC 配施耐德 ETA 系列还是三菱配国产变频器Modbus RTU 的帧格式都是公开的变频器侧要设的就四样控制源选通讯、频率源选通讯、从站地址不重复、波特率校验与 PLC 一致。任何一项不对表现都是超时不会报具体错。参数组常见设置说明控制源通讯MODBUS / PLC 控制面板和端子启停失效频率源通讯给定0-50Hz 对应的数字量范围看手册从站地址1-32每台唯一拨码或参数设置通讯格式38400, 8 E 1数据位、校验位、停止位三项全对上PLC 侧主站指令各品牌叫法不同西门子 S7-1200 用库指令 MB_COMM_LOAD 初始化加 MB_MASTER 发请求三菱 FX 系列常用 RS 指令自由协议自己拼帧要算 CRC16FX5U 则有现成 Modbus 功能块汇川 H5U 在 InoProShop 里先组态串口再调功能块。指令名虽异核心参数永远绕不开五个站号、读写方向、寄存器地址、长度、数据指针。下面用通用主站功能块写轮询骨架管脚按主流国产 PLC 惯例命名。// 32 台变频器轮询每台读频率字和电流字 FOR i : 0 TO 31 DO IF mbBusy THEN CONTINUE; // 上一笔还没完成本轮跳过 END_IF; mbReq : TRUE; // 发起新请求 mbSLAVE : i 1; // 站号 1-32 mbRW : 0; // 0读保持寄存器1写 mbAddr : 43201; // 频率字地址以变频器手册为准 mbLen : 2; // 连续读 2 个字 mbDataPtr : ADR(readBuf[i]); // 结果存到对应站缓存 mbDone mbDoneTmp; mbErr mbErrTmp; IF mbErrTmp THEN // 第 i 台掉线在 32 位故障字里置对应位 commAlarmDWORD : commAlarmDWORD OR SHL(1, i); END_IF; END_FOR;mbAddr 里的寄存器地址没有统一标准汇川、ABB、施耐德的地址映射各不相同。移植项目的本质工作是做一张「PLC 程序地址 ↔ 变频器手册地址」的对照表通过 03 功能码读、06 功能码写单字、10 功能码写多字程序骨架不需要动。轮询周期在这个结构下就是 FOR 循环跑一圈的时间实测和 4.1 的估算对得上。4.3 掉线分级与写命令优先32 台通讯的两道保险轮询本身不复杂复杂在掉线处理。常见故障是某台变频器过热重启485 总线被重启瞬间拉低主站连续几十笔超时如果单帧失败就报故障整线 32 台会一起报通讯错误。问题不在协议在超时策略。常见做法是每台设一个失败计数器连续 3 帧失败才置掉线位过滤掉瞬时毛刺。写命令要做插队处理。轮询 32 台需要 0.26 秒如果急停信号要排队等完这一轮最坏情况延迟接近 300ms。分拣线的急停对应的是人把手伸进机构里的危险300ms 足以决定伤不伤手。启动、停止、急停类命令放在轮询循环外面用独立标志位触发执行完清除标志再回到轮询。广播停可以用 10 功能码写广播地址 0让 32 台同时停再逐台确认状态。提示故障处理按设备等级分级别对 32 台一刀切。设备分级掉线处理分拣线里的例子A 类关键立即停机主输送带驱动B 类重要降速运行 报警给料机、光选风机C 类一般只记录报警除尘风机、辅助皮带故障字按位映射成 DWORD 后组态屏上按位分解显示「第几台掉线」比翻 32 个报警点快得多。这也是检索里经常出现的「plc控制32台变频器说明书」这类文档里最值得抄的一段逻辑。5. 现场调试的五个关键动作仿真、排故与分拣准确率标定5.1 先用仿真把状态机卡死分支跑一遍程序写完别急着接硬件。TIA Portal 里用 PLCSIM 跑仿真把 I/O 映射表的虚拟信号全部强制掉重点验证状态机的超时分支——把气缸到位信号断开看 2 秒后能否跳进故障态。三菱 GX Works2/3 自带仿真器FX 老项目配合 MCGS 组态时仿真只能验证逻辑画面变量要等上电才能联动。仿真阶段顺手在博图里查一下 PLC 资源使用情况变量、DB 块、定时器实例的占用超标在下载时才报提前看能省一次现场才发现问题的尴尬。5.2 上电先查 I/O 抖动再查逻辑变频器启动瞬间动力电缆和 24V 信号线如果走同一个线槽DI 会被感应出毛刺典型现象是气缸在没有任何物料时偶尔动一下。排查顺序拔掉传感器进线强制该点看 LED 是否还闪确认 24V 电源负极和变频器 PE 没有形成地环路传感器供电单独一路 24V 开关电源。RS485 用屏蔽双绞线屏蔽层单端接地另一端悬空。NPN/PNP 反接时拿万用表量信号线与 COM 之间电压动作前后电压翻转方向就是判据。5.3 分拣准确率按实测延时表标定准备 200 件已知标签的样品金属、塑料、纸、其他各 50 件记录每类正确进入目标料口的数量准确率低于 95% 时只调延时表不调逻辑。调延时的依据不是理论公式而是实测在检测位和推料位各装一个临时光电让物料自然通过累计 20 次取平均时间写进 TDELAY 数组。换皮带、改变频器频率后这个实测值会变所以延时表要放在独立数据块里标注标定日期。不同料型的标定值存成配方切换料型时加载对应配方程序主体一行不用改——这个习惯能让分拣线的调试从每次三天缩到半天。本文还有配套的精品资源点击获取