ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

PLC控制的3x3堆垛式立体库设计与调试全解析

2026/10/3 4:40:00 拓冰建站 浏览量
PLC控制的3x3堆垛式立体库设计与调试全解析 1. 项目概述与方案选型1.1 这堆“书架”到底是怎么动的先把这个项目的核心说清楚。所谓“3x3 书架式堆垛式立体库”就是一台缩小的自动化立体仓库3 列、3 层总共 9 个货位。它的功能是让一台堆垛机你可以把它理解成一台在轨道上跑的小吊车自动找到目标货位把货物存进去或者从货位里取出来。整个过程全部由 PLC 控制不需要人伸手去搬。这个项目最值得做的地方在于虽然它只有 9 个库位但自动化立体库的所有关键动作它全都有。堆垛机需要完成三个方向的动作水平方向在 3 列之间来回行走X 轴、上下在 3 层之间升降Y 轴、货叉伸出和缩回来取放货物Z 轴。三个方向的运动需要协调配合再加上位置判断、货物检测、手动/自动切换、报警保护一套完整的工业控制逻辑就这么串起来了。对于正在做 PLC 入门学习、课程设计或者毕业设计的朋友来说这个题目非常合适。它不是那种空泛的“红绿灯控制”或者“电机正反转”的入门练习而是真正把传感器、执行机构、PLC 程序和机械结构结合在一起的综合项目。做完这一套你对 PLC 编程的理解会从“能写梯形图”升级到“能独立搞定一套小型自动化设备”。1.2 为什么还选 S7-200 这台“老将”说实话S7-200 在西门子产品线里已经属于上一代产品现在新项目基本都用 S7-200 SMART 或者 S7-1200 了。但选它做这个项目我觉得反而有三个实打实的理由第一S7-200 的指令系统非常经典梯形图编程思路和继电器控制逻辑一一对应。像“置位/复位”“移位寄存器”“计数器”“比较指令”这些核心功能用它学一遍换成其他 PLC 你也能很快上手。第二资料极其充分。这东西在高校和培训机构里用了十几年网上能搜到的案例、程序框架、接线图多到看不完遇到问题基本都能查到解决方案。第三二手价格便宜对学生和爱好者友好。一套 CPU 226 加模拟器或者便宜的二手硬件就能把项目跑起来。当然也要说清楚它的短板。S7-200 的通信接口是 PPI 串口没有网口上位机监控和数据交换比较麻烦。如果你后续想接触摸屏或者组态软件更推荐直接用 S7-200 SMART。但从“先学会控制逻辑”的角度S7-200 拿来练手完全没问题程序思路迁移过去非常顺畅。我这套设计就是按 S7-200 来讲的硬件上如果你手里是 SMART照搬逻辑改一下地址就行。1.3 总体控制方案用最稳的组合搭一套小立库整个项目我采用的方案是这样的主控用 S7-200 CPU 226关键前提是必须选晶体管输出型号因为步进电机的脉冲信号只能靠晶体管高速输出。X 轴和 Y 轴用步进电机驱动配合丝杠导轨完成行走和升降动作——步进电机的好处是控制简单给一个脉冲转一个角度开环就能实现定位成本也低。Z 轴货叉用直流减速电机加限位开关就够了因为货叉只有“伸出”和“缩回”两个位置状态不需要精确的连续定位。传感器的配置上每个轴设置一个原点传感器负责机器“回家找零”每个货位的列位置和层位置都布置定位传感器确保定位准确货叉位置装有货物检测光电用来判断货叉上有没有货。这样一个配备下来9 个库位、3 轴运动、手动自动切换、报警保护全部覆盖硬件成本控制在一个非常合理的范围内。注意S7-200 选型时一定要先确认输出类型。步进电机需要 PLC 输出脉冲信号继电器输出型 CPU 的机械触点开关频率根本跟不上步进驱动会抖动甚至丢步。这个坑我见过太多人踩了哪怕程序写得再漂亮输出类型不对照样转不起来。2. 硬件选型与 I/O 规划2.1 核心部件清单与选型理由先把这套立库需要的硬件列个清单出来方便你照着备货。我按当时实际用下来的方案说不搞最贵的只搞最稳的。主控 PLC 用 S7-200 CPU 226 DC/DC/DC。这个型号自带 24 路输入、16 路输出对 3x3 立库来说资源非常充裕甚至还有余量接触摸屏或者备用传感器。CPU 224XP 也可以只是输入输出点少一些做这个项目也够用。X 轴水平行走和 Y 轴升降我推荐 57 步进电机 细分驱动器。57 步进在这个负载级别下扭矩足够配上丝杠导轨重复定位精度能做到毫米以内。驱动器选常见的 DM542 或者同类型号就行电流设定在 1.5A2A 之间。Z 轴货叉用 12V/24V 直流减速电机带动齿轮齿条或者同步带两头各装一个限位开关。货叉速度不用快到位精度靠限位保证。传感器的配置我用了三种类型原点定位用槽型光电开关每轴一个列位置和层位置定位用 NPN 常开型接近开关货叉上的货物检测用对射型光电传感器。接近开关的好处是金属检测、不受环境光干扰用在定位上很合适对射光电用来检测货物是否存在响应速度快比漫反射光电靠谱。电源分成两路PLC 和传感器共用一路 24V 直流开关电源步进驱动器单独用一路避免电机启停时的电压波动干扰传感器信号。如果你用的是 AC 220V 供电的 CPU 226那就更要注意把驱动器和 PLC 的电源分开取电。2.2 位置检测方案别把宝全押在脉冲计数上这是整个项目里最关键的硬件决策我单独拿出来讲。很多人做步进定位时有一个习惯靠 PLC 给步进驱动器发脉冲的数量来计算当前位置走到多少脉冲就到多少位置。这套方法在理想情况下没问题但实际运行中很容易翻车——步进电机一旦堵转、丝杠一旦打滑、或者有人手动推了机构一下脉冲数和实际位置就对不上了而且没有任何办法自我纠正。所以我在这个项目里采用的是“脉冲计数 定位点修正”的双重方案。X 轴每一列的定位点安装一个接近开关当检测到列定位点信号时把脉冲计数值修正为当前列的标准值。Y 轴每层同理。这样即使中间出现少量丢步只要运行到目标位置附近定位点传感器一触发位置值马上被拉回正确状态。如果你想把硬件再简化至少也要保证每一轴有一个原点传感器作为回零基准。回零的动作是先慢速向原点方向移动碰到原点信号后立即停止然后以极慢速度反向离开原点信号再慢速正向压上原点信号最后以这个位置作为绝对坐标零点。这套回零逻辑虽然啰嗦但可靠性远高于“撞上就停”。2.3 I/O 地址分配表理清楚每一根线为了让你在写梯形图之前就心里有数我把 I/O 分配表完整列出来。这是 PLC 项目的第一步也是很多人偷懒跳过的一步——结果到了接线和调试的时候一团乱麻。地址分配合理了程序写起来会轻松非常多。输入信号分配如下地址信号名称说明I0.0X 轴原点光电水平行走左端原点位I0.1X 轴 1 列定位第 1 列列位置检测I0.2X 轴 2 列定位第 2 列列位置检测I0.3X 轴 3 列定位第 3 行列位置检测I0.4X 轴右限位水平方向超程保护I0.5X 轴左限位水平方向超程保护I1.0Y 轴原点光电升降底部原点位I1.1Y 轴 1 层定位第 1 层层位置检测I1.2Y 轴 2 层定位第 2 层层位置检测I1.3Y 轴 3 层定位第 3 层层位置检测I1.4Y 轴上限位升降方向超程保护I1.5Y 轴下限位升降方向超程保护I2.0Z 轴缩回限位货叉缩回到位信号I2.1Z 轴伸出限位货叉伸到位信号I2.2货叉货物检测对射光电有货为 ONI2.3急停按钮常闭触点断开即急停输出信号分配如下地址信号名称说明Q0.0X 轴步进脉冲水平行走电机脉冲输出Q0.1Y 轴步进脉冲升降电机脉冲输出Q0.2X 轴步进方向ON 为右行OFF 为左行Q0.3Y 轴步进方向ON 为上行OFF 为下行Q0.4Z 轴电机正转货叉伸出Q0.5Z 轴电机反转货叉缩回Q0.6运行指示灯自动运行状态指示Q0.7报警指示灯故障状态指示Q1.0蜂鸣器警报声音输出这里有个细节值得注意X 轴和 Y 轴的步进方向信号我用的是 Q0.2 和 Q0.3而不是直接用 Q0.0 和 Q0.1 之外的任意点是为了接线和查找故障时方便——一路脉冲一路方向一眼就能对应上。实际项目里方向信号也是普通的开关量输出用哪个点都行但保持这种一一对应的习惯后面调试会省心很多。2.4 接线时容易被忽视的三个细节接线是整个项目里最枯燥但最容易出错的环节。我这里只挑三个最典型的坑讲。第一个是共地问题。步进驱动器的脉冲输入信号一般要求 PLC 输出端和驱动器信号端共用一个电源地。如果你用的 CPU 是漏型晶体管输出一定要确认 1M 端子的接法。S7-200 CPU 的输入公共端可以接正或者接负取决于传感器是 NPN 还是 PNP。我全项目统一用 NPN 常开传感器公共端 1M、2M 都接 24V 电源正极这样传感器的信号线输出低电平有效和 PLC 输入内部电路匹配。第二个是步进驱动器的脉冲信号电平。有些步进驱动器支持 5V 或者 24V 信号S7-200 的晶体管输出高电平大约是 24V如果驱动器只能接受 5V就得串电阻限流否则会烧掉驱动器的高速光耦输入端。买驱动器时直接挑支持 24V 信号输入的型号省去这个麻烦。第三个是继电器触点保护的接线问题。Z 轴直流电机用的是 PLC 继电器输出或者外接中间继电器控制电机正反转切换时会有反向电动势如果不在电机两端并联续流二极管用不了多久就会把继电器触点烧黑。续流二极管的方向要反着接正极接电机负极负极接电机正极这样断电瞬间的反向电流才能被短路掉。3. 软件设计与梯形图实现思路3.1 先定流程手动、回零、自动三种模式软件设计的第一步永远是理流程而不是急着写梯形图。我在这套立库里设计了三种运行模式手动模式、回零模式和自动模式用一个模式选择开关切换。手动模式用于调试和应急。操作者可以通过按钮点动控制 X 轴左右、Y 轴上下、Z 轴伸缩每个动作都是按下动、松开停。这个模式看似简单但必不可少——没有手动模式你连最基本的机械行程都无法确认更别说调试自动程序了。回零模式解决的是断电重启后的位置丢失问题。所有相对定位的系统都必须先回零才能建立绝对坐标。回零的顺序固定为先缩回 Z 轴货叉再 Y 轴降到原点最后 X 轴回到原点。这个顺序是有讲究的货叉先缩回是为了避免升降和行走时撞到货架降到最底层再回 X 轴原点是因为升降在底部时整体重心最低行走时最稳。自动模式是核心执行完整的存取流程。每一次操作分为“入库”和“出库”两种任务。操作员通过按钮输入目标货位编号比如第 2 列第 3 层再选择“存”还是“取”按下启动按钮后PLC 按照固定顺序自动完成所有动作。3.2 库位占用表用 9 个位记住货物状态既然是仓库就必须知道每个库位现在有没有货。我用 V 存储区的 VB0 来存放库位占用状态VB0 的 8 个位分别代表前 8 个库位VB1 的第 0 位代表第 9 个库位3x3 正好 9 个库位。位为 1 表示有货位为 0 表示空位。这个设计的好处是判断库存状态只需要看一个字节对应位即可。比如执行入库操作时PLC 先检查目标库位的占用位如果已经是 1说明这格子有货禁止再次存入直接报警提示“库位已满”。执行出库时反过来如果占用位是 0说明库位本来就是空的直接报警“货位无货”。写梯形图时用位寻址 V0.0、V0.1 这种形式访问对应库位用置位/复位指令来更新状态。举例入库完成后将对应位 S 置位为 1出库完成后将对应位 R 复位为 0。3.3 状态机编程法别把所有逻辑搅成一锅粥3x3 立库的自动流程包含回零、寻列、寻层、伸叉、取货/放货、缩叉、返回等多个阶段。如果全部用普通的启保停电路写梯形图会膨胀到没法看而且排查故障时想死的心都有。我在这套程序里用的是状态机思路把整个流程拆成一个个清晰的“状态”每次只允许一个状态生效状态之间靠转换条件衔接。具体实现方式用内部标志位 M。我定义了下面的状态对应关系状态标志含义M0.0空闲待机M0.1自动回零M0.2X 轴寻址中M0.3Y 轴寻址中M0.4Z 轴伸叉M0.5Z 轴缩叉M0.6取放货完成确认M0.7报警暂停每个状态用一个 M 位表示用“置位仅当前状态、下一步时复位当前状态、置位下个状态”的方式切换。这样梯形的每一段只负责一件事判断当前状态是否成立、判断转换条件是否满足、执行该状态下的输出动作。你甚至可以按状态把梯形图分成几个独立程序段来写每段只维护自己那点儿逻辑。我举一个核心转换链的例子M0.2 表示 X 轴寻址正在执行此时程序比较当前列号VW10和目标列号VW12。如果当前列小于目标列Q0.2 置位右行同时 Q0.0 输出脉冲如果当前列大于目标列Q0.2 复位左行。定位点接近开关触发后修正当前列号为定位点对应的列再和目标比较相等时停止脉冲输出复位 M0.2置位 M0.3 进入 Y 轴寻址。利用比较指令和常开/常闭触点这段梯形图写起来非常直观。3.4 脉冲输出与加减速处理S7-200 的晶体管输出支持 PTO脉冲串输出功能可以用 PLS 指令启动。X 轴和 Y 轴分别由 Q0.0 和 Q0.1 输出脉冲。实际调试中我发现一个非常关键的点起步和停止阶段的加减速对定位精度影响比想象中大得多。如果启动时直接给高频脉冲步进电机会丢步如果到位时直接停机构会因为惯性冲过定位点。解决方法是把速度变化分成三段先用低频脉冲启动升速到中频运行接近目标位置时降速到低频爬行碰到定位点后立即停止。这个“低速启动—高速运行—低速到位”的过程在 S7-200 里可以用 PTO 的包络表来实现也可以更土一点用定时器分段控制输出频率。我的经验是第一版先用分段控制把逻辑跑通等所有机械动作都验证可靠了再回头优化加减速曲线。这个项目定位上本来就是慢速设备只要不丢步、不冲过头速度慢一点完全能接受。追求表面的“快”反而会带来一堆定位问题不划算。3.5 安全保护逻辑急停和超程处理任何时候安全逻辑都要单独占一段并且无条件优先执行。我这套立库做了三层保护第一层是 I2.3 急停按钮采用常闭触点接入。正常状态输入为 ON一旦按下急停输入断开程序立即复位所有输出用 ZRST 指令将 Q0.0~Q1.7 集中复位同时置位报警状态。第二层是 X 轴和 Y 轴的行程限位开关。I0.4/I0.5 是 X 轴的左右限位I1.4/I1.5 是 Y 轴的上下限位。限位开关接入梯形图中的停止条件——只要限位信号为 ON对应方向的输出立即断开。这一步不仅是保护设备也是保护操作者的手。第三层是逻辑互锁。Z 轴电机正反转两个输出 Q0.4 和 Q0.5 绝对不能同时为 ON否则电机制动甚至烧毁。梯形图做法是在正转回路中串入反转输出的常闭触点反转回路中串入正转输出的常闭触点双保险。同理X 轴和 Y 轴的方向信号虽然没有触点粘连风险但程序里也应确保目标到达时脉冲输出先停、方向信号后撤。4. 实操调试过程与关键步骤回放4.1 上电前的检查顺序通电之前多花十分钟所有接线完成以后别急着上电。我每次调试设备上电前都会按固定顺序检查一遍磨刀不误砍柴工。第一步万用表通断测试。断开所有电源用万用表蜂鸣档检查每一路 24V 电源的正负极有没有短路检查 PLC 输出点到中间继电器或者驱动器之间有没有接错。重点检查传感器电源线和信号线是否互相短接——NPN 传感器的三根线颜色是棕正极、蓝负极、黑信号如果信号线碰到正极线传感器会直接烧掉。第二步确认 PLC 的 24V 传感器电源没有被外部电源反向灌入。很多新手会犯这个错传感器用外接电源供电但信号线接到了 PLC 输入口两边电源地没有共地导致信号电平完全错乱。正确做法是传感器电源直接用 PLC 自带的 24V 输出或者外接电源必须和 PLC 电源共地。第三步用万用表对 PLC 输入口做信号测试。在不上电负载的前提下一个人拨动传感器挡片或者手动触发接近开关另一个人在 PLC 输入端测量是否有 24V 电平变化。这一步提前把接线问题排除掉避免后面写程序时碰到“输入信号明明接线正确却检测不到”的怪问题。4.2 回零和点动调试先让机构动起来上电后第一步操作是先手动把 Z 轴货叉缩回到位让 I2.0 有信号然后手动把 Y 轴降到最低再手动把 X 轴移到左侧原点附近让 X 轴原点光电 I0.0 感应到。这个过程直接用手动模式操作不要跳过。目的是保证上电时就处于一个已知的位置状态避免回零程序启动瞬间出现方向混乱。确认手动模式每个按钮方向都正确后再切换回零模式。按下回零按钮观察回零顺序是不是我们预设的“缩叉→降层→回列原点”。如果中途某个方向不动优先检查对应方向输出点有没有信号、步进驱动器是否使能、方向信号电平是否正确。这里有个很容易踩的坑步进驱动器出厂默认方向信号是“高电平有效”S7-200 输出高电平是 24V但如果驱动器是“低电平有效”的型号PLC 输出为 OFF 时方向反而是反的。我习惯在调试时先把驱动器方向信号接成手动开关测试确认“正转”到底对应往哪边走再接入 PLC 的输出点避免方向接反导致回零程序把机构往反方向顶到极限。4.3 编写和下载程序STEP 7-Micro/WIN 的实战细节S7-200 的编程软件是 STEP 7-Micro/WIN和 SMART 用的 Micro/WIN SMART 不是同一个软件下载程序和通讯配置的坑比较多我碰到的两个典型问题值得说。第一个是通讯连不上。S7-200 通过 PPI 协议和电脑通信用的是专用 USB-PPI 电缆。初次使用时先在“设置 PG/PC 接口”里选择正确的通信接口然后把 PLC 的站地址设成 2不能和电脑冲突。如果软件始终找不到 CPU多半是通信口实际是 COM 口和软件默认读到的端口号不一致这时要去设备管理器手动把 USB 转串口的端口号改成 COM1~COM4 范围内再回到软件刷新。第二个是尝试用老式 USB-PPI 电缆时遇到驱动兼容性问题。部分老驱动装入后会导致电脑 USB 设备异常极端情况下甚至出现电脑关机时报错或者无法关机的情况。如果你用的是淘来的二手老电缆建议优先找厂家提供的最新版本驱动并且不要同时插着其他 USB 转串口设备。实在不行就换支持 SMART 的编程电缆或者直接用模拟器验证逻辑程序调试时把通信问题放到最后处理。4.4 自动模式的完整联调以“入库第 2 列第 3 层”为例自动逻辑写完后不要一上来跑全套先在空载条件下分别测试 X 轴寻址、Y 轴寻址和 Z 轴动作每次只测一个轴。我以一次典型入库操作为例把联调过程拆开给你看。操作步骤把模式打到自动用拨码或者数字输入设定目标列号 2、目标层号 3选择“存”按下启动。第一步PLC 读取目标库位 V0.4 的当前状态。如果已经有货报警灯亮流程不启动。确认空位后进入回零流程。因为设备上电后已经手动回零过了所以回零流程会快速确认当前位置在原点上然后直接进入下一步。第二步X 轴寻址。当前列号为 1目标列号为 2程序输出右行脉冲。货叉从原点向右移动经过第 1 列定位点时接近开关触发程序将当前位置修正为 1继续向右到达第 2 列定位点时I0.2 触发当前位置修正为 2和目标列号相等X 轴停止。指示灯保持运行状态。第三步Y 轴寻址。当前层号为 1目标层号为 3程序输出上行脉冲。经过第 2 层定位点时修正一次位置到达第 3 层定位点后停止。此时堆垛机停在“第 2 列、第 3 层”的正前方。第四步Z 轴伸叉。Q0.4 输出货叉伸出到位后 I2.1 信号触发。此时货物检测光电 I2.2 应该没有遮挡——因为是空货位取的是空载入库。如果光电检测到有货程序会报警并停止防止把货物塞进已经被占用的位置。第五步Z 轴缩叉。Q0.4 断开Q0.5 输出货叉缩回I2.0 触发后确认缩回到位。此时货物已经留在货位上。程序执行 V0.4 置位表示第 2 列第 3 层已有货。第六步流程结束恢复到空闲待机状态运行指示灯熄灭。整个过程中操作员不需要任何干预。如果哪个环节没有按照预期走直接把模式切回手动用点动把机构摇到安全位置再对照梯形图的中间标志位状态找问题——这也是我把状态位设计成 M 区全局可见的原因编程软件的状态表里一眼就能看到当前停在哪个状态。5. 常见问题与排查技巧实录5.1 问题速查表调试阶段最常碰到的 7 个故障我把做这套立库时亲身遇到过的典型故障整理成一张速查表。这些都是反复出现过、并且非常有代表性的问题你调试时大概率也能碰到。问题现象可能原因解决措施步进电机抖动不走脉冲输出点选成了继电器输出速度过高驱动器电流过小换晶体管输出 CPU降速调大驱动电流定位点过了才停运行速度太快惯性过冲加减速没做好增加到位前的低速爬行段提高定位点减速触发范围重复几次后位置偏移步进丢步丝杠间隙定位点修正逻辑没生效检查机械连接是否松动确认定位点修正程序确实覆盖了所有列/层降低加减速加速度光电传感器信号误触发环境光干扰对射传感器安装偏移加装遮光罩调整传感器支架和挡片位置自动流程卡在某一步不动对应状态的转换条件不满足某个输入信号没到位用状态表查看当前 M 位倒查该状态所有转换条件对应的输入信号货叉伸出但取不到货货叉行程不到位货物放置位置偏移机械间隙检查 Z 轴限位安装位置微调到位挡块上电后所有输出不动作急停回路断开PLC 处于 STOP 模式公共端接线错误检查急停常闭触点是否导通确认运行模式重新确认公共端接线5.2 定位精度和重复定位精度是两回事调试中一定要区分两个概念定位精度和重复定位精度。定位精度指的是实际到达位置和目标位置的偏差多大重复定位精度指的是同一个位置跑十次每次到的位置偏差有多大。在这个项目里由于每个列位和层位都有硬定位点传感器定位精度主要取决于接近开关挡片的机械安装位置反复测量后把挡片调整到货叉正对货位中心即可。而重复定位精度取决于步进电机的丢步情况、丝杠的间隙、以及每次到位时的减速过程是否可靠。我实测下来的经验是把到位减速段拉长、让机构以“爬行”速度压上定位点重复定位精度能明显提升好过你调大电机扭矩或者换更高档驱动器。一个实操技巧把定位点传感器安装在一个可微调的支架上装好后先用千分表或者直尺测量货叉中心相对货位中心的偏移量然后微调支架反复测三次取平均值把它调到零位。因为接近开关的感应面是一个范围你不能只看“灯亮了”就算到位而是要看“灯亮时货叉中心是不是正好在目标中心”。5.3 货物检测传感器的安装玄机货物检测对射光电的安装位置看似简单其实很有讲究。我最初把传感器装在了货叉根部结果货物稍微短一点就检测不到后来把传感器装在货叉前端又出现“货物还没完全伸出就提前检测到”的误判。最终的方案是对射光电装在货叉中段两侧光源高度在货物厚度的中心线上。这样货叉伸入货位时光电信号能覆盖整个货叉承载区域只要货物在货叉上就必然遮挡光路。同时在货叉伸出取货前程序先检查光电是否有信号——如果伸出前就检测到“有货”说明货叉上已经有残留货物禁止伸叉防止二次装载。还要注意对射光电的红外光在某些高反光货物表面会产生反射可能导致检测不到遮挡。如果货位的货物是光面纸箱或者金属件可以考虑改用光电反射板或者把传感器位置错开一点角度让反射光偏离接收器。5.4 数据掉电保持断电重启后别忘记自己的货这是个非常容易遗漏的细节。S7-200 的 V 区默认保持属性取决于 CPU 型号和系统块设置M 区默认断电不保持。如果程序里用 M 区存放“当前库位占用”状态断电重启后所有库位信息全部清零实际货架上明明有货程序却认为全是空位再执行入库就会把货物堆叠进去。我的做法是把库存状态存到 V 区例如用 VB100 作为 9 个库位的占用位表同时在系统块里把 VB100 对应的 V 区范围设置为保持。S7-200 的保持范围可以在系统块里设置根据 CPU 型号有对应的存储区范围。这样断电重启后库存信息还在。对于当前 X 轴位置和 Y 轴位置这类数据我建议干脆不保持因为机械位置断电后会漂移保持旧数据反而误事。停机重启后一律执行回零以回零后的位置为准。库存信息保持机械坐标不保持这是小型立库项目里一个很实用的数据管理思路。5.5 老设备兼容性问题碰到问题先怀疑驱动别怀疑PLC做这个项目时如果用的是二手 S7-200 和旧版编程电缆碰到通信类的问题不要第一个怀疑 PLC 坏了。绝大多数情况是电缆驱动或者系统兼容的问题。我在调试时遇到过“电脑无法关机”的情况排查到最后就是老 USB-PPI 电缆的驱动在 Windows 系统上出了问题换了一根带新驱动的 USB 多主站电缆就解决了。如果你也遇到类似问题优先更新驱动、换通信端口、检查系统日志不要一上来就动 PLC 硬件。6. 写在最后的一点体会这套 3x3 立库项目做完之后我的体会是它真正的难点不在 PLC 程序本身而在机械和电气的配合。程序逻辑写得再漂亮货叉机械间隙大一点、定位支架松一丝、货物重心偏一点实际运行就会出现各种“程序没毛病但就是不走”的问题。如果你准备把这个题目作为课程设计或者毕业设计我给你一个最实在的建议先把手动模式和回零模式做好做透再碰自动模式。手动模式把三个轴的行程、方向、限位全部验证一遍回零模式把每轴的回零逻辑跑稳自动模式的基本框架就不会出大问题。把 3x3 跑通之后想扩展到 4x4 甚至 5x5程序结构完全不用改只需要扩展库位占用表、增加对应列/层的定位传感器、改一下地址和数量即可。最后送你一个小技巧调试时多做“空载试运行”少做“带载试运行”。货物在货叉上的动态影响非常大先确保空载状态全流程稳定再逐步放入真实货物测试。我当初带载调试时好几次因为货物偏置导致货叉变形报警后来养成了先空载三遍、再带载一遍的习惯故障率直线下降。做设备稳永远比快重要。