西门子S7-200PLC怎么用READ_RTC显示年月日? 点击:18489 | 回复:8



blues5566

    
  • 精华:3帖
  • 求助:6帖
  • 帖子:41帖 | 84回
  • 年度积分:0
  • 历史总积分:93
  • 注册:2007年10月27日
发表于:2012-01-05 15:03:41
楼主
求助帖10分-已结帖

西门子S7-200PLC里怎么显示时间?

我用了READ_RTC块读取里面的时间,BCD码显示18,对应的应该是12年吧!请问月,日怎么显示!我想知道年月日,然后做比较输出个继电器!请高手指点!



楼主最近还看过



mallei

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 47回
  • 年度积分:0
  • 历史总积分:370
  • 注册:2011年1月03日
发表于:2012-01-05 17:11:38
1楼
这个你按F1看他的偏移量 也就是设置一个地址为起始地址 然后按照这个去偏移 具体的便宜地址和数据类型按照帮助的设置 全部都是BCD码 要转换成10进制的 分别是 年 月 日  时  分 秒 **   星期  对着这个指令 按F1 就出来了 具体不会的话加我QQ343410332 联系我教你。

liquang

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 187回
  • 年度积分:0
  • 历史总积分:3134
  • 注册:2010年11月25日
发表于:2012-01-08 15:14:07
2楼
读取实时时钟(TODR)指令从硬件时钟读取当前时间和日期,并将其载入以地址T起始的8个字节的时间缓冲区。设置实时时钟(TODW)指令将当前时间和日期写入用T指定的在8个字节的时间缓冲区开始的硬件时钟。TODR:设置ENO = 0的错误条件: 0006 间接地址 000C 不存在时钟盒TODW:设置ENO = 0的错误条件: 0006 间接地址 0007 TOD数据错误 000C 不存在时钟
所有日期和时间值必须采用BCD格式编码(例如,16#97代表2002年)。请参阅下表。
8个字节时间缓冲区格式(T)

T字节 说明 字节数据
0 年 (0-99) 当前年份 (BCD值)
1 月 (1-12) 当前月份 (BCD值)
2 日期 (1-31) 当前日期 (BCD值)
3 小时 (0-23) 当前小时 (BCD值)
4 分钟 (0-59) 当前分钟 (BCD值)
5 秒 (0-59) 当前秒 (BCD值)
6 00 保留 ?始终设置为00
7 星期几 (1-7) 当前是星期几,1=星期日 (BCD值)
长时间掉电或内存丢失后,实时时钟会被初始化为以下日期和时间:

日期: 90年1月1日
时间: 00:00:00
星期几: 星期日
提示: S7-200 CPU不会根据日期核实星期几是否正确。无效日期,例如2月30日,可能被接受。您应当确保您输入了正确的日期。请勿在主程序和中断例行程序中使用TODR/TODW指令。当另一条TODR/TODW指令正在执行时,若尝试执行中断例行程序中的TODR/TODW指令,则该指令不会被执行。SM4.3被设置为显示对此时钟曾有两个同时访问尝试(非重要错误0007)。S7-200中的当日时间时钟仅使用年份的最后两位数字,因此2000年表示为00。S7-200 PLC 不以任何方式使用年份信息。但是,使用算术或与年份值相比较的用户程序必须考虑两位数的表示法和世纪变化。2096年之前的闰年均可正确显示。

阿水

  • 精华:31帖
  • 求助:399帖
  • 帖子:1801帖 | 22295回
  • 年度积分:2
  • 历史总积分:98539
  • 注册:2007年3月22日
发表于:2012-01-09 09:24:39
3楼
         学习了, 不错            

snow1987

  • 精华:0帖
  • 求助:32帖
  • 帖子:59帖 | 670回
  • 年度积分:0
  • 历史总积分:4548
  • 注册:2011年3月23日
发表于:2012-01-09 09:42:31
4楼
引用 阿水 的回复内容:          学习了, 不错            


我也是来看回复的,嘿嘿

tt330523

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2012-08-12 10:16:35
5楼
太垃圾了吧,把帮助里的文件复制下来,

chen994621

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 67回
  • 年度积分:0
  • 历史总积分:109
  • 注册:2012年7月22日
发表于:2012-08-12 19:12:03
6楼

假如你READ_RTC的OUT里写的是QB0的话那么QB0里存储的是年QB1里存储的是月QB2里存储的是日然后:                 0 年 (0-99) 当前年份 (BCD值)
1 月 (1-12) 当前月份 (BCD值)
2 日期 (1-31) 当前日期 (BCD值)
3 小时 (0-23) 当前小时 (BCD值)
4 分钟 (0-59) 当前分钟 (BCD值)
5 秒 (0-59) 当前秒 (BCD值)       QB0就代表上表的0,QB1就代表上表中的1。然后举一反三、读出来就好了。当然READ_RTC的OUT中你也可以写VB,MB,现在懂了没?

沧海一粟——王者之师

  • 精华:1帖
  • 求助:1帖
  • 帖子:9帖 | 1264回
  • 年度积分:0
  • 历史总积分:8209
  • 注册:2007年10月17日
发表于:2012-08-14 14:51:37
7楼
但是写怎么解决呢  ?

Z~D

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 258回
  • 年度积分:0
  • 历史总积分:196
  • 注册:2016年10月20日
发表于:2017-07-27 17:29:27
8楼

 学习了, 不错           


热门招聘
相关主题

官方公众号

智造工程师