跳到正文
Learn-LAD
示例库/自动测试台

自动测试台

测试台的多步动作与时序控制,用多个脉冲定时器串联动作阶段。

入门 S7-1200 定时器 TP 多步动作

导入到我的 TIA 项目

通过 TiaLink 把本示例的 7 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

概述

按启动按钮并检测到工件后,测试台依次触发三路测试输出:test_1 立即运行 10 秒,test_2 等 15 秒后运行 10 秒,test_3 等 30 秒后运行 10 秒。

整个程序只有一个网络,却用三组"延时接通 + 脉冲输出"定时器链并行搭出了一个错峰动作的时序。它是理解"用 TON 做延时、用 TP 做脉冲"的最佳练习。

信号表

信号 类型 含义 作用
Start_Button I 启动按钮 与传感器一起启动测试
sensor I 工件传感器 检测到工件才允许测试
test_1 Q 测试输出 1 立即输出 10 秒
test_2 Q 测试输出 2 15 秒后输出 10 秒
test_3 Q 测试输出 3 30 秒后输出 10 秒
IEC_Timer_0_DB TP 测试 1 脉冲 10 秒
IEC_Timer_0_DB_1 / _2 TON / TP 测试 2 延时与脉冲 15 秒后 10 秒
IEC_Timer_0_DB_3 / _4 TON / TP 测试 3 延时与脉冲 30 秒后 10 秒

工作流程

  1. Start_Button=1 且 sensor=1 → 三个定时器链同时获得条件;
  2. test_1 立即触发 TP,输出 10 秒;
  3. 第 15 秒时,第二链的 TON 到时间 → 触发 TP,test_2 输出 10 秒;
  4. 第 30 秒时,第三链的 TON 到时间 → 触发 TP,test_3 输出 10 秒;
  5. 条件一旦断开,三条链全部复位,等待下一次启动。

MainOB

Network 1 — 三路错峰测试时序

Network 1:Start_Button、sensor、test_1、test_2、test_3

目的:在同一个条件下产生三个不同时刻的测试脉冲。

条件 → 动作:

  • test_1 = TP(IN = Start_Button AND sensor, PT = T#10s).Q:条件一成立马上输出 10 秒;
  • test_2 = TP(IN = TON(IN = 条件, PT = T#15s).Q, PT = T#10s).Q:先等 15 秒,再输出 10 秒;
  • test_3 = TP(IN = TON(IN = 条件, PT = T#30s).Q, PT = T#10s).Q:先等 30 秒,再输出 10 秒。

为什么:TON 负责"错峰"(等多久),TP 负责"动作时长"(持续多久)。三条链共用同一个启动条件,结构对称、容易扩展。

注意:TON 要求条件连续保持;条件中途断开,所有链都从头计时。TP 则一旦触发就固定走完脉冲,不受条件影响。

逻辑: test_1 = TP(IN = Start_Button AND sensor, PT = T#10s).Q

test_2 = TP(IN = TON(IN = Start_Button AND sensor, PT = T#15s).Q, PT = T#10s).Q

test_3 = TP(IN = TON(IN = Start_Button AND sensor, PT = T#30s).Q, PT = T#10s).Q

常见问题

  • 只有 test_1 动作:检查启动条件是否在 15/30 秒内断开了;TON 需要持续满足才能走到触发。
  • 测试顺序不对:每个 TON 的 PT 决定开始时刻,每个 TP 的 PT 决定动作时长;按需要的时序改这两组时间即可。
  • 想加第四路测试:复制一条链,改 TON 的延时和 TP 的时长,接到新的输出。
  • 点表里还有 Tag_1(%I0.1):程序没有引用它,可能是调试遗留,不影响测试时序。

变体与扩展

  • 顺序互锁:把上一路输出作为下一路链的启动条件,保证严格先后(而不是各自计时)。
  • 可配置时序:把 TON/TP 的 PT 换成 HMI 变量,做成可调参数的测试台。
  • 减少定时器:如果测试动作能由图序控制,可用一个状态机代替多条并行定时器链。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
sensorBool%I0.0
test_1Bool%Q0.0
test_2Bool%Q0.1
test_3Bool%Q0.2
Tag_1Bool%I0.1
Start_ButtonBool%I0.2
系统实例 DB(5 个)

TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。

IEC_Timer_0_DB 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_1 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_2 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_3 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_4 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool

下一步