前言:
如今小伙伴们对“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语言显示实时时钟