技术论坛

读取300、400系统时钟的几种方法

作者 主题
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
主题:【分享】读取300、400系统时钟的几种方法
推荐帖


只看楼主 楼主 2018-08-25 10:26:52

读取300、400系统时钟的几种方法

   西门子300、400系统时钟功能,很方便给编程用户调用针对于设备运行时间等方面的应用,官方有相应的文档供用户学习和调用。其中,读取系统时钟的方法有如下几种:

1)  调用SFC1

2)  采用OB1循环组织块中接口变量OB1_DATE_TIME(系统自动生成)直接读取

方法1)程序:SFC1

创建一个读取系统时钟的项目并编辑并程序:

1)  在OB1中调用“库”—“系统功能”—将“SFC1”拖放到编辑区,在接口变量中定义一个存放读取系统时钟的存放变量名称date_time,数据类型Date_And_Time:


2)  将程序下载到仿真器,监控读取系统时钟的数据是否正确:


其中,读取到系统时钟的第8个字节(LB27),高4位存放毫秒数据,低4位存放星期数据(BCD码)。

记得刚刚开始学着调用这个SFC1的时候,一直无法填写CDT管脚的数据,写数据块DB1定义的地址系统报错。其实,问题在于这个比较特殊的数据类型需要这样做:

1)  在数据块中定义一个存放系统时钟的数据块地址区:


2)  还需要到符号表中声明数据DB1的符号名:


3)  完成后,再填写SFC1的CDT管脚选择该地址:


方法2)程序:我经常用的这种方法,直接读取OB1中的OB1_DATE_TIME数据,相对占用数据地址少,需要那些时钟数据直接读取(传送)出来就可以了。


最近有一个网友说,他想做一个控制程序,需要调用系统时钟数据,在上午7点30分开始执行一些数据记录,当编辑好上述程序段后,接下来编程就方便的多了,无非就是根据实际数据指令转换一下数据类型而已,如读取星期几的方法:


其中,系统时钟数据1表示为星期六日,2表示为星期一,以此类推。

实际上类似的编程方法还有很多,关键是你如何利用cpu系统硬件所具备的条件,合理调用达到自己想要的控制目的,根据你每一天调用一次的情况,如OB10也可以考虑一下。



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1503845&b_id=4&s_id=23&num=16

奇侠

经验值: 7405
发帖数: 1268
精华帖: 3
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 1楼 2018-08-25 12:10:08

赞  感谢楼主分享


新手到来 多多指教
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 楼主 2楼 2018-08-25 12:41:11
以下是引用海上漂1在2018-08-25 12:10:08的发言 >

赞  感谢楼主分享

海侠,我是回复在论坛上有一个网友的问题,问题说实在相对比较浅。但是,作为刚刚入门者,一点点的问题均都是问题。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3757
发帖数: 416
精华帖: 0
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 3楼 2018-08-25 19:24:58

楼主是个大善人啊!


继续努力!
以下网友喜欢您的帖子:

  
奇侠

经验值: 5470
发帖数: 634
精华帖: 0
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 4楼 2018-08-25 20:04:58

王工真是辛苦了,为了坛友能够学到知识,经常准备一些很有用得技能!谢谢了!


干就完了!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2302
发帖数: 276
精华帖: 2
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 5楼 2018-08-25 20:42:49

O(∩_∩)O谢谢楼主分享,学习了


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4577
发帖数: 399
精华帖: 0
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 6楼 2018-08-26 11:05:01

学习了,感谢分享



 
以下网友喜欢您的帖子:

  
游士

经验值: 194
发帖数: 15
精华帖: 1
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 7楼 2018-08-27 09:34:14

我按照你的方法试了。但是显示出来的年与日时分秒 的 都是 16进制的,当我把  小时 独立出来  和我 设置的 12  做比较  在监控时   发现 完全  不行。监控时   我设置的 成了  C(16进制),读出来的 系统时间小时  为  12 。我就蒙蔽了。  12  =  c  的嘛。   



后来发现  我设置 时  用  16#12   就ok 了  。有点蒙蔽


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 楼主 8楼 2018-08-27 09:41:00
以下是引用Always here在2018-08-27 09:34:14的发言 >

我按照你的方法试了。但是显示出来的年与日时分秒 的 都是 16进制的,当我把  小时 独立出来  和我 设置的 12  做比较  在监控时   发现 完全  不行。监控时   我设置的 成了  C(16进制),读出来的 系统时间小时  为  12 。我就蒙蔽了。  12  =  c  的嘛。   



后来发现  我设置 时  用  16#12   就ok 了  。有点蒙蔽

这个时间数据格式是BCD码,软件会以16进制数方式显示。

在实际应用中需要注意数据类型。



 
以下网友喜欢您的帖子:

  
至圣

经验值: 16723
发帖数: 1309
精华帖: 2
回复:读取300、400系统时钟的几种方法
推荐帖


只看楼主 9楼 2018-09-04 14:57:34

学习了,感谢分享


同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
以下网友喜欢您的帖子:

  
侠客

经验值: 931
发帖数: 179
精华帖: 0
回复:读取300、400系统时钟的几种方法


只看楼主 10楼 2018-09-23 13:42:10

1200和1500和300读时钟好像有区别


断剑重铸之日,骑士归来之时
以下网友喜欢您的帖子:

  
奇侠

经验值: 7770
发帖数: 1150
精华帖: 1
回复:读取300、400系统时钟的几种方法


只看楼主 11楼 2019-06-04 15:24:51

 

顶起,,,,


,,
以下网友喜欢您的帖子:

  
奇侠

经验值: 7770
发帖数: 1150
精华帖: 1
回复:读取300、400系统时钟的几种方法


只看楼主 12楼 2019-06-05 10:37:21

 各位

      读取系统时钟,为什么要读取?有什么重要好处,必须的么?能否详细的分析一下,加深印象;


,,
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:读取300、400系统时钟的几种方法


只看楼主 楼主 13楼 2019-06-05 10:45:33
以下是引用2016JR在2019-06-05 10:37:21的发言 >12楼

 各位

      读取系统时钟,为什么要读取?有什么重要好处,必须的么?能否详细的分析一下,加深印象;

没有必须的规定。

只是在程序段中需要使用到系统时钟时,才调用。

一般类似的应用,如定时启动、停止设备等,我最早看到应用的是设备制造商的“时间锁”程序。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 7770
发帖数: 1150
精华帖: 1
回复:读取300、400系统时钟的几种方法


只看楼主 14楼 2019-06-05 14:55:36
以下是引用WWCWWC在2019-06-05 10:45:33的发言 >13楼

没有必须的规定。

只是在程序段中需要使用到系统时钟时,才调用。

一般类似的应用,如定时启动、停止设备等,我最早看到应用的是设备制造商的“时间锁”程序。

以下是引用2016JR在2019-06-05 10:37:21的发言 >12楼: 各位      读...

引用12楼详细内容:

 各位

      读取系统时钟,为什么要读取?有什么重要好处,必须的么?能否详细的分析一下,加深印象;

,谢谢W侠的指导,我遇到的就是在触摸屏上显示时间而已;定时开关机倒没有遇到过这样的机器,


,,
以下网友喜欢您的帖子:

  
游侠

经验值: 545
发帖数: 34
精华帖: 1
回复:读取300、400系统时钟的几种方法


只看楼主 15楼 2019-06-06 01:25:15
这个时钟准确吗 会不会因为掉电什么的 发生错误
 
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:读取300、400系统时钟的几种方法


只看楼主 16楼 2019-06-06 07:13:10

 

为楼主点赞!


海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
读取300、400系统时钟的几种方法
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。