s7-200整型值设置与读出CPU系统时间 点击:518 | 回复:1



纵横军团-王道火山

    
  • 精华:2帖
  • 求助:5帖
  • 帖子:86帖 | 1878回
  • 年度积分:0
  • 历史总积分:7858
  • 注册:2012年1月11日
发表于:2012-09-26 11:55:49
楼主

描述:  
下面的 Clock_Integer 库可以自动将传输值从十进制转换为 BCD 格式,反之也可以从 BCD 格式转换成十进制。然后执行相应的时间操作 READ_RTCSET_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个字节。 
表1:函数“READ_RTC_I”的参数

功能:
如果激活输入信号“EN”,该块读取当前时间,将 所读取的BCD值转换成十进制值,并保存在从给定偏移量地址开始的地址中。

在CPU中设置时间(SET_RTC_I)


图4:函数“SET_RTC_I”

函数“SET_RTC_I”的参数 
 

参数变量类型说明
ENBOOL激活块
只有在需要时才激活该块,这样能减轻CPU负担。
地址DWORD存储用户时间数据的地址,该块读取从该偏移量地址开始的8个字节。
表2:参数“SET_RTC_I”

功能:
如果激活输入信号(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模块。 

正在下载,请等待……
下载附件需0积分!




huoshi

  • 精华:0帖
  • 求助:22帖
  • 帖子:347帖 | 2576回
  • 年度积分:517
  • 历史总积分:23145
  • 注册:2020年3月27日
发表于:2013-10-27 15:47:22
1楼

谢谢楼主分享!!!!!!!!!!!!!!


热门招聘
相关主题

官方公众号

智造工程师