PLC 在线仿真器

梯形图(LD)示例库:7 个经典电路

这里收录了 PLC 教学中出现频率最高的 7 个梯形图程序。每个示例都给出变量表、 逻辑表达式和在仿真器里的搭建步骤,可以直接在浏览器中打开 PLC 在线仿真器 边看边练,无需安装西门子博途(TIA Portal),也无需任何授权。

为方便与教材对照,下面用 PLC 习惯地址(I0.0/Q0.0/M0/T1)说明逻辑; 在仿真器里你可以直接用中文变量名(如「启动按钮」),变量类型选布尔/数字/时间。

读图约定:[ ] 表示触点([/] 为常闭),( ) 表示线圈, ─┬─ 与 ─┴─ 之间的部分为并联,同一行其余部分为串联。 逻辑表达式用 PLC 教材写法:+ 为或(并联),· 为与(串联),/ 为常闭。
目录
  1. 起保停(自锁)电路
  2. 电机正反转(互锁)
  3. 星三角降压启动
  4. 闪烁(1Hz 脉冲)
  5. 传送带计数分拣
  6. 顺序启动(两台设备延时)
  7. 交通灯循环控制

1. 起保停(自锁)电路

最基础的启动/停止回路,也是所有梯形图的第一课。按一下启动按钮,输出保持;按停止按钮,输出断开。

变量名类型习惯地址说明
启动按钮布尔I0.0点动输入,按下为 1
停止按钮布尔I0.1程序里用常闭触点,按下即断开
电机布尔Q0.0输出
[ I0.0 常开 ] ─┬─ [ I0.1 常闭 ] ─ ( Q0.0 常开线圈 )
[ Q0.0 常开 ] ─┘

逻辑:电机 = (启动按钮 + 电机) · /停止按钮

搭建步骤

  1. 拖一个梯级到梯形图区
  2. 放一个常开触点,绑定变量「启动按钮」
  3. 点「添加分支」,在它下方并联一个常开触点,绑定「电机」——这就是自锁
  4. 在并联段右侧串联一个常闭触点,绑定「停止按钮」
  5. 末端放一个常开线圈,绑定「电机」
  6. 点「开始模拟」,拨动输入变量观察输出是否保持
要点:自锁靠的是输出自己的常开触点;停止一定要用常闭触点。 如果把自锁触点串到停止触点右边,自锁会失效——这是最常见的错误。

2. 电机正反转(互锁)

两个方向不能同时接通,因此各自串联对方的常闭触点,这是软件互锁。

变量名类型习惯地址说明
正转启动布尔I0.0
反转启动布尔I0.1
停止布尔I0.2程序里用常闭
KM 正转布尔Q0.0正转接触器输出
KM 反转布尔Q0.1反转接触器输出
正转:[ I0.0 常开 ] ─┬─ [ I0.2 常闭 ] ─ [ Q0.1 常闭 ] ─ ( Q0.0 常开线圈 )
      [ Q0.0 常开 ] ─┘

反转:[ I0.1 常开 ] ─┬─ [ I0.2 常闭 ] ─ [ Q0.0 常闭 ] ─ ( Q0.1 常开线圈 )
      [ Q0.1 常开 ] ─┘

逻辑:
Q0.0 = (I0.0 + Q0.0) · /I0.2 · /Q0.1
Q0.1 = (I0.1 + Q0.1) · /I0.2 · /Q0.0

要点:软件互锁不能替代硬件互锁。真实设备上还要用接触器常闭触点做电气互锁, 否则触点粘连时依然会短路。切换方向前必须先按停止,这是工程惯例。

3. 星三角降压启动

大功率电机常用星形启动、三角形运行。三个接触器:主接触器 KM1、星形 KM2、三角形 KM3。

变量名类型习惯地址说明
启动布尔I0.0
停止布尔I0.1程序里用常闭
KM1 主布尔Q0.0主接触器
KM2 星布尔Q0.1星形接触器
KM3 角布尔Q0.2三角形接触器
切换定时器时间T1接通延时定时器(TON),预设 5s

逻辑:

KM1 = (I0.0 + KM1) · /I0.1
T1.IN = KM1                  (接通延时 5s)
KM2 = KM1 · /T1.Q · /KM3     (星形:延时未到才吸合)
KM3 = KM1 · T1.Q · /KM2      (三角形:延时到才吸合)

搭建步骤

  1. 第一梯级做 KM1 的起保停
  2. 添加一个接通延时定时器功能块,输入接 KM1,预设时间 5s
  3. KM2 梯级:KM1 常开 → 定时器输出的常闭触点 → KM3 常闭 → 线圈 KM2
  4. KM3 梯级:KM1 常开 → 定时器输出的常开触点 → KM2 常闭 → 线圈 KM3
要点:KM2 与 KM3 必须互锁,两者同时吸合就是相间短路。 定时器的输入用 KM1 而不是启动按钮,这样按停止时定时器会自动复位,下次启动重新计时。

4. 闪烁(1Hz 脉冲)

用接通延时定时器的自复位接法产生周期脉冲,是做闪烁、心跳、循环扫描最常用的写法。

变量名类型习惯地址说明
启动布尔I0.0
停止布尔I0.1程序里用常闭
运行布尔M0中间继电器
时钟时间T1接通延时定时器,预设 500ms
指示灯布尔Q0.0输出
M0   = (I0.0 + M0) · /I0.1        (运行标志)
T1.IN = M0 · /T1.Q                 (关键:用自己输出的常闭触点,实现自复位)
Q0.0 = M0 · T1.Q                   (灯光 = 运行 且 定时器已到)
要点:T1.IN 里那个 /T1.Q 是全部关键—— 定时一到输出置 1,立刻把自己断开,于是重新计时,形成稳定的周期脉冲。 把预设时间改成 500ms 得到 1Hz;想更慢就调大预设值。 也可以用脉冲定时器(TP)实现同样的效果。

5. 传送带计数分拣

光电传感器检测工件,每满 5 件推料一次:这是计数器 + 比较的典型组合。

变量名类型习惯地址说明
光电传感器布尔I0.0工件经过时为 1
计数复位布尔I0.1
运行布尔M0中间继电器
工件计数数字C1增计数器,预设值 5
推料气缸布尔Q0.0输出
M0    = (启动 + M0) · /停止
C1.CU = I0.0  经【正脉冲】后再接计数器输入    ← 关键
C1.R  = I0.1                                (复位)
Q0.0  = M0 · ( C1 实际值 >= 5 )             用「大于等于」比较功能块
要点:传感器信号必须经上升沿(正脉冲)后再进计数器。 直接把电平接进去,工件停留期间会反复计数——这是计数类程序最典型的坑。 你也可以用「等于」比较代替「大于等于」,但要注意计数超过预设值后就再也匹配不上了。

6. 顺序启动(两台设备延时)

一台设备启动后延时若干秒再启动第二台,常见于流水线、风机水泵的梯级启动。一个定时器就能实现。

变量名类型习惯地址说明
启动布尔I0.0
停止布尔I0.1程序里用常闭
运行布尔M0中间继电器
1 号设备布尔Q0.0
2 号设备布尔Q0.1
延时时间T1接通延时定时器,预设 3s
M0    = (I0.0 + M0) · /I0.1
Q0.0  = M0                      (1 号立刻启动)
T1.IN = M0                      (延时 3s)
Q0.1  = M0 · T1.Q               (2 号延时后启动)
要点:想启动第 3 台,再加一个定时器、输入接 T1.Q 即可, 定时器链可以无限延伸。想改成「停止时按相反顺序依次停」,把定时器输入改接输出而非 M0。

7. 交通灯循环控制

红 20s → 绿 15s → 黄 5s 循环。用定时器链实现相位划分,再用脉冲定时器实现自动循环。

变量名类型习惯地址说明
启动布尔I0.0
停止布尔I0.1程序里用常闭
运行布尔M0中间继电器
红灯布尔Q0.0
绿灯布尔Q0.1
黄灯布尔Q0.2
T1 / T2 / T3时间T1..T3接通延时,预设 20s / 15s / 5s
复位脉冲时间TP1脉冲定时器,预设 0.5s
重启延时时间TOF1断开延时定时器,预设 0.5s
M0 = (I0.0 + M0 + TOF1.Q) · /I0.1 · /TP1.Q

T1.IN = M0            →  红灯 = M0   · /T1.Q
T2.IN = T1.Q          →  绿灯 = T1.Q · /T2.Q
T3.IN = T2.Q          →  黄灯 = T2.Q · /T3.Q

TP1.IN  = T3.Q        (一轮结束时产生 0.5s 复位脉冲)
TOF1.IN = TP1.Q       (脉冲结束后重新接通 M0,实现自动循环)
要点:这个题目真正值得琢磨的是怎么让循环自己转起来。 三个定时器靠 M0 供电,只有把 M0 瞬间断掉才能让它们全部复位; 用脉冲定时器切断 M0、再用断开延时定时器把它重新接通,循环就闭合了。 你也可以换成「1 秒时钟脉冲 + 增计数器 + 比较」的思路,用计数区间划分相位——两种都值得各做一遍。

看完不如动手。上面 7 个示例都可以在浏览器里直接搭出来。

无需安装博途、无需授权,支持触点、线圈、定时器、计数器、比较与数学指令,打开即用。

打开 PLC 在线仿真器 →

练习完成后,如果你想把这些梯形图用到真实的西门子 S7-1500 工程里,可以先用 梯形图转 SCL 得到结构化文本,再用 TiaLink(博途 MCP 网关) 把它写进博途工程并下载到 PLCSIM 仿真。相关用法见 常见问题。