4. 梯形图编程基础
梯形图(Ladder Diagram,简称 LD)是 Studio 5000 Logix Designer 中最贴近继电器控制逻辑的编程语言。它的核心思想是把控制关系画成“能流”从左母线经触点、线圈流向右侧,能流是否通过取决于触点状态。本节围绕五类最常用的指令展开:位指令、计时器、计数器、比较指令和数学指令,并给出可直接在 Studio 5000 中复现的典型控制逻辑。
一、位指令:XIC、XIO、OTE 与 OTL/OTU
位指令操作的是 BOOL 型标签,本质是对某一位的读取或写入。最常用的四条是:
- XIC(Examine If Closed,常开触点):当标签值为 1 时导通,相当于“条件成立”。
- XIO(Examine If Open,常闭触点):当标签值为 0 时导通,相当于“条件不成立”。
- OTE(Output Energize,输出线圈):能流通过时把标签置 1,能流断开时置 0,是“跟随型”输出。
- OTL / OTU(锁存 / 解锁):OTL 一旦被触发就把位保持为 1,直到同一标签被 OTU 复位,用于启保停中的“保持”环节。
需要特别注意的是:OTE 在同一扫描周期内如果被多次赋值,最终结果由最后一次执行决定;而 OTL/OTU 是保持型,适合做状态记忆。位指令的标签建议按功能命名,例如 Start_PB、Stop_PB、Motor_Run,避免使用 B3:0/0 这类无意义地址。
二、计时器指令:TON、TOF、RTO
Studio 5000 的计时器是结构体标签,包含 .EN(使能位)、.TT(计时中)、.DN(完成位)、.PRE(预设值)和 .ACC(当前值)。时间基准固定为 1 ms,因此预设值 5000 表示 5 s。
- TON(延时导通):条件为真时开始累加,
.ACC达到.PRE时.DN置 1;条件断开则立即复位。 - TOF(延时断开):条件为真时输出立即为 1,条件断开后开始计时,到时后输出变 0。
- RTO(保持型延时导通):条件断开后
.ACC保持,需用RES指令复位,适合累计运行时间。
典型用法是“启动后延时 5 秒再输出”:用 XIC 触发 TON,预设值 5000,再用 TON 的 .DN 位驱动 OTE。若需要循环计时,可在 .DN 为真时用 XIO 串在使能前形成自复位。
三、计数器指令:CTU、CTD、RES
计数器同样是结构体,包含 .CU(加计数使能)、.CD(减计数使能)、.DN(完成位)、.OV(溢出)、.UN(下溢)、.PRE 和 .ACC。CTU 在每个上升沿使 .ACC 加 1,达到 .PRE 时 .DN 置 1;CTD 则减 1;RES 把 .ACC 清零并复位完成位。
计数器的关键点是“边沿触发”:只有 .CU 从 0 变 1 的那一次扫描才计数,因此输入信号必须保证有明确的通断变化。典型应用是“工件计数到 10 个后报警”,用 CTU 预设 10,.DN 驱动报警输出,操作员确认后用 RES 复位。
四、比较指令:EQU、NEQ、GRT、LES、GEQ、LEQ、LIM
比较指令用于判断两个数值的关系,结果为 BOOL。常用指令包括:EQU(等于)、NEQ(不等于)、GRT(大于)、LES(小于)、GEQ(大于等于)、LEQ(小于等于)以及 LIM(限值判断,判断值是否落在下限与上限之间)。
比较指令常与计时器、计数器配合,例如:Timer_1.ACC >= 3000 时触发中段报警;Counter_1.ACC < 5 时允许继续进料。LIM 指令在模拟量处理中很实用,可判断 Analog_In 是否在 4~20 mA 对应的 0~10000 范围内。
五、数学指令:ADD、SUB、MUL、DIV、MOV、CPT
数学指令对数值标签进行运算,结果写入目标标签。ADD/SUB/MUL/DIV 分别完成加、减、乘、除;MOV 用于赋值;CPT 可用表达式完成复合计算,例如 (A+B)*0.5。运算时要注意数据类型:INT 与 DINT 混用可能产生溢出或截断,除法要防止除数为 0。
典型场景是“产量换算”:用 CTU 统计工件数,再用 MUL 乘以单件重量得到总重量,用 MOV 把结果送到 HMI 显示标签。若需要保留小数,应使用 REAL 类型并注意浮点比较不要直接用 EQU,而应判断差值绝对值小于某个容差。
六、典型控制逻辑的编写与验证
把上述指令组合起来,可以完成一个“启动延时后计数、计数到限报警、并换算总重量”的完整逻辑。编写时建议按以下顺序组织:
- 先定义标签:
Start_PB、Stop_PB、Run、T1(TON)、C1(CTU)、Alarm_Flag、Total_Wt(REAL)。 - 第一梯级写启保停:XIC Start_PB 与 XIO Stop_PB 串联,驱动 OTE Run,并用 Run 的 XIC 并联在 Start_PB 两端实现自锁。
- 第二梯级用 XIC Run 驱动 TON T1,预设 5000(5 s)。
- 第三梯级用 XIC T1.DN 驱动 CTU C1,预设 10;再用 XIC C1.DN 驱动 OTE Alarm_Flag。
- 第四梯级用 XIC Alarm_Flag 触发 MUL,把 C1.ACC 乘以 2.5 得到 Total_Wt,并用 MOV 送到 HMI 显示标签。
- 第五梯级用 XIC Reset_PB 驱动 RES C1、RES T1 和 OTU Alarm_Flag,完成复位。
验证时可在 Studio 5000 中切换到“监视”模式,观察各标签的实时值:按下 Start_PB 后 Run 应为 1;5 s 后 T1.DN 应为 1;每来一个计数脉冲 C1.ACC 加 1;到 10 时 Alarm_Flag 为 1,Total_Wt 显示 25.0。若计数不动作,优先检查输入信号是否有上升沿;若计时不启动,检查 TON 的使能条件是否持续为真。