西门子梯形图指令手册:113 条指令一条一页

113 条西门子梯形图指令,一条一页:引脚表、最小示例、时序表、常见坑。本文拆页面结构,并拿三组最容易混的指令验证它够不够用。

分享
西门子梯形图指令手册:113 条指令一条一页

一句话结论:查梯形图指令时,最费时间的不是"忘了符号长什么样",而是"这条和上一条差在哪、用错了会怎样"。Learn-LAD 的 LAD 指令手册 把这件事固定成了页结构:113 条 S7-1200/1500 常用指令、13 个分类,一条一页,每页七节——一句话、符号与引脚、最小示例、怎么工作(真值/时序)、常用场景、常见坑、相关示例。页面里还挂了「在 TIA 里试一下」:选一个示例块,用 TiaLink 导入你当前打开的 TIA Portal 工程——先预检、默认不覆盖同名对象、导入后不自动保存。

它不替代 TIA 帮助:帮助文档讲"这个引脚是什么",手册讲"它和谁像、什么时候不该用、错了会怎样"。下面按"它是什么 → 一页里有什么 → 拿最容易混的几组验证 → 怎么用 → 边界"的顺序拆。


一、查指令真正卡住的地方,很少是语法

触点、线圈、定时器,学过一遍都认识。但真到改程序时,卡点是另外几种:

  1. 分不清近邻:TON / TOF / TP 三个都叫"定时器",符号长得像,行为完全不同;SCoil / Sr 都能锁存,复位路径不一样。
  2. 知道定义,不知道后果:TON 的 ET 在 IN 断开时回 0——这句话读起来没感觉,等你拿它当"累计运行时间"就出事。
  3. 参数手册只给参数:TIA 帮助会告诉你 PT 是预设时间,但不会提醒你"一个扫描周期的短脉冲永远到不了 PT"。
  4. 查完了落不到工程里:看懂了引脚,回到博途还是要从零把网络敲一遍,中间又引入新的错。

这四个问题都不是"缺一条定义",而是缺对照关系 + 失败模式 + 可运行的样例。这也是判断一份指令参考值不值得收藏的五个判据:

判据 为什么重要 手册的情况
有引脚表和方向 流输入(RLO)和普通输入(值)不是一回事 每条指令一张引脚表,标 流输入 / 输入 / 流输出 / 输出
有最小示例 只给定义记不住,给一个 3 行的网络就记住了 每条都有梯形图 + 变量说明
有真值表或时序表 "什么时候为 1"必须能逐扫描推 定时器/计数器/边沿给的是状态表
有"和近邻的区别" 用错几乎都发生在两条像的指令之间 每页固定一节「常见坑」,第一条通常就是"X 不是 Y"
有上下文 单条指令放进完整程序才知道怎么用 「相关示例」按入门/进阶/综合分级 + 「相关指令」横向跳

二、这本手册的规模:113 条,13 类

首页是分类索引,每类带条数:

分类 条数 代表指令
位逻辑 7 Contact、Coil、SCoil、RCoil、Not、SBitfield、RBitfield
触发器 2 Sr(置位优先)、Rs(复位优先)
边沿 8 PContact、NContact、PBox、NBox、PCoil、NCoil、R_TRIG、F_TRIG
定时器 10 TON、TOF、TP、TONR、CoilTON、CoilTOF、CoilTP、CoilTONR、PtCoil、ResetIECTimerCoil
计数器 3 CTU、CTD、CTUD
比较 13 Eq、Lt、Gt、Le、Ge、Ne、InRange、OutRange、OK、NOK、IS_ARRAY、IS_NULL、NOT_NULL
字逻辑 9 SEL、And、Or、Xor、Inv、Mux、Demux、DECO、ENCO
字符串 10 LEN、CONCAT、LEFT、RIGHT、MID、FIND、INSERT、DELETE、REPLACE、S_Move
移位 4 Shl、Shr、Rl、Rr
数学 24 Add、Sub、Mul、Div、Mod、LIMIT、MIN、MAX、Abs、Inc、Dec…(含三角/对数/取整)
移动 12 Move、Swap、MoveBlockI/U、FillBlockI/U、Lower_Bound、Upper_Bound、GATHER、SCATTER、Serialize、Deserialize
转换 7 Convert、Scale_X、Normalize、Round、Trunc、Ceil、Floor
程序控制 4 Jump、JumpNot、Switch、JmpList

几处看得出是"按工程用得上"来收的,而不是照抄指令集目录:

  • CoilTON / CoilTOF / CoilTP / CoilTONR 单独立了页:博途里计时线圈(线圈式定时器)和盒式定时器的写法、能放的位置都不同,混着写是现场常见事故。
  • 比较类把 OK / NOK / IS_ARRAY / IS_NULL / NOT_NULL 收进来了:这几条不是"比大小",是有效性检查,写通用 FB 时躲不开。
  • 只有 4 条程序控制(Jump / JumpNot / Switch / JmpList):没有把整本指令集铺开,只留了梯形图里真会用的跳转形态。

页面头部还标了三件容易被忽略的信息:适用型号(S7-1200/1500)、版本口径(TIA V19)、别名(例如 TON 的别名是"接通延时 / On-delay timer / SD",TP 是"脉冲定时器 / Pulse timer / SP")。别名这一项对读老图纸特别有用——图纸上写 SD、博途里叫 TON,同一个东西。

技术上有句话值得记:引脚名与方向来自 lad-ir 指令目录,图由 lad-render 渲染,和示例库里 60 多个例程用的是同一套渲染——所以手册里的图和示例页里的图长得一样,可以对着看。


三、一页里到底有哪七节(以 TON 为例)

打开 TON — 接通延时定时器,从上往下是固定七节。这个顺序本身就是一种读法:先能用,再懂原理,最后知道边界。

1)一句话

TON 是接通延时定时器:IN 持续为 1 达到 PT 后,Q 才置 1;IN 一断开,Q 和 ET 立即复位。

一句话就交代了触发条件(持续为 1)、判定条件(达到 PT)、复位条件(IN 断开)。三条信息缺任何一条,这条指令就会用错。

2)符号与引脚

引脚 方向 说明
IN 流输入 使能输入;为 1 时开始计时
PT 输入 预设时间(Time)
Q 流输出 到时后为 1;IN 断开即复位
ET 输出 已过时间;IN 断开时回 0

外加两行元信息:分类:定时器、需要实例、模板值:时间类型(time_type)。"需要实例"这一条决定了它能不能放在 FC 里、要不要建 IEC 定时器实例 DB——这是新手最容易漏的一格。

3)最小示例

Start 接通并保持 5 秒后,Motor 才置位;Start 一断开,Motor 立即复位。示例用 FB 的静态多重实例 Timer;在 OB/FC 里也可以改用全局 IEC 定时器实例 DB。图上标了:# 前缀表示块内局部变量,实际工程里也可以是全局标签或 DB 变量。

4)怎么工作(状态表)

IN 经过时间 Q ET
0 — 0 0
1 < PT 0 从 0 开始递增
1 ≥ PT 1 停在 PT
1 → 0 — 0 回 0

表下面四句补充,每句都对应一个坑:IN 必须是持续的(脉冲进不了 TON);PT 与 ET 的区别;到时后 ET 不再增加;同一实例不要多处调用。

5)常用场景

  1. 启动延时:按下后确认 3–5 秒再启动电机,避免误触或电网冲击。
  2. 信号防抖 / 到位确认:信号稳定 200–500 ms 才认,把 PT 改小,Q 当"稳定信号"。
  3. 超时报警:启动命令发出后计时,若 PT 内没收到"完成"信号就报警——手册这里还补了一句关键前提:这时通常还要串一个 NOT Done 条件,并且假设 Start 是保持命令;如果是点动按钮,先用 SCoil/自锁把它保持住。

这一节是整页最"工程"的部分:它不只说"能用在哪",还顺手把"直接照抄会漏什么"点出来。

6)常见坑

TON 不是 TP:TON 到时后 Q 一直保持,直到 IN 断开;TP 是固定脉宽,IN 断开不会掐断。 TON 不是 TOF:TOF 是断开延时,IN 掉下后 Q 还要保持 PT。 短脉冲进不了 TON:一个扫描周期的脉冲永远到不了 PT。 ET 会复位:IN=0 时 ET 回 0,不要拿它当累计计时。 实例冲突:同一个实例在多个网络调用,计时会互相覆盖。 漏写 PT:TIA 编译会报参数未使用;SCL 里写 TON(IN:=...) 时特别容易漏。

六条里五条是"错误形态",不是"定义"。这份手册真正的价值密度就在这一节——它是按"我见过的错法"写的,不是按"参数表"写的。

7)相关示例 + 相关指令

  • 相关示例:「延时电机启动与泵控制」(进阶)、「三电机延时启停」(进阶),每条带一句摘要和难度级别。
  • 相关指令:SCoil、TOF,每条带一句话说明——横向跳到"下一个会混的"。

另外:页面顶部的「在 TIA 里试一下」

这是手册和普通文档站最大的差别。页面上有个示例块选择器(TON 有「最小示例 / 信号防抖 / 超时报警」三个),选完点导入:

  • 通过 TiaLink 导入当前打开的 TIA 项目,流程是先预检、默认不覆盖同名对象、导入后不自动保存;
  • 示例块不会自动运行:导入后需要你自己在 OB1 里调用并接上变量;
  • TiaLink 地址默认 http://localhost:8080,也可以在页面地址后加 ?tialink= 临时指定;
  • 如果 TiaLink 启动时设了 --api-token,页面里要填同一个值;这个值只保存在本机浏览器 localStorage,不上传。

"不覆盖同名对象 + 不自动保存"这两条很关键:它把风险留在你能撤销的一侧——导入只是把块放进项目,什么时候保存、要不要留,还是你决定。


四、拿三组最容易混的指令验证它够不够用

判断一份指令参考好不好用,最直接的办法是拿"你被坑过的那些对"去查。下面三组是梯形图里最典型的。

4.1 定时器三兄弟:TON / TOF / TP

TON 接通延时 TOF 断开延时 TP 脉冲
什么时候开始算 IN 为 1 时 IN 由 1 变 0 时 IN 上升沿
Q 什么时候为 1 IN=1 且到时后 IN=1 立即为 1,断开后继续保持 PT 上升沿后固定 PT 宽度
IN 中途断开 Q、ET 立即复位 这正是它开始计时的时候 不会掐断脉冲
短脉冲会怎样 到不了 PT,Q 永不为 1 也会完整保持 PT 就是它的正常工作方式
典型用途 启动延时、防抖、超时报警 风机延时停止、输送机跑完 电磁阀固定脉宽、启动脉冲

三条"常见坑"里最值得记的一句是互为镜像的:

  • TON 的坑是"短脉冲进不了 TON"——所以想抓脉冲别用 TON,用 TP 或边沿锁存。
  • TOF 的坑是"短脉冲也会完整延时"——所以别拿它当"短脉冲过滤器",它会把一个扫描的脉冲放大成整个 PT。

同一条物理事实(脉冲宽度 vs 设定时间),在两条指令上给出完全相反的错误用法。这类"镜像坑"只有把两条放在一起读才看得出来。

TP 页还留了一个诚实的注脚:脉冲期间再次来上升沿,通常不会延长当前脉冲;需要确认具体 CPU/版本行为。 这种"我没法在文档里给你保证"的写法,比拍死一个结论更有用——它告诉你该去实测。

4.2 位逻辑:Coil / SCoil / RCoil / Sr / Rs

同样一个"置 1",有五个入口,语义完全不同:

指令 形态 行为 复位怎么走
Coil 线圈 每个扫描跟随 RLO,RLO=0 就输出 0 自动
SCoil 线圈 RLO=1 时置 1 并保持 必须 RCoil 或写入 0
RCoil 线圈 RLO=1 时复位为 0 —
Sr 盒(触发器) 置位优先的锁存触发器 由 r1 输入复位
Rs 盒(触发器) 复位优先的锁存触发器 同时为 1 时复位赢

Sr 页的"常见坑"列了五条,全是语义层面的:operand 不能用 Output(TIA 不允许读 Output,要用 InOut 或 Static);别和 SCoil/RCoil 混淆(一个是盒,一个是线圈);同时置位/复位时优先级不同,按工艺选;q 是 RLO 输出可继续串联;扫描顺序——锁存位被多处写时,结果依赖扫描顺序。

最后一条其实是整个梯形图编程的总纲:同一个位被多个网络写,你得到的不是一个"值",而是"最后一个扫描到它的网络写的值"。 这句在参数手册里通常找不到。

4.3 边沿:PContact / PBox / PCoil / R_TRIG

边沿类是"漏脉冲""多计数"两大生产事故的源头,手册把它们分成 8 条并区分了三类检测对象:

指令 检测谁的边沿 是否需实例 输出持续
PContact / NContact 扫一个 operand 的 0→1 / 1→0 否(需边沿存储位 bit) 一个扫描
PBox / NBox 左侧 RLO 的边沿 否(需边沿存储位) 一个扫描
PCoil / NCoil RLO 边沿,直接写 operand 否(需边沿存储位) 一个扫描
R_TRIG / F_TRIG CLK 的边沿,Q 输出脉冲 是(R_TRIG/F_TRIG 实例) 一个扫描

PContact 页的"怎么工作"说清了机制:bit 是边沿存储位,记录上一个扫描的 operand,每个边沿触点要用独立的 bit;operand 从 0 变 1 的那个扫描 out=1,下一个扫描即使 operand 仍为 1,out 也回 0;bit 在扫描结束后才更新。

它列的坑,基本就是现场排障清单:

  • 没有前置逻辑:PContact 放在 rung 第一个元素会违反 TIA 边沿规则,前面要先加 Enable / Not / 触点;
  • 共用边沿位:两个 PContact 共用一个 bit,边沿互相覆盖,直接漏脉冲;
  • 边沿位不保持:bit 放 Temp 里每次调用重置——要用 Static、全局 M 或 DB;
  • 用成电平:PContact 只亮一个扫描,要保持就接 SCoil 或自锁;
  • 跳转/未扫描:网络被 Jump 跳过时边沿不会被记录,回来时可能误判。

最后一条很少有人写在教程里,但它是"程序里那段永远不执行的代码"变成"偶发误动作"的标准路径。


五、三种用法:救火、系统学、交给 AI

用法 1:现场救火(30 秒法则)

顺序是 一句话 → 引脚表 → 常见坑,不读全文。一句话判断"是不是我要的语义",引脚表确认接线,常见坑确认"我现在的写法是不是那个错误形态"。熟练之后一页 30 秒看完。

用法 2:按分类通读(把"坑"读成对照表)

单看一条记不住,但把同一分类的"常见坑"连起来读,得到的是边界图:定时器 10 条读完,你脑子里会形成一张"什么时候不能用哪种定时器"的表;边沿 8 条读完,就是一张"哪里会漏脉冲"的检查表。这比背符号有用得多。

用法 3:把指令页当 AI 的校验清单

这条对现在的工作方式影响最大。用 AI 生成或修改梯形图/SCL 时,出错最集中的四类恰好是:定时器选错(TON/TOF/TP 混用)、边沿位共用、双线圈、实例冲突——而这份手册的每页「常见坑」就是一份现成的检查项。

具体做法:把要审查的指令对应的手册页(一句话 + 引脚 + 怎么工作 + 常见坑)当上下文贴给模型,让它逐条对照而不是"凭印象生成"。同类思路可以参考站内两篇:《AI 做 PLC 编程的 7 个教训》(四层验证:结构校验 → TIA 编译 → 云仿真 → 虚拟 PLC/现场,各层能证明什么、不能证明什么)和 《西门子 PLC 梯形图示例库》(60 多个例程怎么排成练习路线)。

⚠️ 但要记住手册自己写的那句:指令页只讲语义和用法,不替代 TIA 帮助和现场工艺评审;安全相关结论必须人工确认。


六、把"查到"变成"跑过"的四步

手册单独看是参考书,配合示例库和 TiaLink 才是闭环:

  1. 查:在指令页确认语义与坑(本文第三节那七节)。
  2. 导:用页面顶部的「在 TIA 里试一下」选一个示例块(如 TON 的「超时报警」),经 TiaLink 导入当前打开的工程——预检、默认不覆盖同名对象、不自动保存。
  3. 接:在 OB1 里调用该块并接上真实变量。示例块不会自动运行,这一步必须自己做——也正是理解引脚的地方。
  4. 验:先在云仿真里跑时序,再上虚拟 PLC 看 IO 行为。四层验证的分工见 《AI 做 PLC 编程的 7 个教训》;没有硬件的练法见 《虚拟 PLC 实验室:Factory IO + OpenPLC + Modbus TCP》。

对比"抄一段代码进项目"的做法,这四步多花的只有第 3 步,但换来的是:你知道每一行在哪个扫描周期执行。第 43 篇里那个"重构时把 TP 写成 TON、编译 0 错误 0 警告、电机就是不动"的案例,就是跳过第 3、4 步的代价。


七、边界:它不做什么

写清楚"不做什么"比列功能更能说明一个参考的定位:

  • 不替代 TIA 帮助:手册给的是语义、示例与坑;具体固件、具体 CPU 的细节仍以官方帮助与实测为准。
  • 不替代工艺评审:特别是安全相关(急停、安全门、F-CPU/F 块)——手册页明确写了"安全相关结论必须人工确认"。
  • 版本口径是 TIA V19、S7-1200/1500:S7-300/400 时代的 S5 定时器(S_ODT 之类)语义不同,不能直接套;跨版本行为差异(例如 TP 脉冲期间再次上升沿是否延长)页面会标"需确认",那就去实测。
  • 示例是最小可读形态,不是可投产程序:它演示语义,不带工艺联锁、不带故障处理,导入后必须自己补齐并 review。
  • 导入不等于应用:不覆盖同名对象、不自动保存,意味着最终判断权在你这侧——这既是保护,也是责任。

八、FAQ

Q:和 TIA 帮助有什么不一样? 帮助文档是"参数定义 + 官方描述",回答"这个引脚是什么"。手册是"语义 + 最小示例 + 和近邻的区别 + 失败形态",回答"我该用哪条、用错会怎样"。查参数用帮助,选指令用手册。

Q:支持 S7-300/400 吗? 页面统一标 S7-1200/1500(TIA V19)。老 CPU 的定时器/计数器是另一套语义,别直接套。

Q:没有 PLC 硬件能练吗? 能。示例块导入后可以先在云仿真里看时序,或用虚拟 PLC(OpenPLC + Modbus TCP)看 IO 行为;思路见 虚拟 PLC 实验室。

Q:能直接导入我正在做的项目吗? 能,但走的是"预检 → 默认不覆盖同名对象 → 不自动保存"。建议先导入到测试项目里对照,再决定往正式工程里搬什么。

Q:和站内那篇《梯形图转 SCL 迁移指南》什么关系? 一篇讲"同一段逻辑在 LAD 和 SCL 里怎么写"(LAD → SCL 迁移指南),一篇讲"单条指令的准确语义"。迁移时两份一起看最省事:先用手册确认指令语义,再看迁移指南里的等价写法。


来源

本文为 Learn-LAD 页面结构与内容的整理与解读,指令语义以 TIA 帮助、官方文档与现场工艺评审为准。文中对导入行为(预检、不覆盖同名对象、不自动保存、不自动运行)的描述来自页面上的说明文字。

相关阅读

这是「AI × 工业 / PLC」专题的一部分。完整地图见:AI × 工业 / PLC 完全指南