S7-200 SMART的硬件实时时钟可以提供年、月、日、时、分、秒的日期/时间数据。
实时时钟指令使用的相关视频教程链接如下:
CPU CR40/CR60 等紧凑型CPU没有内置的实时时钟,其他标准型CPU支持内置的实时时钟,CPU断电状态下可保持7天。
S7-200 SMART CPU的时钟精度是± 120 秒 / 月。
S7-200 SMART CPU 靠内置超级电容为实时时钟提供电源缓冲,保持时间为典型值7天,最小值6天。缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。
注意:因为 紧凑型CPU 无内置超级电容,所以实时时钟无电源缓冲,尽管用户可以使用READ_RTC 和 SET_RTC 指令设置日期/时间数据,但是当 CPU CR40/CR60 断电并再次上电时,这些日期/时间数据会丢失,上电后日期时间数据会被初始化为2000年1月1日。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。
使用程序读取的实时时钟数据为BCD格式,可在状态表中使用十六进制格式查看。
要设置日期、时间值,使之开始走动,可以:
Micro/WIN SMART 可以通过任何编程连接实现实时时钟的设置。
通过编程软件 Micro/WIN SMART 设置 CPU 的时钟,必须先建立编程通信连接。
在 Micro/WIN SMART 菜单中选择“PLC “- >”设置实时时钟”,打开“PLC 时钟操作”对话框:
图 1. PLC 实时时钟设置界面
图中:
Read_RTC(读时钟)和Set_RTC(设置时钟)指令靠数据缓冲区在用户程序与硬件芯片间交换数据,它们的缓冲区格式相同。
表1. 时钟缓冲区
地址偏移 | T | T+1 | T+2 | T+3 | T+4 | T+5 | T+6 | T+7 |
---|---|---|---|---|---|---|---|---|
数据内容 | 年 | 月 | 日 | 小时 | 分钟 | 秒 | 0 | 星期 |
数值范围 BCD (16进制) |
00-99 | 01-12 | 01-31 | 00-23 | 00-59 | 00-59 | 0 | 0-7* |
T 就是缓冲区的起始字节地址,可以由用户自由设置(在CPU允许的V存储区范围内)。如果设置T为VB100,那么读取时钟后,“年”的信息就会保存在VB100中,“月”保存在VB101中。
写时钟指令(SET_RTC)为何不能正常改写时钟内容?
执行写时钟指令要保证缓冲区所有字节都包含合法数据;仅修改某些数据时,其他字节不能包含非法数值,否则会发生错误。
读写的时钟数据如何在十进制(整数)和BCD数据之间转换?
要计算时间需要将BCD格式的时钟数据与十进制的数据之间的转换,使用相应的转换指令就可以实现。
具体转换指令参见 Clock_Integer 指令库以及使用
如何实现实时是时钟的长期备份?
S7-200 SMART SB BA01 电池板适用于实时时钟的长期备份。其可插入 S7-200 SMART CPU(固件版本 V2.0 及更高版本)的信号板插槽中。必须将 SB BA01添加到设备组态并将硬件配置下载到 CPU 中,SB BA01才可以使用附加电池健康状况报告选项。电池(型号 CR1025)未随 SB BA01 一起提供,用户必须另行购买。