下面的 Clock_Integer 库可以自动将传输值从十进制转换为 BCD 格式,反之也可以从 BCD 格式转换成十进制。然后执行相应的时间操作 READ_RTC或SET_RTC。这样当传输值用操作面板或程序的十进制格式保存时,便于时间函数的处理 (READ_RTC和SET_RTC)。
需要为改库分配库存储区

从CPU中读取时间(READ_RTC_I) s7-200_rtc_clock_03_e.gif)
图3:函数“READ_RTC_I”函数“READ_RTC_I”的参数
参数 | 变量类型 | 说明 | EN | [BOOL] | 激活块
如有需要时才激活块,这样能减轻CPU负担 | 地址 | [DWORD] | 用于保存读取的时间值的地址
从该偏移量地址开始为其分配8个字节。 | 表1:函数“READ_RTC_I”的参数功能:
如果激活输入信号“EN”,该块读取当前时间,将 所读取的BCD值转换成十进制值,并保存在从给定偏移量地址开始的地址中。 在CPU中设置时间(SET_RTC_I) s7-200_rtc_clock_04_e.gif)
图4:函数“SET_RTC_I”函数“SET_RTC_I”的参数
参数 | 变量类型 | 说明 | EN | [BOOL] | 激活块
只有在需要时才激活该块,这样能减轻CPU负担。 | 地址 | [DWORD] | 存储用户时间数据的地址,该块读取从该偏移量地址开始的8个字节。 | 表2:参数“SET_RTC_I”功能:
如果激活输入信号(EN),该块读取所存储的用户数据,将 它们转换成BCD格式并以该格式来设置CPU时钟. 以十进制格式读取CPU时钟的实例: 如果激活V50.0,就读取时间。所读取的数据以十进制格式存储在VB10开始的地址中。 s7-200_rtc_clock_05_e.gif)
图5:“READ_RTC_I”实例 在状态表中检查数值:
该数值以十进制格式存放在时间函数所用的结构中。 时间函数的存储区结构(READ_RTC, SET_RTC): VB10 = 年份
VB11 = 月份
VB12 = 日期
VB13 = 小时
VB14 = 分钟
VB15 = 秒钟
VB16 = 保留
VB17 = 星期 s7-200_rtc_clock_06_e.gif)
图6:时间值的状态表
|