跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/T_DIFF — 时间差

T_DIFF — 时间差

计算两个 Time_Of_Day 的差,输出 Time。

时间 S7-1200/1500 TIA V19 别名:时间差 / T_DIFF

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

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

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

一句话

T_DIFF 计算两个 Time_Of_Day 的差,输出 Time。

符号与引脚

分类:时间 不需要实例 模板值:date_type, 时间类型(time_type)
引脚方向说明
en流输入使能输入
IN1输入结束时间(Time_Of_Day)
IN2输入开始时间(Time_Of_Day)
OUT输出时间差

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时 Result = T_DIFF(A, B);A=TOD#14:30:00、B=TOD#08:00:00 得 T#6h30m。

T_DIFF_Example:Network 1 — 时间差

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • IN1 是结束时间,IN2 是开始时间,OUT 是差值(Time)。
  • 输入是 Time_Of_Day,不是 Time;模板 date_type=Time_Of_Day、time_type=Time。
  • 跨午夜时结果按 TIA 规则处理;需要“加一天”时先判断。
  • 示例把盒放在 rung 末端;需要继续逻辑时另起 rung。

常用场景

1. 时间差

同上面的最小示例。

2. 计算班次时长

班次时长 = 结束时刻 - 开始时刻,用于统计班次/节拍。

参数 示例值
Enable TRUE
A TOD#14:30:00
B TOD#08:00:00
Result T#6h30m
T_DIFF_ShiftDiff:Network 1 — 计算班次时长

常见坑

  • 输入用 Time:T_DIFF 要 Time_Of_Day,不是 Time。
  • 跨午夜:结束时间小于开始时间时,先确认是否需要加 24h。
  • 顺序写反:IN1 - IN2。
  • terminal:后面不能再接线圈/盒。

← 返回 LAD 指令手册