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

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9111
  • 精华

    157
  • 被关注

    1473

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

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

10859

16

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也可以考虑一下。


读取300、400系统时钟的几种方法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。