ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AGV立体仓储系统设计:堆垛机、滚筒线与FX2N控制及多AGV路径规划

AGV立体仓储系统设计:堆垛机、滚筒线与FX2N控制及多AGV路径规划 简介这份文档是华南理工大学机械工程与自动化专业2015届本科毕业设计论文《基于AGV的立体仓储系统设计》面向机械、自动化及物流工程方向的学生与工程技术人员用于理解仓储系统由平面叉车模式向立体自动化转型的完整设计思路。压缩包内仅含1个doc文件约1.78MB即论文正文全文包含原创性声明与授权书、中英文摘要、各章节机械结构设计与AGV控制系统论证及参考文献等完整学术材料可直接作为同类课题选题、写作与答辩的参考范本。论文先论述立体仓储在工业场景中的应用前景与演变趋势再逐一解析仓库单元结构架、堆垛机、物流运输滚筒线等机械模块的设计原理与协同方式重点部分以三菱FX系列PLC为控制中心结合触摸屏界面、模拟量/数字量转换模块、直流无刷电机及驱动器给出AGV自主导航与物料搬运的程序设计方法。目前该资源已有134人学习适合希望快速掌握仓储自动化系统集成逻辑、获取课程设计或毕业设计框架的读者研读。1. 从平面库到立体库AGV接入点到底该选在哪前年帮一个机械加工车间看原料库改造地面库两百来平两台叉车倒班跑出入库高峰时巷道口堵成一团拣货员拿着单子满场找料。当时讨论的方案就是上一套立体仓储货架往高处要空间水平运输交给 AGV。这套系统的核心其实不是 AGV 本身而是三个物理接口能不能对齐堆垛机货叉与货架的取放接口、滚筒输送线与堆垛机的对接工位、AGV 与滚筒线的上料接口。接口差了十几毫米整条线就卡死。这篇内容拆的是这套基于 AGV 的立体仓储系统机械结构怎么定尺寸、堆垛机和滚筒线怎么选型、三菱 FX2N 的 PLC 程序怎么把三方串起来、以及三台 AGV 同时跑的时候路径怎么规划。做过机械本体设计、PLC 控制或仓储自动化方案的同行可以对着参数和程序往下看。2. 货格尺寸与堆垛机选型误差怎么分配到毫米级立体库最先定下来的不是货架是货格。货格净空尺寸一旦定错后面堆垛机精度、货叉行程全要重算。这一章把货格尺寸的误差链、堆垛机驱动功率校核、滚筒线对接三个环节拆开讲。2.1 货格净空尺寸与误差链分配货格尺寸由货物单元尺寸加上四周间隙决定。间隙不是随便留的它要吃掉一整条误差链货架立柱的制造与安装误差、堆垛机行走方向的定位误差、升降方向的停止误差、货叉伸缩的重复定位误差再加上货物在托盘上的摆放偏移。间隙留大了空间利用率掉留小了取放时货叉会刮蹭货架。常见做法是把误差按平方和的方式叠加再乘一个安全系数。堆垛机的行走停止精度标称 ±2.0mm货叉伸缩重复精度 ±1.5mm货架安装偏差按 ±3mm 估托盘货物偏移按 ±5mm 估这几项叠起来单边间隙至少要到 10mm 上下才稳。import math # 各环节单边误差mm err_rack 3.0 # 货架制造与安装偏差 err_travel 2.0 # 堆垛机行走停止精度 err_lift 2.0 # 升降停止精度 err_fork 1.5 # 货叉伸缩重复精度 err_pallet 5.0 # 货物在托盘上的摆放偏移 # 误差按平方和叠加假设各误差相互独立 sigma math.sqrt(err_rack**2 err_travel**2 err_lift**2 err_fork**2 err_pallet**2) k 1.5 # 安全系数 clearance round(k * sigma) # 单边间隙取整 print(f合成误差 {sigma:.2f} mm建议单边间隙 {clearance} mm) # 输出合成误差 6.87 mm建议单边间隙 10 mm这段计算的关键在于“独立误差平方和叠加”这个假设如果货架和堆垛机共用同一套基准导轨两者误差是相关的就得改成直接相加。安全系数 1.5 是经验值货物越重、货格越高这个值要给到 1.8 以上。最终货格净空 货箱尺寸 2 × 单边间隙再加上货叉插入所需的底部空间一般不小于 80mm。2.2 巷道式堆垛机机构组成与驱动功率校核巷道式堆垛机承担垂直方向的搬运机构上分行走驱动、升降驱动、货叉伸缩三部分配套立柱、载货台、天轨和地轨。天轨和地轨同时给堆垛机做导向天轨在上部限制摆动地轨承载全部重量这种“上部导向、下部承重”的结构主要用于中高层货架。行走轮直径、减速比、电机功率这几个参数决定了堆垛机的加减速性能直接关系到节拍。参数项行走机构升降机构货叉机构电机类型伺服电机伺服电机伺服电机功率11.0 kW9 kW0.4 kW减速比1/111/201/14传动方式链传动链传动齿轮齿条直线导轨最大速度16 m/min45.4 m/min—停止精度±2.0 mm±2.0 mm±2.0 mm行走轮直径300 mm——行走功率的校核逻辑是先按最大速度算摩擦阻力和加速阻力再除以传动效率。行走阻力主要来自轮轨滚动摩擦和导轨侧向摩擦一般取整机重量的 0.020.03 作为摩擦系数。升降机构的校核反过来要算上载货台和货物的重力势能变化。这套参数里升降速度 45.4 m/min 明显快于行走的 16 m/min是因为垂直方向的行程短、启停频繁靠高加速度压缩单次存取时间。停止精度统一卡在 ±2.0mm这个值直接喂给了 2.1 节的误差链。框架结构上常见做法是铝合金管先连接装配再焊接主要看中装配难度低、外观整齐同时通过加强顶部和底部区域保证机架刚度。行走机构一侧要留操作维修平台和安全围栏这个在方案评审里经常被漏掉后期加装很麻烦。2.3 滚筒输送线与堆垛机的对接工位滚筒线负责水平方向的中转把货物在入库口、堆垛机对接工位、AGV 上料口之间搬运。操作员把托盘放到输送机上按启动按钮货物自动往堆垛机对接工位走堆垛机按地址过来取出库时反过来堆垛机把货放到对接工位滚筒线送到出货口或者 AGV 上料口。参数项数值最大输送速度25 m/min变频控制传动方式链传动滚道表面平整度±1.0 mm停止工位数6停止精度±2.0 mm滚道表面平整度 ±1.0mm 这个指标比堆垛机的停止精度还严原因是货物托盘底面的平整度直接决定了货叉能不能插进去。如果滚筒高低不齐托盘会翘货叉伸进去就会顶到托盘底面。对接工位的高度要和堆垛机的取货高度对齐偏差控制在 ±3mm 以内。# 对接工位高度校核滚筒面高度与堆垛机取货高度一致性 roller_height 650.0 # 滚筒线对接工位面标高mm stacker_pick 653.0 # 堆垛机该工位取货标高mm tol 3.0 # 允许偏差 diff abs(stacker_pick - roller_height) if diff tol: print(f对接合格偏差 {diff} mm) else: print(f需调整滚筒线支脚当前偏差 {diff} mm超出 {tol} mm)对接高度的调整靠滚筒线支脚的可调地脚现场安装时逐工位复测。变频控制让滚筒线在接近停止工位时降速避免托盘在惯性下冲过工位这也是 ±2.0mm 停止精度能实现的前提。3. AGV 本体磁导航差速驱动的机械与硬件配置AGV 这一侧要解决的问题是“怎么沿着固定路线走、怎么知道到了哪个站、怎么在没电之前回去充”。机械设计上驱动布局决定了转弯半径和导引精度硬件选型上导航方式、地址读取、避障传感器三者要匹配现场环境。3.1 磁导航方式与差速驱动模型这套 AGV 用的是磁导航地面上贴磁条车体底部的磁传感器阵列检测磁条的横向偏移控制器据此修正左右驱动轮的速度差。差速驱动的核心是左右两个驱动轮独立调速左轮快右轮慢车就往右转。转弯半径由轮距和轮速比决定。# 差速驱动转弯半径估算 wheel_base 900.0 # 左右驱动轮中心距mm v_left 30.0 # 左轮线速度m/min v_right 20.0 # 右轮线速度m/min # 差速模型转弯半径 R (B/2) * (v_l v_r) / (v_r - v_l) R (wheel_base / 2) * (v_left v_right) / abs(v_left - v_right) print(f转弯半径约 {R:.0f} mm) # 输出转弯半径约 2250 mm这个公式说明一件事要减小转弯半径要么缩小轮距要么拉大左右轮速差。但速差太大时磁传感器容易脱线实际取值要配合磁条的曲率半径。表里给出的最小转弯半径 R900 是整车不含拖车时的极限值做巷道布置时要留出这个余量。采用 4WD 四轮驱动、驱动轮 Φ130 聚氨酯轮配链传动四轮驱动的好处是牵引力大能拖 1000kg 的载重代价是结构复杂、轮系磨损不一致时容易跑偏需要定期做轮径校准。3.2 硬件参数配置与传感器选型AGV 的地址识别用 RFID 地标地面上每个站点埋一张 RFID 标签车底读头经过时读取站号最多支持 255 个站点。避障用红外传感器感应距离 03m配合前端的机械式安全触边做双重保护红外先减速触边触发就直接急停。参数项数值导航方式磁导航行走方向前进/后退驱动方式4WD驱动轮 Φ130 聚氨酯最大速度直线 40 m/min弯道 25 m/min工作速度直线 30 m/min弯道 20 m/min载重能力牵引约 1000 kg水平牵引力753 N爬坡能力1%直线导引精度±10 mm停止精度±10 mm自身重量260 kg电机DC 无刷电机100W × 4蓄电池DC24V / 75AH离线充电导引精度 ±10mm 和停止精度 ±10mm 这两个值比堆垛机的 ±2mm 松很多所以 AGV 和滚筒线的对接工位必须做成喇叭口或者带导向的结构靠机械导向把 ±10mm 的偏差收敛掉不能指望 AGV 自己停准。3.3 蓄电池容量与续航核算供电是 24V/75AH 蓄电池四台 100W 无刷电机。续航不能简单地用“总电量除以总功率”来算因为 AGV 大部分时间在匀速巡航电机实际功率远低于额定值只有起步和爬坡时才接近满载。常见估算方式是按工况拆开巡航按 30% 额定功率、加速按 80%、怠速按 10%。battery_wh 24 * 75 # 蓄电池总能量 1800 Wh usable 0.8 # 放电深度留 20% 保护电池 motor_w 100 * 4 # 四台电机额定总功率 400 W # 按工况占比估算平均功率 p_cruise motor_w * 0.30 # 巡航 p_accel motor_w * 0.80 # 加速 p_idle motor_w * 0.10 # 怠速等待 avg_p 0.6 * p_cruise 0.25 * p_accel 0.15 * p_idle hours battery_wh * usable / avg_p print(f平均功率 {avg_p:.0f} W预计连续工作 {hours:.1f} 小时) # 输出平均功率 166 W预计连续工作 8.7 小时算出来 8.7 小时实际还要扣掉导航传感器、控制器、灯光喇叭这些常电负载大概 3050W最终落到 7 小时出头。方案里写的“连续工作 12 小时以上”通常是理想工况或者配了中途快充做节拍规划时按 7 小时排班更保险。4. 三菱 FX2N 控制程序I/O 分配与三方握手时序控制中枢用三菱 FX 系列 PLCFX2N 是从 16 点到 256 点的 I/O 可选速度快、定位控制能力够用。这一章落到 I/O 怎么分配、无刷电机怎么调速、堆垛机-滚筒线-AGV 三方怎么握手。4.1 PLC I/O 分配与外围模块选型先做 I/O 点数盘点。输入侧包括启动、停止、急停、故障清除、左右限位、到位检测、货叉前限后限、AGV 呼叫信号、滚筒线工位光电输出侧包括行走正反转、升降、货叉伸缩、滚筒线变频器启停、三色灯、喇叭。点数盘完再选主机型号和扩展模块。模块型号用途点数/通道主机FX2N-64MR主控继电器输出32 入 / 32 出扩展输入FX2N-16EX限位、光电补充16 入模拟量输入FX2N-2AD磁传感器偏移量、电量计2 通道模拟量输出FX2N-2DA无刷电机驱动器调速2 通道通信FX2N-485BDRFID 读头、触摸屏RS-485选主机时 I/O 点数要留 20% 冗余后期加一个安全门或者检修按钮不至于没地方接。继电器输出型带感性负载接触器、电磁阀时要在负载侧加续流二极管否则触点寿命会明显缩短。4.2 无刷电机调速的模拟量输出程序无刷电机驱动器用 010V 模拟量调速FX2N-2DA 输出通道 1 接左轮驱动器、通道 2 接右轮驱动器。数字量到模拟量的对应关系是 04000 对应 010V也就是每 1V 对应 400 个数字量。速度给定来自 HMI 或者内部速度表。(* 无刷电机差速调速D100 左轮速度给定 0~4000D101 右轮速度给定 *) LD M8000 (* 常 ON *) MOV D100 D10 (* 左轮速度送通道1缓冲 *) MOV D101 D11 (* 右轮速度送通道2缓冲 *) TO K0 K17 D10 K1 (* 写通道1数字量到 BFM#17 *) TO K0 K18 D11 K1 (* 写通道2数字量到 BFM#18 *) (* 通道1/2 转换启动BFM#0 低两位分别置1 *) TO K0 K0 K3 K1 (* 差速修正磁传感器偏移越大左右轮速差越大 *) LD D200 K0 (* D200 为磁传感器偏移正值偏右 *) SUB D100 D200 D101 (* 右轮减速车向左修 *)TO 指令是 FX 系列写特殊模块缓冲寄存器BFM的指令K0是模块编号第一个特殊模块K17/K18是通道 1、通道 2 的数据缓冲地址K1表示写 1 个字。最后一段做差速修正磁传感器偏移量经 FX2N-2AD 采进来存到 D200偏移为正说明车体偏右就把右轮速度减下去让车往左回。注意模拟量输出前要确认 FX2N-2DA 的电压/电流输出模式跳线默认是电压输出如果驱动器要求 420mA 电流信号跳线要改程序里 04000 对应的物理量也会变。4.3 堆垛机—滚筒线—AGV 握手时序与联锁三方握手的本质是一串互锁条件谁的工位空出来谁才允许动作。以出库为例上位机下发出库任务→堆垛机到位取货→放到输送机对接工位→滚筒线启动送到 AGV 上料口→AGV 到位信号触发→AGV 挂上拖车→离开。整个过程里堆垛机取货时对接工位必须为空滚筒线启动时 AGV 必须在位并已挂钩任一条件不满足就挂起并报警。步骤触发条件执行动作联锁条件1出库任务下达堆垛机行驶到目标货位巷道无其他堆垛机作业2货叉前限到位货叉取货、收回载货台高度到位3行走至对接工位放货到滚筒线对接工位光电为空4工位占用信号滚筒线变频启动AGV 在上料口就位5AGV 到位传感器自动挂钩下降挂钩下限到位6挂钩到位AGV 起步牵引前方避障区无遮挡用 PLC 实现时在第 3 步和第 4 步之间插入一个“对接工位空”的判断这个信号来自工位光电开关第 4 步到第 5 步之间要有 AGV 在位确认一般用 RFID 读到本站号加上到位光电双重确认只用其中一个容易被误触发。整套时序里最容易出问题的是第 5 步的挂钩动作机械挂钩没有完全落位时 AGV 就起步会把拖车拉脱常见做法是挂钩下限位开关串进 AGV 起步回路物理硬连锁比程序软连锁更可靠。5. 多 AGV 路径规划与监控系统联调单台 AGV 跑起来不难三台同时跑就会在交叉路口“打架”。常见的做法是把车间地面划成栅格用 A* 算法给每台车算最短路再用优先级或者时间窗做路口避让。5.1 栅格地图与 A* 路径搜索先把地面按 1m×1m 划成栅格货架、堆垛机、充电桩所在格子标成障碍。A* 的估价函数是 f g hg 是从起点到当前点的实际代价h 是到终点的曼哈顿距离启发值。import heapq def astar(grid, start, goal): # grid: 0 可通行, 1 障碍 open_list [(0, start)] came {} g {start: 0} while open_list: _, cur heapq.heappop(open_list) if cur goal: path [cur] while cur in came: cur came[cur] path.append(cur) return path[::-1] x, y cur for dx, dy in ((1,0), (-1,0), (0,1), (0,-1)): nxt (xdx, ydy) if nxt[0] 0 or nxt[1] 0: # 越界 continue if nxt[0] len(grid) or nxt[1] len(grid[0]): continue if grid[nxt[0]][nxt[1]] 1: # 障碍 continue ng g[cur] 1 # 单位移动代价 if nxt not in g or ng g[nxt]: g[nxt] ng h abs(nxt[0]-goal[0]) abs(nxt[1]-goal[1]) heapq.heappush(open_list, (ngh, nxt)) came[nxt] cur return None这段是单台 AGV 的 A* 实现四邻域扩展、曼哈顿启发。三台车同时规划时先按任务紧急度排优先级优先级高的车先规划后规划的车把前面车子已经占用的栅格临时标成障碍。这样算出来的路径不一定是全局最优但保证不会撞上。更严格的做法是加时间窗把每个栅格被占用的时间段记下来避让时看时间是否冲突。5.2 监控画面与联调验证监控层用触摸屏做现场操作上位机做全局调度。触摸屏负责单机调试和手动介入画面上要有运行状态、当前站号、电量、故障代码上位机负责任务队列和多车调度通过 RS-485 或者无线模块下发目标站号。联调时按“单机—双机—全线”三段走先让一台 AGV 空载跑完整路径确认 RFID 站点读取和停止精度再加一台跑会车最后堆垛机和滚筒线全部接入跑出库入库全流程。验证清单里最容易被跳过的是异常工况磁条被叉车压坏、RFID 标签读不到、滚筒线工位货物歪斜顶到货叉。这几项要在联调阶段手动制造出来测一遍尤其是 RFID 读不到时 AGV 是停车报警还是继续走这个逻辑必须在程序里明确写死不能依赖默认行为。量测方面AGV 的停止精度用卷尺每个站点测三次取最大值堆垛机的货叉重复定位精度用百分表打在货叉上测滚筒线对接工位的高度用水平仪复核这三组数据决定了整条线能不能长期稳定跑。本文还有配套的精品资源点击获取
返回列表