4. Studio 5000 梯形图编程基础

在 Studio 5000 Logix Designer 中,梯形图(Ladder Diagram,简称 LD)仍然是产线虚拟调试阶段最直观的编程语言。它的核心思想是把控制逻辑表达成“能流”从左侧母线出发,经过一系列条件判断,最终驱动右侧的输出线圈。本节围绕一条典型输送线,把位逻辑、定时器、计数器、比较指令四类基础指令串成一个可仿真的完整程序,并在仿真环境中观察逻辑执行过程。

一、位逻辑:能流的基本开关

位逻辑指令处理的是 BOOL 型标签的 0/1 状态,最常用的有 XIC(Examine If Closed,常开触点)、XIO(Examine If Open,常闭触点)和 OTE(Output Energize,输出线圈)。XIC 在标签为 1 时导通,XIO 在标签为 0 时导通,OTE 则把前面能流的状态写回标签。三者组合即可实现“启保停”这类经典逻辑。

以输送线为例,定义标签:Start_PB(启动按钮,常开)、Stop_PB(停止按钮,常闭)、Motor_Run(电机运行输出)。梯形图第一行可写成:XIC(Start_PB) 与 XIO(Stop_PB) 并联 XIC(Motor_Run),再串联后接 OTE(Motor_Run)。其中 XIC(Motor_Run) 是自锁支路,保证松开启动按钮后电机仍保持运行;XIO(Stop_PB) 使用常闭触点,使停止按钮按下(标签变 0)时断开能流。这就是位逻辑最典型的应用。

二、定时器:TON 的延时接通

Studio 5000 提供 TON(延时接通)、TOF(延时断开)、RTO(保持型延时接通)三种定时器。输送线中常用 TON 做“启动后延时检测”或“防抖动确认”。TON 有三个关键成员:.PRE(预设值,单位 ms)、.ACC(当前累计值)、.DN(完成位)。当使能条件为真时,.ACC 从 0 开始按时间基准递增,达到 .PRE 时 .DN 置 1;使能条件断开时,.ACC 立即清零、.DN 复位。

例如定义 T_Detect 为 TON,.PRE 设为 500(即 500 ms)。当物料到达检测位、光电传感器 Photo_Eye 为 1 时启动 TON,若 500 ms 内信号持续为 1,则 T_Detect.DN 置 1,表示“物料确实到位”,可用于触发后续计数或分拣动作。这种“延时确认”能有效过滤传感器抖动造成的误触发。

三、计数器:CTU 统计物料数量

计数器用于累计事件次数,常用 CTU(加计数)。CTU 有 .PRE(目标值)、.ACC(当前计数值)、.CU(计数使能)、.DN(完成位)和 .RES(复位)。每当 .CU 出现一次 0→1 的上升沿,.ACC 加 1;当 .ACC ≥ .PRE 时 .DN 置 1;.RES 为真时 .ACC 清零、.DN 复位。

在输送线中,把 T_Detect.DN 接到 CTU 的 .CU 端,即可实现“每确认一个物料,计数加一”。假设 C_Box 的 .PRE 设为 10,当累计到 10 个物料时 C_Box.DN 置 1,可用于触发“满箱报警”或“切换下一工位”。注意 CTU 的计数使能必须使用上升沿触发,否则 .CU 持续为 1 时只会计一次,这是初学者最容易忽略的细节。

四、比较指令:让逻辑具备判断能力

比较指令包括 EQU(等于)、NEQ(不等于)、GRT(大于)、LES(小于)、GEQ(大于等于)、LEQ(小于等于)。它们把两个数值比较的结果作为能流条件,常与计数器、定时器的 .ACC 配合使用。例如用 GEQ(C_Box.ACC, 5) 判断“已累计 5 个物料”,或用 LES(T_Detect.ACC, 500) 判断“定时尚未完成”。比较指令让梯形图从单纯的开关逻辑升级为带数值判断的控制逻辑。

五、完整程序结构与仿真观察

把上述四类指令组合,可得到一条输送线的启停与物料检测程序。下面用一张信号链与逻辑关系图展示各指令之间的数据流与触发关系:

输送线启停与物料检测梯形图逻辑关系 输入信号 Start_PB (启动) Stop_PB (停止) Photo_Eye (光电) Auto_Man (手自动) 位逻辑 XIC / XIO 触点 OTE 输出线圈 自锁支路 Motor_Run 输出 定时器 TON T_Detect.PRE=500 .ACC 累计 .DN 完成位 防抖动确认 计数器 CTU C_Box.PRE=10 .CU 上升沿 .ACC 累计 .DN 满箱 比较指令 GEQ(C_Box.ACC, 5) → 半箱提示 EQU(C_Box.ACC, C_Box.PRE) → 满箱报警 输出与状态 Motor_Run 电机运行 | Alarm_Full 满箱报警 | Count_Display 计数显示 仿真观察点 .ACC 数值变化 .DN 位翻转 自锁反馈

在仿真中观察逻辑执行,重点看三处:一是 Motor_Run 线圈在按下 Start_PB 后是否保持为 1,按下 Stop_PB 后是否立即变 0;二是 T_Detect.ACC 是否从 0 递增到 500,随后 T_Detect.DN 由 0 翻转为 1;三是 C_Box.ACC 是否每来一个物料加 1,达到 10 时 C_Box.DN 置 1。若 .ACC 不变化,优先检查使能条件是否真正为真;若 .DN 不翻转,检查 .PRE 是否被误设为 0 或单位理解错误。

在 Studio 5000 中,TON 的时间基准由 .PRE 的数值和标签数据类型决定。若 .PRE 为 DINT 且填 500,表示 500 ms;若使用 TIMER 结构,需注意 .PRE 的单位与控制器时间基准一致。仿真时可直接在梯形图编辑器中右键标签选择“监视”,实时查看 .ACC 与 .DN 的变化。

六、程序编写顺序与常见问题

建议按“输入映射 → 启停逻辑 → 定时确认 → 计数统计 → 比较判断 → 输出驱动”的顺序编写。每一行梯形图只做一件事,避免把多个条件挤在同一行导致排查困难。常见问题包括:CTU 的 .CU 未使用上升沿导致只计一次;TON 的使能条件被自锁逻辑误触发;比较指令的数值类型不一致(如 DINT 与 REAL 混用)导致比较结果异常。仿真阶段应逐行使能条件,观察能流走向,确认每一级输出符合预期后再联调。

完成上述程序后,输送线在仿真中应表现为:按下启动,电机运行;物料经过光电传感器,延时 500 ms 确认后计数加一;累计 10 个物料时满箱报警输出置位;按下停止,电机停止、定时器与计数器按复位逻辑清零。这套程序虽然简单,却完整覆盖了位逻辑、定时器、计数器、比较指令四类基础指令的典型用法,是后续复杂产线逻辑的重要基础。