读取和设置实时时钟

读取和设置实时时钟例如,如果输入 2 月 30 日,则会发生非致命性日时钟错误 。00 至 99 的 BCD 值范围可分配范围为 2000 至 2099 的年份。

大家好,欢迎来到IT知识分享网。

读取和设置实时时钟

TODR T

读取实时时钟指令从 CPU 读取当前时间和日期,并将其装载到从字节地址 T 开始的 8 字节时间缓冲区中。

读取和设置实时时钟

TODW T

设置实时时钟指令通过由 T 分配的 8 字节时间缓冲区数据将新的时间和日期写入到 CPU。

LAD/FBD

STL

说明

ENO = 0 时的非致命错误

受影响的 SM 位

  • 0006H 间接地址
  • 0007H T 数据错误

输入

数据类型

操作数

T

BYTE

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

说明

READ_RTC、SET_RTC 编程提示

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

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

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

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

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

所有日期和时间值必须采用 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_RTC/TODW 指令写入时会忽略值。

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

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

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

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

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

日期

时间

星期几

2000 年 1 月 1 日

00:00:00

星期六

说明

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/80061.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信