ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

FX2n装瓶流水线PLC顺序控制与移位寄存器状态机模板

FX2n装瓶流水线PLC顺序控制与移位寄存器状态机模板 简介这份资源是一份面向电气工程、自动化及相关专业学生的PLC课程设计文档聚焦饮料、食品行业装瓶流水线的控制方案。内容围绕手动与自动两种控制模式展开手动模式下设有10道工序由指示灯模拟配合启动、复位、停顿按钮实现单步移位与两次循环自动模式简化为5道工序每5秒完成一道并循环两次便于对比理解移位寄存器与定时器指令的编程差异。文档还系统梳理了PLC选型依据、I/O分配表与接线图绘制、梯形图及指令语句表编写、系统测试调试流程以及过载保护、紧急停止等安全维护要点并附有设计目的与总结章节。资源包内含1个doc文件约836KB为完整的集中实践报告书可直接用于课程设计参考或编程思路借鉴。目前已有74人学习适合需要掌握PLC编程软件操作、锻炼逻辑设计与问题解决能力的初学者和参赛学生使用。1. 装瓶流水线 PLC 控制到底在控什么第一次拿到装瓶流水线控制这份课程设计的人往往会被两组数字卡住手动模式 10 道工序自动模式 5 道工序输出却只有 Y1 到 Y12。PLC 要做的不是把瓶子真的灌满而是用指示灯和按钮复现一套顺序控制逻辑按下启动工序按移位寄存器往后走定时器负责 5 秒节拍复位和停顿随时打断。它适合电气、自动化专业的集中实践也适合想从继电器控制过渡到 PLC 编程的工程师。FX2n 加 GX Developer 是这套方案里最常见的组合难点不在写一条自锁而在把 10 个工序、2 次循环和两种模式整理成不会串步的状态机。2. FX2n 选型与 I/O 分配从 10 道工序到端子号2.1 为什么是 FX2n而不是继电器板或单片机装瓶流水线的被控对象看起来简单选瓶、装瓶、盖盖、贴签、传送、入库每一步用指示灯模拟。但课程设计里明确要求手动移位、自动定时、循环两次、复位和停顿这些动作放在继电器回路里会变成一堆时间继电器和中间继电器互相咬合改一个工序就要重新接线。单片机也能做但需要自己处理输入消抖、输出驱动、定时器中断和掉电保持对电气专业的学生来说调试成本反而更高。FX2n 系列在三菱 FX 家族里属于指令集比较完整的一档。它支持移位指令、定时器、计数器、比较指令和大量中间继电器I/O 点数也能覆盖这套系统输入有自动启动、移位、复位、手动启动、停顿共 5 个按钮输出有 A1 到 A10 共 10 个指示灯合计 15 个数字量点。选 FX2n-32MR 这类 16 入 16 出的机型点数刚好留出余量。继电器输出类型可以直接驱动指示灯不需要额外加晶体管放大板如果后续要驱动电磁阀或小型电机继电器输出也能撑住常见负载。对比项继电器控制单片机控制FX2n PLC顺序步进实现中间继电器互锁改线麻烦状态机代码需自己写移位寄存器/比较指令梯形图直观定时精度受机械时间继电器影响依赖晶振和中断内部定时器100ms 基准稳定输入输出驱动需单独继电器需驱动电路继电器输出可直接带指示灯调试方式看灯、听响、万用表串口打印、示波器GX Developer 监控与强制适合场景固定逻辑、小批量成本敏感、批量产品课程设计、小型自动化设备选型时不要只看“能不能跑”还要看“改起来疼不疼”。装瓶流水线的手动模式和自动模式工序数不一样手动是 10 道自动是 5 道。如果全部用硬接线两种模式要两套回路用 PLC只需要在程序里切换移位步长和定时器使能。常见做法是输入按钮全部接常开触点程序里用上升沿触发移位输出指示灯按 Y1 到 Y12 分配公共端接 24V 或 220V 根据指示灯电压决定。2.2 I/O 分配表与端子号落地I/O 分配表不是抄一遍就完事它决定了后面梯形图里每一个 X 和 Y 能不能对得上。原设计里输入分配是自动启动 SB0 接 X0移位 SB1 接 X1复位 SB2 接 X2手动启动 SB3 接 X3停顿 SB4 接 X4。输出分配是选瓶 A1 接 Y1装瓶 A2 接 Y2盖盖 A3 接 Y3贴签 A4 接 Y4传送 A5 到 A9 接 Y5 到 Y11成品入库 A10 接 Y12。注意这里没有 Y0因为 Y0 通常留给脉冲输出或备用课程设计里直接跳过不影响。信号类型元件PLC 地址说明输入自动启动按钮 SB0X0常开按下进入自动模式输入移位按钮 SB1X1常开手动模式每按一次走一步输入复位按钮 SB2X2常开回到第一道工序输入手动启动按钮 SB3X3常开进入手动模式输入停顿按钮 SB4X4常开暂停当前工序输出选瓶工序 A1Y1指示灯输出装瓶工序 A2Y2指示灯输出盖盖工序 A3Y3指示灯输出贴签工序 A4Y4指示灯输出传送工序 A5Y5指示灯输出传送工序 A6Y6指示灯输出传送工序 A7Y7指示灯输出传送工序 A8Y10指示灯输出传送工序 A9Y11指示灯输出成品入库 A10Y12指示灯接线前可以用一段 Python 脚本检查点数够不够、地址有没有重复。下面这个脚本把输入输出表写成字典跑一遍就能发现 Y8、Y9 缺失和地址冲突。# io_check.py plc_inputs { SB0_auto_start: X0, SB1_shift: X1, SB2_reset: X2, SB3_manual_start: X3, SB4_pause: X4, } plc_outputs { A1_select_bottle: Y1, A2_fill: Y2, A3_cap: Y3, A4_label: Y4, A5_transfer: Y5, A6_transfer: Y6, A7_transfer: Y7, A8_transfer: Y10, A9_transfer: Y11, A10_warehouse: Y12, } all_points list(plc_inputs.values()) list(plc_outputs.values()) duplicates [p for p in set(all_points) if all_points.count(p) 1] print(输入点数:, len(plc_inputs)) print(输出点数:, len(plc_outputs)) print(总点数:, len(all_points)) print(重复地址:, duplicates if duplicates else 无) # 检查输出是否连续占用了 Y1-Y12 范围内的可用点 used_y sorted([int(p[1:]) for p in plc_outputs.values()]) missing_y [y for y in range(1, 13) if y not in used_y] print(Y1-Y12 中未使用的地址:, missing_y)这段脚本的逻辑很直接把 I/O 分配表变成可遍历的数据先统计点数和重复地址再检查 Y1 到 Y12 里哪些编号没有被占用。参数说明plc_inputs和plc_outputs的键是元件名值是 PLC 地址duplicates用列表推导找出出现次数大于 1 的地址missing_y用来提醒接线时不要误把 Y8、Y9 当成输出。实际工程里如果 Y8、Y9 被其他模块占用这里就能提前发现。2.3 接线图里的公共端、按钮常开常闭与指示灯限流FX2n 的输入端子接按钮时常见做法是按钮一端接 X 端子另一端接 COM 端。如果按钮是常开程序里就要用上升沿或自锁逻辑如果按钮是常闭按下时信号断开程序逻辑要反过来写。装瓶流水线的启动、移位、复位、停顿建议全部用常开按钮这样梯形图里看到 X0 为 ON 就代表自动启动被按下读图更直接。输出侧要注意 COM 端分组。FX2n-32MR 的输出通常分成几组公共端每组 COM 对应若干 Y 点。接指示灯时先确认指示灯电压是 24V 还是 220V24V 指示灯可以直接由 PLC 输出公共端供电220V 指示灯则要确保 COM 端接火线或零线的方式与 PLC 输出类型匹配。指示灯串联限流电阻时电阻功率要留余量否则长时间点亮会发热。传送工序 A5 到 A9 有 5 个灯如果同时点亮公共端电流会叠加接线前要算一下总电流是否超过输出模块单点或公共端额定值。接线检查项正确做法常见错误输入按钮常开按钮接 X 与 COM把常闭按钮当启动程序逻辑反相输入电源内部 24V 或外部 24V 与 COM 对应外部电源与 PLC 内部电源混接输出公共端按 COM 分组接线不跨组混用不同电压指示灯共用同一 COM指示灯限流串联电阻计算功率直接接 24V 灯不加电阻复位按钮接 X2程序中优先复位移位寄存器只复位输出未复位步序号停顿按钮接 X4断开定时器使能或移位使能直接切断输出导致状态丢失接线完成后不要急着写复杂程序先用 GX Developer 监控 X0 到 X4 的通断。按一下按钮监控画面里对应 X 点变绿说明输入回路没问题如果按了没反应先查 COM 端和按钮触点再查 PLC 是否处于 RUN 状态。输出侧可以强制 Y1 为 ON看指示灯亮不亮确认公共端和限流电阻没问题。这些基础检查做完后面调移位和定时器会省很多时间。3. 手动/自动模式下的移位寄存器与定时器编程3.1 移位寄存器实现工序步进的核心逻辑手动模式的 10 道工序可以用移位寄存器来做。基本思路是用一个位元件区表示当前工序比如 M10 到 M19 对应 10 道工序或者直接移位 Y1 到 Y12。每按一次移位按钮 X1移位寄存器左移一位当前工序的指示灯点亮。循环两次可以用计数器 C0 记录移位次数当移位次数达到 20 次时停止或者当工序走到第 10 步时把步序号重置回第 1 步同时计数器加一。FX2n 的移位指令有 ROL、ROR、SFTR 等。以左移为例如果使用 M10 到 M19 作为工序位程序可以写成X1 上升沿触发将 M10 到 M19 左移一位最低位 M10 补 0 或补 1 取决于是否需要循环。手动模式要求“循环两次”更稳妥的做法是用一个步序号寄存器 D0 记录当前是第几步然后用比较指令驱动输出。但课程设计原始资料里提到使用了左移指令所以下面给一段指令表形式的参考逻辑。; 三菱 FX 指令表片段手动移位与循环计数 ; X3 手动启动X1 移位X2 复位X4 停顿 ; M10-M19 对应 10 道工序C0 记录循环次数 LD X3 ; 手动启动按钮 OR M0 ; 手动模式自锁 ANI X4 ; 停顿按钮断开 OUT M0 ; M0 为手动模式标志 LD X1 ; 移位按钮 AND M0 ; 仅在手动模式有效 AND M1 ; M1 为允许移位标志 PLS M2 ; M2 为移位脉冲 LD M2 MOV K0 D0 ; 初始化步序号按需可改为复位逻辑 ROL M10 ; M10-M19 左移一位 LD M10 SET Y1 ; 第 1 步选瓶 LD M11 SET Y2 ; 第 2 步装瓶 ; ... 依次驱动 Y3-Y12 LD M19 ; 第 10 步完成 AND M2 INC D1 ; 循环次数加一 CMP K2 D1 M3 ; 比较循环次数是否达到 2 LD M3 RST M0 ; 达到两次后停止手动模式这段指令表的逻辑说明X3 按下后 M0 自锁表示进入手动模式X1 按下产生一个脉冲 M2用来触发移位。ROL M10把 M10 到 M19 的位整体左移当前为 ON 的位往高位移动代表工序前进。M19 为 ON 时表示第 10 道工序完成用INC D1记录循环次数再用CMP K2 D1 M3判断是否满两次。参数说明K2 是比较常数代表循环两次D1 是数据寄存器初值应为 0X4 停顿按钮通过ANI X4断开 M0 自锁实现暂停。实际编程时要注意移位脉冲只能用PLS产生一个扫描周期的脉冲否则按住按钮会连续移位。3.2 定时器节拍自动模式 5 秒一道工序自动模式有 5 道工序每 5 秒完成一道。FX2n 的普通定时器 T0 到 T199 是 100ms 基准所以 5 秒对应 K50。如果要更精确可以用 T200 到 T245 的 10ms 定时器5 秒对应 K500。课程设计里常见做法是用 T0 K50 产生 5 秒定时再用定时器完成位触发移位。需要注意自动模式循环两次总共 10 次定时每次 5 秒整个周期大约 50 秒。定时器编号基准设定值实际时间用途T0100msK505s自动模式工序节拍T1100msK101s按钮消抖或短延时T2100msK10010s超时报警备用C0计数器K22 次自动模式循环次数自动模式的梯形图可以这样组织X0 自动启动后置位 M100M100 接通 T0 定时T0 每次到点产生一个脉冲触发移位寄存器左移一位。移位寄存器可以用 M20 到 M24 表示 5 道工序也可以直接移位 Y1 到 Y4 和 Y5。每完成 5 道工序计数器 C0 加一C0 达到 K2 时停止自动运行。停顿按钮 X4 可以断开 T0 的驱动条件让定时器复位恢复后重新计时。复位按钮 X2 则直接复位移位寄存器、计数器 C0 和模式标志。; 自动模式5 秒节拍 5 道工序 循环两次 LD X0 ; 自动启动 OR M100 ANI X4 ; 停顿断开 ANI X2 ; 复位断开 OUT M100 ; 自动模式标志 LD M100 OUT T0 K50 ; 5 秒定时器 LD T0 PLS M101 ; 定时到产生移位脉冲 LD M101 ROL M20 ; M20-M24 左移对应 5 道工序 LD M24 ; 第 5 道工序完成 AND M101 INC D2 ; 循环计数 CMP K2 D2 M102 LD M102 RST M100 ; 两次后停止 LD X2 RST M20 ; 复位工序位 RST C0 ; 复位计数器 MOV K0 D2 ; 循环计数清零参数说明T0 K50中 K50 是 50 个 100ms等于 5 秒PLS M101保证每个定时周期只产生一个移位脉冲ROL M20移位的对象是 M20 到 M24 共 5 位CMP K2 D2 M102比较 D2 与常数 2当循环两次后 M102 为 ON复位自动模式标志。常见错误是把OUT T0 K50放在 M100 后面但没有自锁导致按一下启动只定时一次或者用OUT T0 K50直接驱动移位结果定时器未到点时梯形图每个扫描周期都在移位。正确做法是用定时器的完成位产生脉冲再触发移位。3.3 启动、复位、停顿的互锁与模式切换手动和自动不能同时运行否则 X1 手动移位和 T0 自动移位会同时改变工序位。程序里要用互锁手动启动 X3 置位 M0 时复位 M100自动启动 X0 置位 M100 时复位 M0。停顿按钮 X4 要同时作用于两个模式但处理方式不同手动模式下停顿是禁止移位脉冲自动模式下停顿是断开定时器使能。复位按钮 X2 优先级最高按下后不管当前什么模式都回到第一道工序并且重新开始运行。按钮地址手动模式自动模式启动X0/X3X3 置位 M0复位 M100X0 置位 M100复位 M0移位X1上升沿触发手动移位不参与复位X2复位 M0、M10-M19、D1复位 M100、M20-M24、D2停顿X4断开 M1 允许移位断开 T0 驱动循环D1/C0D1 计 2 次D2 计 2 次互锁逻辑可以用下面的指令表片段补充。注意复位按钮 X2 使用RST直接复位状态位而不是用ZRST批量复位这样在 GX Developer 监控时更容易看清每一位的变化。停顿按钮 X4 不要直接复位 M0 或 M100否则恢复后需要重新按启动更合理的做法是断开允许移位或定时器使能保留当前工序号。; 模式互锁与停顿处理 LD X3 SET M0 ; 手动模式 RST M100 ; 自动模式复位 LD X0 SET M100 ; 自动模式 RST M0 ; 手动模式复位 LD M0 ANI X4 ; 手动模式且未停顿 OUT M1 ; 允许手动移位 LD M100 ANI X4 ; 自动模式且未停顿 OUT M103 ; 允许自动定时 LD X2 RST M0 RST M100 ZRST M10 M19 ; 复位手动工序位 ZRST M20 M24 ; 复位自动工序位 MOV K0 D1 MOV K0 D2这段逻辑的关键是 X4 停顿不改变模式标志只切断 M1 和 M103。M1 为 OFF 时X1 的移位脉冲即使按下也不起作用M103 为 OFF 时T0 不计时恢复后从当前工序继续。参数说明ZRST M10 M19是区间复位把 M10 到 M19 全部清 0MOV K0 D1把循环计数器清零。如果复位后要求“重新开始运行”可以在 X2 处理完后自动置位当前模式标志这取决于设计任务里“复位后重新开始运行”的具体含义。4. GX Developer 仿真联调与故障排查4.1 仿真环境搭建与程序写入步骤GX Developer 是三菱 FX 系列常用的编程软件课程设计里用它做梯形图编辑和仿真。仿真不需要真实 PLC但需要安装 GX Simulator。常见操作顺序是新建工程选择 PLC 系列为 FX2n程序语言选梯形图然后在“在线”菜单里启动模拟器。程序写完后先做语法检查再写入模拟器最后用监控模式观察 X、Y、M、T、C、D 的状态。下面用命令行式的操作清单记录关键步骤方便在实验室机器上复现。注意这些是软件操作路径不是 shell 命令所以用文本块表示。1. 打开 GX Developer - 工程 - 新建工程 2. PLC 系列选择 FXCPU型号选择 FX2n 3. 程序类型选择梯形图确定 4. 在左侧导航栏双击“程序”开始绘制梯形图 5. 编辑完成后按 F4 转换/编译检查是否有语法错误 6. 工具 - 启动模拟器或在线 - 模拟器启动 7. 模拟器启动后在线 - 写入到 PLC选择全部程序 8. 监控 - 监视模式观察 X0-X4、Y1-Y12、M0、M100、T0、D1、D2 9. 强制 - 强制输入依次置位 X0/X3验证手动和自动模式这段步骤的逻辑说明先建工程再选型号是因为 FX2n 的定时器基准和指令范围与 FX1n、FX3U 不同编译转换必须在下载前完成否则模拟器里跑的是旧程序。写入时选择“全部程序”避免只写入主程序而遗漏注释或子程序。监控模式下X 点变绿表示输入有效Y 点变绿表示输出被驱动T0 的当前值会从 0 增加到 50 然后归零。参数说明模拟器里的 X 输入可以通过强制功能手动置位相当于按按钮但强制 X0 为 ON 后要记得强制 OFF否则模拟器会一直处于启动状态。仿真检查点预期现象异常处理按 X0M100 置位T0 开始计时M100 不置位查 X0 强制是否生效T0 到 5sT0 完成位变 ON移位一次定时器不动查 T0 驱动条件手动按 X1工序位左移一位不移位查 M1 允许标志按 X4定时器暂停工序保持若工序复位查是否误接复位逻辑按 X2工序回到第 1 步D1/D2 清零若输出不灭查 Y 点是否被直接置位循环两次D1 或 D2 达到 2 后停止若一直循环查比较指令常数4.2 监控表与强制输入输出验证GX Developer 的监控表可以同时观察多个软元件。对于装瓶流水线建议建三组监控第一组看输入 X0 到 X4确认按钮信号第二组看输出 Y1 到 Y12确认工序指示灯第三组看 M10 到 M24、D1、D2、T0、C0确认内部状态。监控表里不要只看 Y 点因为 Y 点可能被 SET 指令置位后一直保持如果不复位程序看起来在跑实际工序已经乱掉。监控表 1X0 X1 X2 X3 X4 监控表 2Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y10 Y11 Y12 监控表 3M0 M1 M2 M10-M19 M20-M24 D1 D2 T0 C0强制输入时每次只强制一个点观察状态变化后再取消。比如强制 X3 为 ON手动模式 M0 应该置位此时自动模式 M100 应该为 OFF再强制 X4 为 ONM1 应该变为 OFF此时按 X1 不产生移位。这些验证步骤能提前发现互锁写反的问题。输出侧可以强制 Y1 为 ON确认第 1 道工序指示灯亮但不要长期强制输出以免模拟器退出后忘记取消。4.3 故障排查步进丢失、定时器不复位、循环次数异常步进丢失是最常见的问题。表现是按下移位按钮后工序指示灯跳过了某一步或者直接从第 3 步跳到第 5 步。原因通常是移位脉冲用了普通OUT而不是PLS导致一个扫描周期内移位多次或者移位寄存器里有两个位同时为 ON按一次移位后两个位一起移动。排查方法是在监控表里看 M10 到 M19 是否只有一位为 ON。如果有多位为 ON先执行ZRST复位再检查程序里有没有多个地方对同一位使用SET。定时器不复位也经常出现。自动模式按停顿后再按启动定时器可能从上次的值继续计时而不是重新从 0 开始。FX2n 的定时器在驱动条件断开后会自动复位但如果程序里用SET T0或把 T0 放在持续接通的逻辑里就不会复位。正确做法是让 T0 的驱动条件受 M103 控制停顿或复位时断开 M103。循环次数异常通常和比较指令的常数有关比如想循环两次却写成 K3或者 D1 没有在复位时清零。排查时先看 D1、D2 的当前值再看CMP指令后面的输出位是否接错。故障现象可能原因排查动作按 X1 不移位M1 允许标志为 OFF或 X4 被强制 ON监控 M1 和 X4按一次移位跳两步移位脉冲未用 PLS或双线圈检查 M2/M101 是否只在一个地方输出自动模式不定时T0 驱动条件不满足或 M103 断开监控 M100、M103、T0 当前值定时器到点不动作T0 完成位被覆盖或移位对象错误查看 T0 触点是否接在 PLS 前循环次数不准确D1/D2 未清零或比较常数写错复位时把 D1/D2 清零检查 CMP 指令输出指示灯常亮Y 点被 SET 后未 RST在复位逻辑里加入 ZRST Y1 Y12调试时建议先手动模式、后自动模式先单步、后连续。手动模式验证移位寄存器和复位逻辑自动模式验证定时器和循环计数。每改一次程序先编译再写入模拟器不要直接在线修改后忘记保存。GX Developer 的监控表可以同时打开多个窗口把 X、Y、M、T、D 分开放排查时不用来回切换。5. 从 10 工序到参数化状态机一个可复用的步进模板5.1 用 D 寄存器存步号替代移位寄存器移位寄存器写 10 道工序还算直观但如果工序增加到 20 道、循环次数改成 5 次、自动模式节拍改成 3 秒移位方案就要改大量触点。更可复用的做法是用一个数据寄存器 D0 存“当前步号”每一步用比较指令驱动输出。手动模式按 X1 时 D0 加一自动模式定时到 D0 加一D0 超过最大步号时回到 1同时循环计数器加一。这样工序数、循环次数、定时器设定值都可以用常数或数据寄存器统一管理。下面给出一段结构化文本形式的参数化模板虽然 FX2n 原生以梯形图为主但这段逻辑可以直接翻译成比较指令和加减指令。重点看步号管理和边界处理。; 参数化步进模板可翻译为 FX 梯形图比较指令 ; D0当前步号范围 1-10 ; D10最大步号手动10自动5 ; D11目标循环次数手动2自动2 ; D12当前循环次数 ; T0自动模式节拍定时器K50 对应 5 秒 IF X1 AND M0 AND NOT X4 THEN D0 : D0 1; (* 手动步进 1 *) IF D0 D10 THEN D0 : 1; (* 回到第 1 步 *) D12 : D12 1; (* 循环计数 *) END_IF; END_IF; IF T0 AND M100 AND NOT X4 THEN D0 : D0 1; (* 自动步进 1 *) IF D0 D10 THEN D0 : 1; D12 : D12 1; END_IF; END_IF; IF D12 D11 THEN M0 : FALSE; M100 : FALSE; (* 达到循环次数停止 *) END_IF; (* 用比较指令驱动输出 *) Y1 : (D0 1); Y2 : (D0 2); Y3 : (D0 3); Y4 : (D0 4); Y5 : (D0 5); Y6 : (D0 6); Y7 : (D0 7); Y10 : (D0 8); Y11 : (D0 9); Y12 : (D0 10);这段模板的逻辑说明D0 是唯一的状态变量所有输出都由 D0 比较得到不再需要 M10 到 M19 同时保持。参数说明D10 根据模式切换手动模式赋 10自动模式赋 5D11 是目标循环次数默认 2D12 在复位时清零。边界处理是D0 D10时回到 1并让 D12 加一。这样改工序数只需要改 D10改循环次数只需要改 D11改自动节拍只需要改 T0 的设定值。参数手动模式自动模式修改方式最大步号 D10105用 MOV 指令按模式赋值节拍定时器 T0不启用K505s改 K 值即可目标循环 D1122修改常数或数据寄存器当前循环 D12复位清零复位清零在 X2 复位逻辑中 MOV K0 D12当前步号 D01-101-5手动 X1 或自动 T0 触发加一5.2 验证参数化模板的两个技巧第一个技巧是先用小步号验证边界。把 D10 临时改成 3D11 改成 2观察 D0 是否按 1-2-3-1-2-3 循环D12 是否在第三次步号回到 1 时加一。这样比直接跑 10 步更容易看清边界。第二个技巧是在 GX Developer 监控表里同时观察 D0、D10、D11、D12 和 Y 点把 D0 的当前值改成 1 到 10 逐个强制检查对应 Y 点是否按表点亮。如果某个 Y 点不亮先查比较指令的常数再查该 Y 点是否在别处被 RST 或 ZRST 覆盖。参数化模板的调试重点是边界不是单步逻辑把 D10 和 D11 改小循环边界会更快暴露问题。本文还有配套的精品资源点击获取
返回列表