PLC 概念 3
TIME 32 位 存储形式
6.2.2 时钟和日历指令
日期和时间指令
日期和时间指令用于设计日历和时间计算。
● T_CONV 用于转换时间值的数据类型: (Time 转换为 DInt)或(DInt 转换为 Time)
● T_ADD 用于将 Time 与 DTL 值相加: (Time + Time = Time) 或 (DTL + Time = DTL)
● T_SUB 用于将 Time 与 DTL 值相减: (Time - Time = Time) 或 (DTL - Time = DTL)
● T_DIFF 提供两个 DTL 值的差作为 Time 值: DTL - DTL = Time
数据类型 大小(位) 有效范围
Time 32
存储形式
T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms
-2,147,483,648 ms 到 +2,147,483,647 ms DTL 数据结构
年:UInt 16 1970 到 2554 月:USInt 8 1 到 12
日:USInt 8 1 到 31
工作日:USInt 8 1 = 周日到 7 = 周六 小时:USInt 8 0 到 23
分钟:USInt 8 0 到 59
秒:USInt 8 0 到 59
纳秒:UDInt 32 0 到 999,999,999
T_CONV(时间转换)将 Time 数据类型转换为 DInt 数据类型,或将 DInt 数据类型转回 Time 数据类型。
参数 参数类型 数据类型 说明
IN IN DInt、Time 输入的 Time 值或 DInt 值 OUT OUT DInt、Time 转换后的 DInt 值或 Time 值 从指令名称下方提供的下拉列表中选择 IN 和 OUT 的数据类型。
T_ADD(时间相加)将输入 IN1 的值(DTL 或 Time 数据类型)与输入 IN2 的 Time 值相加。 参数 OUT 提供 DTL 或 Time 值结果。
允许以下两种数据类型的运算:
● Time + Time = Time
● DTL + Time = DTL
参数 参数类型 数据类型 说明
IN1 IN DTL、Time DTL 或 Time 值 IN2 IN Time 要加上的 Time 值 OUT OUT DTL、Time DTL 或 Time 和值
从指令名称下方提供的下拉列表中选择 IN1 的数据类型。 所选的 IN1 数据类型同时也会设置 参数 OUT 的数据类型。
T_SUB(时间相减)从 IN1(DTL 或 Time 值)中减去 IN2 的 Time 值。
参数 OUT 以 DTL 或 Time 数据类型提供差值。
允许以下两种数据类型的运算:
● Time - Time = Time
● DTL - Time = DTL
参数 参数类型 数据类型 说明
IN1 IN DTL、Time DTL 或 Time 值 IN2 IN Time 要减去的 Time 值 OUT OUT DTL、Time DTL 或 Time 差值
从指令名称下方提供的下拉列表中选择 IN1 的数据类型。所选的 IN1 数据类型同时也会设置 参数 OUT 的数据类型。
T_DIFF(时间差)从 IN1 DTL 值中减去 IN2 的 DTL 值。 参数 OUT 以 Time 数据类型提供差值。
DTL - DTL = Time
参数 参数类型 数据类型 说明
IN1 IN DTL DTL 值
IN2 IN DTL 要减去的 DTL 值 OUT OUT Time Time 差值
条件代码: ENO = 1 表示未发生错误。 ENO = 0 和参数 OUT = 0 表示出现以下错误:
● DTL 值无效
● Time 值无效
时钟指令
时钟指令用于设置和读取 PLC 系统时钟。 使用数据类型 DTL 提供日期和时间值。
DTL 结构 大小 有效范围
年:UInt 16 位 1970 到 2554
月:USInt 8 位 1 到 12
日:USInt 8 位 1 到 31
工作日:USInt 8 位 1 = 周日到 7 = 周六
小时:USInt 8 位 0 到 23
分钟:USInt 8 位 0 到 59
秒:USInt 8 位 0 到 59
纳秒:UDInt 32 位 0 到 999,999,999
WR_SYS_T(写入系统时间)使用参数 IN 中的 DTL 值设置 PLC 日时 钟。该时间值不包括本地时区或夏令时偏移量。
参数 参数类型 数据类型 说明
RD_SYS_T(读取系统时间)从 PLC 读取当前系统时间。该时间值不包括 本地时区或夏令时偏移量。
参数 参数类型 数据类型 说明
RET_VAL OUT Int 执行条件代码 OUT OUT DTL 当前 PLC 系统时间
RD_LOC_T(读取本地时间)以 DTL 数据类型提供 PLC 的当前本地时 间。
参数 参数类型 数据类型 说明
RET_VAL OUT Int 执行条件代码 OUT OUT DTL 当地时间
● 通过使用用户在 CPU 时钟设备配置中设置的时区和夏令时偏移量计算本地时间。
● 时区组态是相对于协调世界时 (UTC, Coordinated Universal Time) 系统时间的偏移 量。
● 夏令时组态指定夏令时开始时的月份、星期、日期和小时。
● 标准时间组态也会指定标准时间开始时的月份、星期、日期和小时。
● 时区偏移量始终会应用到系统时间值。 只有在夏令时有效时才会应用夏令时偏移量。
条件代码: ENO = 1 表示未发生错误。 ENO = 0 表示发生了执行错误,同时在 RET_VAL 输出中提供条件代码。
RET_VAL (W#16#....)
说明
0000 无错误
8080 本地时间不可用
8081 非法年份值
RET_VAL (W#16#....)
说明
8082 非法月份值
8083 非法日期值
8084 非法小时值
8085 非法分钟值
8086 非法秒数值
8087 非法纳秒值
80B0 实时时钟发生了故障