基于PLC的小型电动清洁车设计方案:从硬件选型到调试实录 接手过一个类似的非标设备控制项目身边朋友最近也在问“基于PLC的小型电动清洁车设计”怎么做我干脆按实际推进顺序把整套方案整理出来。这类清洁车放在车间、仓库、小区地下车库、小型市政路面都很常见它不光是“把垃圾扫走”这么简单背后涉及行走驱动、清扫执行、传感避障、电量管理再加一套可靠的控制逻辑。无论你是做课程设计、想搞自动化改造还是给现有清洁设备升级功能下面这套思路基本可以直接复用。先给一个整体结论这种设备的控制核心不是某个“黑科技”算法而是把动作顺序和安全联锁做扎实。清扫车最怕什么刷子转了风机没开灰尘满天飞或者人还没上车车自己往前窜。PLC方案把这些问题一一用逻辑锁死再用梯形图在线监控现场调试维护都非常顺手。1. 项目整体定位先搞清楚这台车到底要解决什么问题1.1 需求拆解一台清洁车该有哪些“手和脚”设计一台小型电动清洁车第一件事不是选PLC而是把功能需求列清楚。我这里说的“小型”指的是车宽1米出头、整备质量200公斤以内、单人即可推动和驾驶的机型。它要替代的不是大型洗地机而是两到三名保洁人员拿着扫帚和簸箕的日常工作。拆解下来至少需要下面几个子系统子系统功能需求实现方式关键参数清扫系统把两侧垃圾聚拢、卷扫进垃圾箱两侧边刷 中间滚刷清洁宽度≥0.8m吸尘系统负压吸收灰尘和轻质垃圾防止扬尘离心风机 风道 滤网风量≥1.5m³/min洒水系统湿润路面抑制清扫时的二次扬尘前置喷雾喷头 隔膜泵水箱容积15L左右行走系统前进、后退、转弯满足手动和自动行驶双后轮独立驱动 前万向轮工作速度0~5km/h控制系统手动/自动模式切换、安全保护、故障报警PLC 传感器 继电器20个I/O点以内功能拆完你再看这台车的本质它是一个典型的移动式顺序控制系统。所有动作必须按照“先吸尘、再清扫、后行走”的流程来任何一步没有到位都不能进入下一步。这也是为什么我强调这个项目价值很高——它能完整练习到顺序控制、互锁保护、定时器应用和传感信号处理覆盖面非常均衡。1.2 控制方案对比为什么最终落在PLC上很多人第一反应是用单片机做多省钱为什么非得上PLC我理解这种想法实验室跑个模型小车单片机完全够用。但一旦放到真实使用场景差距就出来了维度PLC方案单片机/开发板方案继电器逻辑方案抗干扰能力工业级设计输入输出有光电隔离和滤波需要自行设计外围抗干扰电路难度大几乎没有抗扰触点火花大运行稳定性无操作系统梯形图循环扫描极少死机程序跑飞、看门狗失效风险存在触点老化接触不良现场维护在线监视梯形图输入输出状态一目了然需要电脑烧录排错成本高改线拆线十分痛苦开发效率梯形图直观逻辑调整在线修改改代码、编译、烧录周期长增加一个功能要重新接线整机成本控制器几百到一千元几十到几百元几十个继电器加柜体也不便宜这里没有任何“情怀”就是算账。一台电动清洁车光电池、电机、底盘、箱体加起来至少要五千到上万元控制器多花几百块钱换来的是整个系统稳定性和维护效率的大幅提升。尤其在车间或者户外电机启停频繁、振动粉尘大PLC这种抗造的特性才是真正把“能用的demo”变成“能卖的设备”的关键。所以这套方案选用20个点左右的小型PLC关键词是“务实”。后面所有硬件选型和程序结构都围绕这个核心展开。2. 硬件选型与电气系统架构2.1 动力系统电池、电机、驱动器的三级结构电池选型方面这台车我建议使用48V系统。48V是轻型电动设备非常成熟的电压等级电机、控制器、充电器都好买同时48V相对更高电压等级来说对操作人员也更友好。电池容量按20Ah磷酸铁锂来配实测连续清扫两个多小时没问题如果想控制成本用四块12V 20Ah的铅酸串联也能跑但整车重量会明显上去日常维护也更麻烦。电池箱必须做密封和固定底部开导流槽防止积水这是安全底线。行走驱动我采用双后轮独立驱动方案。左右两个后轮各配一台带减速箱的无刷直流电机单只功率400~600W前面两个万向轮做支撑。这个结构最大的好处是省掉了机械差速器和复杂的转向机构转弯、原地掉头全部靠左右轮速差实现对PLC来说就是几路数字量输出的事。执行机构统一走24V电压平台边刷电机两只单只60W左右主滚刷电机180W左右吸尘风机300W左右洒水泵30W。48V电池通过一台DC-DC模块降到24V给这些执行部件和控制回路供电。为什么不用48V直接驱动执行机构原因很简单小功率直流电机的24V型号最多最便宜后期维修采购压力小。功率计算要留余量边刷120W加主刷180W加风机300W加水泵30W再加控制回路20W总计650W按24V折算峰值电流约27A所以DC-DC模块选30A输出并预留20%以上余量比较稳妥。2.2 PLC选型与I/O规划PLC的选型以三菱FX3U或者西门子S7-200 SMART这一级别的紧凑型机型为参考就够了DC24V供电继电器输出型。点数不需要太多但最好留出4到8个点的余量方便后续加模拟量模块或者通信模块。我按实际需求把I/O表排了出来大家可以照着抄输入地址功能说明X0急停按钮常闭点按下时断开X1启动按钮自复位启动运行X2停止按钮自复位停止运行X3手动/自动切换开关自锁开关切换模式X4手动前进手动模式踩踏板或按键X5手动后退手动模式后退X6手动左转手动差速左转X7手动右转手动差速右转X10障碍物检测超声波传感器信号X11左刷抬升限位限位开关防超程X12右刷抬升限位限位开关防超程X13垃圾箱门关闭检测门未关禁止清扫X14低电量信号电压继电器输出或模拟量X15充电桩到位检测自动回充对接信号输出地址功能说明Y0左轮正转驱动左轮前进Y1左轮反转驱动左轮后退Y2右轮正转驱动右轮前进Y3右轮反转驱动右轮后退Y4低速档选择驱动器的低速信号Y5中速档选择驱动器的中速信号Y6边刷启动控制边刷电机回路Y7主刷启动控制主刷电机回路Y10吸尘风机启动控制风机回路Y11水泵启动控制洒水隔膜泵Y12蜂鸣器报警障碍、低电量、故障提示Y13运行指示灯绿色Y14报警指示灯红色注意一个很重要的硬规矩PLC的输出点不要直接去驱动任何大功率设备。所有输出统一先带中间继电器再由中间继电器去控制接触器或者驱动器的控制端。这样做的原因有三个一是保护PLC输出触点延长寿命二是电气隔离减少干扰三是中间继电器线圈并联续流二极管防止断电时产生的反电动势打坏PLC输出。2.3 传感器选型与安装位置传感器这块是整个自动模式能否好用的关键。障碍物检测用超声波测距模块检测范围0.2到3米输出开关量信号。装在前护板中央离地高度25到35厘米比较理想。这个高度既能探测到立柱、行人、货架托盘这些常见障碍物又不会因为地面的小石子或者低洼积水误报警。超声波探头怕积灰积水外面要加一个透明挡雨罩或者做一个小倾角安装让水和灰尘自动滑落。选超声波而不是红外的原因是清扫车工作环境粉尘重红外在粉尘和强光下容易误动作超声波对粉尘耐受性更好。贴边检测用反射式光电传感器装在车体左右两侧朝斜下方探测地面。自动模式沿边清扫的时候它负责检测道路边缘和路肩PLC根据它的信号实时修正方向让车始终保持稳定距离。选NPN常开输出型和PLC输入端直接兼容。电量检测方面最省事的做法是装一个可调电压继电器串在电池正负极之间整定到44V左右。电池电压降到44V继电器动作给PLC一个低电量信号。要求更高的话可以加一路模拟量输入模块直接把电池电压读到PLC里做均值滤波和滞回判断避免行驶过程中大电流引起的电压瞬时跌落造成误报警。3. 控制逻辑设计从顺序控制到梯形图3.1 运行模式与联锁条件设计PLC程序的核心我概括成一条主线、两套模式、三层保护。一条主线就是清扫动作流程风机先启动主刷启动边刷启动行走开始。两套模式是手动和自动。手动模式下前进、后退、转向、各执行机构都可以单独操作主要用于驾驶转场和人工辅助清扫自动模式下车辆按固定路线和固定流程完成贴边清扫。模式切换开关必须在停机状态下切换程序里要做互锁运行中拨动模式开关不会生效防止误操作造成动作错乱。三层保护指的是急停保护、门检保护和低电量保护。急停是最高优先级任何时候按下所有输出立即切断包括行走和清扫动作垃圾箱门没有关好不允许进入自动清扫防止灰尘从箱门缝隙泄出来电池低电量时先停清扫机构保留低速行走能力让驾驶员能开到充电点。3.2 清扫动作顺序为什么必须先“吸”后“扫”这个顺序看起来不起眼实际是设备效果相差巨大的原因。启动清扫时PLC先输出Y10启动吸尘风机延时1.5秒再输出Y7启动主滚刷延时0.8秒再输出Y6启动边刷最后才允许行走动作。停机时顺序反过来先停边刷和主刷延时2秒后再停风机最后停行走。原因在于主刷转动会把垃圾和灰尘从地面卷起来如果吸尘风机还没有建立负压这些灰尘会直接飘到空气中形成二次污染。反过来停机时如果先停风机风道和吸尘口残留的灰尘就会落回地面让风机多转2秒钟能把管道里的余尘吸干净。这个细节一开始做样机的时候没注意现场一开机就是一团灰调完顺序之后效果立竿见影。用梯形图指令来表达这段核心逻辑大致是LD X1 // 启动按钮 OR M0 // 运行标志保持 AND M2 // 总允许运行条件急停未按、门已关闭、电池正常 ANI X2 // 停止按钮 OUT M0 // 运行状态输出 LD M0 // 运行中 OUT Y10 // 第一步吸尘风机启动 LD M0 AND T0 // 延时1.5秒 OUT Y7 // 第二步主刷启动 LD M0 AND T1 // 再延时0.8秒 OUT Y6 // 第三步边刷启动3.3 行走与差速转向逻辑行走部分的梯形图最核心的是方向互锁。左轮正转和左轮反转不能同时输出右轮同理否则会直接烧驱动器件。程序里每一组都要串联对方的常闭点。前进、后退和原地转向的状态表如下动作Y0左轮正转Y1左轮反转Y2右轮正转Y3右轮反转前进ONOFFONOFF后退OFFONOFFON原地左转OFFONONOFF原地右转ONOFFOFFON停车OFFOFFOFFOFF正常行驶转弯不用原地反转通过PLC切换左右轮速度档来实现。比如车向前走的时候要左转PLC让左侧驱动器的速度信号从高速切到低速右侧保持中速左右轮产生差速车辆自然向左偏转。Y4和Y5两个速度档信号就是干这个用的。自动模式的往返逻辑我采用的是“恒定速度加贴边修正”策略。车速固定在低速档PLC用一个定时器按运行时间估算距离走到设定时间后触发原地180度掉头再返回起点。这个方案不需要编码器和复杂导航对PLC这种以数字量控制为主的平台非常合适。前提是地面条件相对规整如果场地全是杂物障碍就要把避障策略加进去。避障流程是这样设计的超声波传感器检测到前方障碍物距离小于1米时PLC蜂鸣器鸣叫车辆减速到停止如果障碍物在3秒内没有移开PLC执行一个“左转或右转绕行”动作——先原地转向90度前进固定距离再反向转回来然后继续沿原方向行驶。这套逻辑写起来不复杂关键在于绕行过程中要暂停清扫机构的行走速度联动防止刷子卡在障碍物边缘。3.4 低电量保护与自动回充逻辑低电量保护不能做成一瞬间的电压判断否则车辆起步瞬间电压跌落就会误报。程序里对X14低电量信号加一个3秒延时判定连续3秒都处于低电压状态才确认进入保护流程。保护执行顺序由PLC按指令一步步做先停止边刷和主刷接着停止风机和洒水蜂鸣器间歇鸣叫行走速度强制降到最低档只允许低速驶回充电点。如果场地上装了充电桩并且X15到位信号有效PLC会自动执行对接流程——低速对位、到位停止、输出充电接触器进入充电状态。这套逻辑用了两个关键技巧一是把低电量判断和动作执行分成两个状态程序结构清晰二是所有报警都通过一个蜂鸣器输出用不同鸣叫节奏区分故障类型现场不用看代码也能听出问题。4. 装配接线与现场调试实录4.1 电气装配的硬规矩硬件装配这一关如果做不好程序写得再好也会被干扰折磨到怀疑人生。我列几条自己踩过坑之后定下来的规矩第一动力线、信号线必须分槽走线。电机的高压大电流线和传感器的信号线不能在同一个线管里并排走两路线的间距尽量拉到40厘米以上。实在没法避开的时候交叉要走90度直角不要平行接近。第二PLC电源必须独立。控制回路的24V由DC-DC模块单独供电不要和电机驱动器的控制电源并联。整个系统的地线采用单点接地24V负极和48V电池负极只在控制柜内的一点连接其他地方都严格分开防止地环路引入噪声。第三电机驱动器到电机的动力线尽量短而且最好穿屏蔽管屏蔽层单端接地不要两头都接。我见过很多诡异的“PLC随机复位”问题最后查出来都是电机线太长、没有屏蔽干扰直接串进了PLC的电源输入端。第四控制柜内配一个总急停继电器。物理急停按钮按下后不仅PLC收到信号还要直接切断行走驱动器的主电路电源。相当于双保险PLC速度再快也只是逻辑层物理断电才是最后一道防线。4.2 程序编写与下载调试流程程序开发建议按下面这个顺序来不要一上来就想把全部功能写完建立工程选PLC型号按照I/O表把所有点位注释写好。注释和网络标题一定写清楚这个习惯能让你在两个月后回看程序时不至于抓瞎。先写基础回路总允许运行条件、启动保持、停止复位、急停断开。这一步通了后面的逻辑才有地基。写顺序启动和顺序停止用定时器把1.5秒和0.8秒的延时搭好。写手动行走逻辑把方向互锁全部加上先做仿真确认互锁有效。写自动模式状态切换用内部继电器M当状态位按启动、清扫、避障、掉头、返回、停机这几个状态依次排列。写保护报警逻辑把低电量、障碍物、限位信号挂上去。编译下载切RUN先看输入状态再逐个强制输出测试每个执行器动作方向。第一次调试我强烈建议在空载状态下进行就是先把刷子、风机这些执行机构从车上拆下来或者脱离负载只测试电机的启停和方向。负载加上去之后再动逻辑排查问题的难度会增加好几倍。4.3 分系统调试和整车试车记录找了一个约200平方米的水泥车间做实测地面主要是纸屑、木屑、砂尘和短绳。人工清扫大约要30分钟我们的目标是自动清扫20分钟内完成地面无明显残留。调试过程是这样的先做信号自检。断开急停时X0状态必须在监控窗口立即翻转门检信号不到位时Y13运行灯不能亮蜂鸣器和各指示灯一一对应动作。这一轮全部正常。再做手动模式单机测试。单独启动边刷观察旋转方向边刷必须把垃圾从两侧往车体中心聚拢如果它把垃圾往外甩说明电机方向接反直接对调驱动器方向输入或者电机线。然后空载自动测试调整低速档和定时器参数。初设行走速度2.0m/s转了一圈发现自动模式运行速度太快贴边传感器反应不过来而且车体越靠近边缘边刷越容易磕碰。直接把自动模式低速档降到1.2m/s贴边稳定性和清扫效果同时改善。负载清扫测试遇到一个很典型的问题初设边刷转速200r/min碎纸屑和木屑会被边刷直接打飞根本没有机会聚拢到主刷位置。我把边刷转速调到160r/min行走速度同步降到1.2m/s现象立刻好转。主刷转速660r/min不变吸尘风机风量调到最大全程粉尘不起。完整测试跑下来的一组整定参数是这样的参数项初始值实际测试问题最终整定值自动行走速度2.0m/s碎屑外飞、贴边不稳1.2m/s边刷转速200r/min垃圾被抛向外侧160r/min主刷转速660r/min无明显问题660r/min风机提前启动延时0s刷起灰尘来不及吸1.5s边刷启动间隔0s起动瞬间粉尘外溢0.8s避障触发距离0.6m制动距离不足1.0m低电量判定电压42V重载时误报警44V加3秒延时连续运行2小时后电池电压下降到44V附近低电量保护正确触发车辆停止清扫以最低档速度安全行走充电对接信号正常整个保护逻辑没有出现乱跳。5. 常见问题排查与避坑技巧5.1 行走电机不转或者抖动这类问题出现频率最高。排查顺序很有讲究先看PLC输出是否点亮再看中间继电器有没有吸合其次看驱动器有没有使能和报警最后看电机本身。有一次调试PLC输出和继电器都正常驱动器指示灯也正常但电机就是不动还轻微抖动。后来查出来是电机驱动器的默认速度源是外接电位器而PLC给的低速档信号和电位器信号冲突导致驱动器拿到的速度给定量是0。把速度源切换参数改成外部信号控制后问题立刻消失。这类问题不看驱动器说明书很难想到我的建议是接任何不熟悉的驱动器先把说明书里的速度源模式、使能端电平、方向端逻辑这几项参数通读一遍。5.2 边刷丢转和过载保护频繁清扫车最容易缠的东西是扎带、尼龙绳、打包带。边刷一旦缠上这些东西转速会慢慢掉下来电机电流爬升接着过载保护动作整台车停机。程序里可以做一个自动解缠功能检测到边刷电机过载信号后PLC先将边刷反转1秒再正转1秒连续两个循环如果过载信号消失恢复正常。这个功能不复杂但能省掉非常多的人工清理时间。硬件层面边刷电机轴前端加一个防缠绕罩效果比单纯依赖程序反转更好。5.3 自动模式跑偏、贴边距离忽大忽小自动模式跑偏很大概率不是程序问题而是机械和轮胎问题。左右两个驱动轮的胎压不一致或者轮胎磨损程度不同左右轮的实际转速就有差异车辆跑直线时就会自动向一侧偏。调整胎压、更换磨损严重的轮胎是第一步。排除了机械因素就要看贴边传感器的安装姿态。光电传感器离地高度不固定或者探头被灰尘遮挡都会导致距离信号紊乱。清洁传感器镜面之后用一张白纸做标准反射面重新校准安装高度让输出信号在正常路面材质下稳定可靠。还有一个容易忽略的点边刷转速对行驶方向的影响。边刷在高速转动时会产生侧向反推力左右两侧边刷转速不一致等于随时给车辆施加一个偏航力矩。我调整边刷参数后把两边转速误差控制在5转以内跑偏问题明显缓解。5.4 电控受干扰导致随机停车和误报警这种问题最让人头疼因为故障不规律可能每十分钟一次也可能一小时一次。我的排查顺序是先查布线再查接地然后查PLC电源质量。有一次整机连续试车时只要吸尘风机一启动PLC就会偶发复位。查了布线风机线和PLC供电线被绑在了同一个线槽里位置只隔了20厘米。风机电机启动瞬间大电流变化通过电磁耦合干扰了PLC电源导致CPU复位。把所有动力线移到独立线槽外加DC-DC输出端并联一个470uF电解电容和一个0.1uF高频电容后故障彻底消失。这类干扰问题从一开始就要按“动力线和信号线分离、屏蔽线单端接地、控制电源独立”的原则去做不要等出了问题再来补救代价会大得多。5.5 常见故障速查表现象可能原因排查顺序对策所有动作失灵急停回路断开或24V电源故障1.测急停触点 2.看PLC电源灯复位急停检查DC-DC输出单路执行器不动作中间继电器坏或接触器故障1.看PLC输出 2.查继电器线圈换继电器查控制电源保险丝电机抖动不转驱动器速度源设置不对或使能缺失1.看驱动器报警码 2.查速度源模式重设驱动器参数接好EN端自动模式跑偏轮胎压差或传感器脏污1.测胎压 2.清洁传感器镜面统一胎压校准传感器角度随机复位动力线干扰或电源不稳定1.布线检查 2.电源纹波测量分槽走线电源加滤波电容电量误报警电压骤降或设定点不合适1.空载测电压 2.看整车启动电流加延时判断调高整定电压6. 这段调试后的体会与可扩展方向这台车整体做下来我最深的体会是移动设备控制的核心不是堆功能而是把“动作顺序”和“安全联锁”排清楚。只有顺序清晰了才能保证扫过的地面干净只有联锁到位了才敢让设备在没有人盯着的场景里自动运行。如果后续想继续升级有几个很容易落地的方向一是把电量检测从电压继电器升级为模拟量采集通过电流积分估算剩余电量充电和运行状态可以精确显示到面板上对用户体验提升非常明显。二是增加无线遥控模块PLC通过通信口接一个433MHz无线模块操作员可以站在车外遥控转向和启停不用一直跟在车后面或者坐在驾驶位上。三是给自动模式加编码器计程用轮轴编码器代替定时器估算距离自动往返的停位精度能从米级提升到厘米级。配合一个简单的地图记忆功能就能在固定的车间路线上实现定点往返清扫。最后聊一条实战建议也是我反复踩过坑以后总结的项目前期不要急着写程序先把I/O分配表和动作时序表用表格排出来打印成纸贴在控制柜内侧。配线的时候对照I/O表写程序的时候对照时序图现场查故障的时候同样对照这两张纸。这个习惯帮我省下的时间比任何技巧都多。真到了现场一张清晰的I/O表和一份完整的动作时序表比什么都管用。