龙空技术网

读取和设置扩展实时时钟

专业水务新能源集成商 102

前言:

如今小伙伴们对“c语言显示实时时钟”大体比较关心,你们都想要分析一些“c语言显示实时时钟”的相关资讯。那么小编同时在网摘上收集了一些关于“c语言显示实时时钟””的相关知识,希望我们能喜欢,大家一起来学习一下吧!

TODRX T

读取扩展实时时钟指令从 PLC 中读取当前时间、日期和夏令时组态,并将其装载到从 T 所分配地址开始的 19 字节缓冲区中。

TODWX T

设置实时时钟指令使用字节地址 T 分配的 19 字节时间缓冲区数据将新的时间、日期和夏令时组态写入到 PLC 中。

LAD/FBD

STL

说明

ENO = 0 时的非致命错误

受影响的 SM 位

0006H 间接地址0007H T 数据错误0091H 操作数超出范围

输入

数据类型

操作数

T

BYTE

IB、QB、VB、MB、SMB、SB、LB、*VD、*LD、*AC

说明

READ_RTCX、SET_RTCX 编程提示

这些指令不接受无效日期。例如,如果输入 2 月 30 日,则会发生非致命性日时钟错误 (0007H)。

不要在主程序和中断例程中使用 READ_RTCX/SET_RTCX 指令。执行另一个 READ_RTCX/SET_RTCX 指令时,无法执行中断例程中的 READ_RTCX/SET_RTCX 指令。在这种情况下,CPU 会置位系统标志位 SM4.3,指示尝试同时对日时钟执行二重访问,导致 T 数据错误(非致命错误 0007H)。

CPU 中的日时钟仅使用年份的最后两位数,因此 00 表示为 2000 年。使用年份值的用户程序必须考虑两位数的表示法。

2099 年之前的闰年年份,CPU 都能够正确处理。

19 字节时间缓冲区的格式,从字节地址 T 开始

说明

仅当在字节 8 中分配时间修正模式时,才使用 T 字节(9 至 18)或(9 至 20)。否则,将返回由 STEP 7‑Micro/WIN SMART 或 SET_RTCX 指令最后写入到字节(9 至 18)或(9 至 20)中的值。

所有日期和时间值必须采用 BCD 格式分配(例如,16#12 代表 2012 年)。00 至 99 的 BCD 值范围可分配范围为 2000 至 2099 的年份。

T 字节

说明

数据值

0

00 至 99(BCD 值)20xx 年:其中,xx 是 T 字节 0 中的两位数 BCD 值

1

01 至 12(BCD 值)

2

01 至 31(BCD 值)

3

小时

00 至 23(BCD 值)

4

00 至 59(BCD 值)

5

00 至 59(BCD 值)

6

保留

始终设置为 00

7

星期几

使用 SET_RTCX/TODWX 指令写入时会忽略值。

通过 READ_RTCX/TODRX 指令进行读取时,值会根据当前年/月/日值报告正确的星期几。

1 至 7,1 = 星期日,7 = 星期六(BCD 值)

8

修正模式:

针对夏令时 (DST)

00H = 禁用修正

01H = 欧盟(相对于 UTC 的时区偏移量 = 0 小时)1

02H = 欧盟(相对于 UTC 的时区偏移量 = +1 小时)1

03H = 欧盟(相对于 UTC 的时区偏移量 = +2 小时)1

04H - 07H = 保留

08H = 欧盟(相对于 UTC 的时区偏移量 = -1 小时)1

09H - 0FH = 保留

10H = 美国 2

11H = 澳大利亚 3

12H = 保留

13H = 新西兰 4

14H-EDH = 保留

EEH = 用户定义(星期几)(使用字节 9 - 20 中的值)

EFH - FDH 保留

FEH = 保留

FFH = 用户定义(月中的某一天)(使用字节 9 - 18 中的值)

以下字节 9-18 仅用于修正模式 = FFH(由以前的用户分配)

9

DST 修正小时数

0 至 23(BCD 值)

10

DST 修正分钟数

0 至 59(BCD 值)

11

DST 开始月份

1 至 12(BCD 值)

12

DST 开始日

1 至 31(BCD 值)

13

DST 开始小时

0 至 23(BCD 值)

14

DST 开始分钟

0 至 59(BCD 值)

15

DST 结束月份

1 至 12(BCD 值)

16

DST 结束日

1 至 31(BCD 值)

17

DST 结束小时

0 至 23(BCD 值)

18

DST 结束分钟

0 至 59(BCD 值)

以下字节 9-20 仅用于修正模式 = EEH(由扩展用户分配)

9

DST 修正小时数

0 至 23(BCD 值)

10

DST 修正分钟数

0 至 59(BCD 值)

11

DST 开始月份

1 至 12(BCD 值)

12

DST 开始星期

1 至 5(BCD 值)5

13

DST 开始工作日

1 至 7(BCD 值)

14

DST 开始小时

0 至 23(BCD 值)

15

DST 开始分钟

0 至 59(BCD 值)

16

DST 结束月份

1 至 12(BCD 值)

17

DST 结束星期

1 至 5(BCD 值)5

18

DST 结束工作日

1 至 7(BCD 值)

19

DST 结束小时

0 至 23(BCD 值)

20

DST 结束分钟

0 至 59(BCD 值)

1 欧盟惯例:在三月最后一个星期日的 UTC 时间凌晨一点将时间向前调一小时。在十月最后一个星期日的 UTC 时间凌晨两点将时间往回调一小时。(进行修正时的当地时间取决于相对于 UTC 的时区偏移量。)

2 美国惯例:2007 年标准 - 在当地时间三月第二个星期日的凌晨两点将时间向前调一小时。在十一月第一个星期日的当地时间凌晨两点将时间向后调一小时。

3 澳大利亚惯例:2007 年标准 - 在十月第一个星期日的当地时间凌晨两点将时间向前调一小时。在四月第一个星期日的当地时间凌晨两点将时间向后调一小时(还适用于澳大利亚 - 塔斯马尼亚)。

4 新西兰惯例:2007 年标准 - 在九月最后一个星期日的当地时间凌晨两点将时间向前调一小时。在四月第一个星期日的当地时间凌晨两点将时间向后调一小时。

5 要分配某月最后出现的工作日(例如四月的最后一个星期一),设置星期 = 5。

超出断电时长对 CPU 时钟的影响

有关掉电期间实时时钟可维持正确时间的时长,请参见《S7-200 SMART 系统手册》的附录 A“CPU 规范”。

超出断电时长后,CPU 将初始化为下表所示的时间值。

日期

时间

星期几

2000 年 1 月 1 日

00:00:00

星期六

说明

紧凑型串行 (CRs) CPU 型号没有 RTC(实时时钟)

可使用 READ_RTCX 和 SET_RTCX 指令设置紧凑型串行 (CRs) CPU 型号中的年份、日期和时间值,但这些值将在下一次 CPU 断电通电循环时丢失。上电时,日期和时间将初始化为 2000 年 1 月 1 日。

标签: #c语言显示实时时钟