描述:
下面的 Clock_Integer 库可以自动将传输值从十进制转换为 BCD 格式,反之也可以从 BCD 格式转换成十进制。然后执行相应的时间操作 READ_RTC或SET_RTC。这样当传输值用操作面板或程序的十进制格式保存时,便于时间函数的处理 (READ_RTC和SET_RTC)。
图1: Clock_Integer库
库的全局存储区
库使用全局存储区来保证传输的用户数据的一致性。从 库中将其中一个函数 (READ_RTC_I或SET_RTC_I)插入到STEP 7 Micro/Win 项目,然后选中 STEP 7 Micro/Win 菜单“文件”中的条目“Library Memory Allocation (分配库内存)”。系统会提供一个地址区,或者您也可以自己选择一个地址区。该库需要8个字节。
图2:库存储区
从CPU中读取时间(READ_RTC_I)
图3:函数“READ_RTC_I”
函数“READ_RTC_I”的参数
参数 | 变量类型 | 说明 |
EN | 【BOOL】 | 激活块 如有需要时才激活块,这样能减轻CPU负担 |
地址 | 【DWORD】 | 用于保存读取的时间值的地址 从该偏移量地址开始为其分配8个字节。 |
功能:
如果激活输入信号“EN”,该块读取当前时间,将 所读取的BCD值转换成十进制值,并保存在从给定偏移量地址开始的地址中。
在CPU中设置时间(SET_RTC_I)
图4:函数“SET_RTC_I”
函数“SET_RTC_I”的参数
参数 | 变量类型 | 说明 |
EN | 【BOOL】 | 激活块 只有在需要时才激活该块,这样能减轻CPU负担。 |
地址 | 【DWORD】 | 存储用户时间数据的地址,该块读取从该偏移量地址开始的8个字节。 |
功能:
如果激活输入信号(EN),该块读取所存储的用户数据,将 它们转换成BCD格式并以该格式来设置CPU时钟.
以十进制格式读取CPU时钟的实例:
如果激活V50.0,就读取时间。所读取的数据以十进制格式存储在VB10开始的地址中。
图5:“READ_RTC_I”实例
在状态表中检查数值:
该数值以十进制格式存放在时间函数所用的结构中。
时间函数的存储区结构(READ_RTC, SET_RTC):
VB10 = 年份
VB11 = 月份
VB12 = 日期
VB13 = 小时
VB14 = 分钟
VB15 = 秒钟
VB16 = 保留
VB17 = 星期
图6:时间值的状态表
注意事项:
CPU 221和CPU 222不包含集成的时钟,所以需要CC292模块。