10怎么设置pg接口_西门子S7300 PLC时间日期怎么读取?

8999e420260cf9325aed5d25ee9eced5.gif

很多情况下我们都需要根据时间日期的变化来改变自动化系统的控制方式,这时候我们就需要将这些时间和日期的信息,从PLC中调出,下面我们就一起来学习,S7-300PLC是将时间日期信息如何进行存储的?

简单应用

01

S7-300PLC中实际上系统的时间日期信息是存储在主程序OB1的本地数据中,具体位置是OB1的LB12到LB18,分别存储的是年、月、日、小时、分钟、秒、毫秒、信息如图 1-1所示:

5aa174669ffaa916c4bd1ce697a8e399.png

那么我们如果需要对这些信息进行提取最简单的方法就是使用MOVE指令把这些L区的数据读到其他区域比如说M区如图 1-2所示:

af8afb6b757ece716db36606168500b3.png

这里我们必须要注意所有时间的显示都是以16进制的方式而不是10进制的方式显示的。

高级应用

02

一、数据类型:DATE_AND_TIME

DATE_AND_TIME是Step7四种复杂数据类型(DATE_AND_TIME、STRING、ARRAY及STRUCT)的一种,表示由日期和时间组成的时间,可以使用缩写DT来代替DATE_AND_TIME。

DATE_AND_TIME变量由8个字节构成,分别代表年、月、日、时、分、秒、毫秒,最后一个字节0-3位代表星期,4-7位表示毫秒,数据以BCD码表示。如图1所示,为DATE_AND_TIME的数据格式。

8594654ac771e6ddf34b3c419509c09e.png

DATE_AND_TIME数据类型的取值范围为:

最小:DT#1900-01-01-0:00:00.000

最大:DT#2089-12-31-23:59:59.999

二、设置系统时钟

1、在联机的情况下,通过STEP7软件菜单指令直接设定系统时钟,如图2.1、图2.2、图2.3所示。(前提:PG/PC要与实际PLC联网,或打开仿真器PLCSIM,即要处于"联机"状态)

723577bd84c7764ee1875b7f58562844.png

图2.1 菜单命令设定系统时钟(一)

acaab6e1eb6e26a5b3f63caa1e6cde74.png

图2.2 菜单命令设定系统时钟(二)

67f4f585fe66eb009eeda766bc0df7c7.png

图2.3 菜单命令设定系统时钟(三)

上述三种方法,都会弹出"设置时钟"的对话框,如图3所示,勾选"来自PG/PC",使用计算机时钟来同步PLC时钟。

066817836d5d84b84fab024ab84f46eb.png

图3 与PG/PC时钟同步

2、使用SFC0设置系统时间

除了使用PG/PC来同步系统时钟外,我么也可以使用系统功能SFC0来自定义系统时钟,方法如下:

1) 首先,创建一个DB块,如:DB20。并在其中定义一个DATE_AND_TIME变量。

bda0ae57b4e0ef9e88d2bca3c7d4d362.png

图4 定义DATE_AND_TIME变量

2) 在OB1中编写代码,将参考时间以16进制BCD码的形式赋值给DATE_AND_TIME变量的各个字节。第7个字节包含毫秒的个位值及星期,一般不需要设定,系统会根据给定的年、月、日来自己计算星期值并赋值。如图5所示。

48bfd5ea11489b5359678e2258ced878.png

图5 为DATE_AND_TIME变量赋值

有很多初学者在这里常常会犯疑惑,为什么此时"ref_time"中的星期数不对呢?(如图5所示)。其实,ref_time中并不会显示当前的星期数,我们需要重新读取系统时钟,才能获得正确的星期值,这点我们将在接下来的"读取系统时钟"中继续讨论(图7、图9)。

3) 调用SFC0,将定义好的DATE_AND_TIME变量值(这里为DB20中的"ref_time")设定为系统时钟,如图5所示。当M0.0检测到上升沿信号后,系统的时钟将变为"time.ret_time"所指定的值,本例中为:2018-12-30 14:39:20。

9520652ba5709254ac6335a20dee4f96.png

图5 调用SFC0,自定义系统时钟

三、读取系统时钟

1、使用OB1中的临时量 “OB1_DATE_TIME"来读取系统时钟;

OB1中定义了名为"OB1_DATE_TIME"的临时变量,如图6所示。OB1的每个扫描周期都会读取系统时钟,并存储到"OB1_DATE_TIME"中。因此,通过该临时变量即可得到系统时钟。

5ae4e253a2519a8def292e8a0709d557.png

图6 临时变量:"OB1_DATE_TIME"

0097487de8c355d8aec95ba304678538.png

图7 通过"OB1_DATE_TIME"读取系统时钟

2、调用SFC1来读取系统时钟

系统功能SFC1是专门用来读取系统时钟的,程序如如8所示。读取的系统时钟值存放于DB20中DBX8.0开始的8个字节空间中,如图9所示。

98c7067c2f9fbdf7a0e6b236ff841a44.png

图8 调用SFC1来读取系统时钟

be378c6e029ce70b749930d3965fadfe.png

图9 调用SFC1来读取系统时钟

结合图7、图9,我们就可以解开图5的疑惑了。我们自定义的系统时钟后,系统会自动计算出"星期值",我们读取当前系统时钟时,自然会读出正确的"星期值",因此,在给定系统时间时,仅需要给出年、月、日、小时、分钟、秒即可。

2458d817b12e57700f17298dfbabce2e.png

1bd5f9a12b9bff7e838d9cc1497a6ec9.gif

文章来源:综合网络,侵权联删,谢谢。

7edf1decd7c0fc53a7df9780800defb1.gif戳这里,实用案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

获取ajax传过来的数据_大数据编辑问题

【摘要】最近项目用到了大数据的编辑问题,在此做一个简单的总结【作者】田鋆鹏在最近的项目中遇到一个问题,这个问题的起因是因为在调用接口传参是传入的数据太大,导致接口调用失败【重构建议:田甜】1.我们在重构VUE项目的时候, POST请求并没有发成功&am…

第五人格维修服务器时间,第五人格调整维护时间 第五人格新赛季奖励皮肤一览...

第五人格调整维护时间 第五人格新赛季奖励皮肤一览,第五人格正式服于2018年5月24日进行停服维护,从本周起,第五人格将会调整维护时间,将于每周四早上8:30进行停服维护。更新内容:新赛季:[新赛季]&#xff1…

水星怎么设置网速最快_水星无线路由器如何设置网速限制 水星路由器怎么让别人网速限制方法...

我们在应用电脑上的情况下,一直会碰到许多 的电脑上难点。在我们在碰到了水星路由器如何设置速度限制的情况下,那麼大家应当怎么办呢?今日就一起来追随专业知识屋的我看一下怎么解决的吧。水星路由器如何设置速度限制:一、水星路由…

ajax参数是json数据类型,如何保护$ .ajax数据类型:json Post参数

我正在使用通过Web服务方法进行更新的参数。 请参阅下面的帖子。Post: http://myweb.com:8241/web/Dashboard.aspx/BindDatatableHost: localhost:8241User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0Accept: application/json, text/j…

从源PC上一次性p2v(qcow2)的构想

磁盘分区表,虚拟硬盘文件,操作系统引导 1. 基本概念和术语 源硬盘:一般就是客户的PC机的硬盘,硬盘里面包含了Windows分区。 源Windows:以源硬盘启动的Windows环境。 虚拟磁盘文件:文件格式有qcow2、vhd…

crt 8.7.3 黑暗模式_科技有意思 | 黑黑黑黑黑黑黑黑暗模式

不知从什么时候,手机上的黑暗模式成了系统的标配。本来这只是系统中的一个功能,现在经过从iOS 13系统的终于支持、苹果督促包括腾讯在内的开发者尽快适配,到一直不支持黑暗模式的微信也答应尽快开发相关功能,说得多了好像变成了一…

国内稳定的暗黑2服务器,国内暗黑2战网的基本概念介绍

战网:战网就是指暗黑的官方战网:BATTLE NET,简称BN。包括ASIA(1、2、3),EUROPE,USE,USW服务器。私服:相对于战网来说,属于非官方的服务器(私人服务器),除了以上所提到的6…

2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?

《演员请就位》终于上映了。这一期的节目明显要比之前要残忍,一上来先给40位演员来了一个市场评级。这一评可不要紧,S级别的都是年轻的演员,除了李志刚。但李志刚是男的,用制片人的话来说“正处在黄金时期”。而女的就比较惨了&am…

根据端口不同来切换站点_根据不同高温气体对窑炉的侵蚀,来选用相应的耐火材料...

根据不同高温气体对窑炉的侵蚀,来选用相应的耐火材料。由于高温窑炉的操作条件不同,因而其燃烧气体存在的侵蚀性成分也是不同的,从而导致与之接触的耐火材料受到各种不同的严重侵蚀。这说明只有根据具体的使用条件选择相应的耐火材料才能获得…

原神的天空岛服务器位置,原神天空岛服和世界树服数据互通吗

原神天空岛服和世界树服是游戏开服初始服务器,玩家们能在官服与B服中自由选择哦,那么原神天空岛服和世界树服数据互通吗、原神天空岛世界树服务器有什么区别吗,跑跑车手游网为大家带来了介绍。*原神天空岛服和世界树服数据互通吗?…

js 正则 或者_如何彻底搞懂面向 Web 开发者的正则表达式?

对于正则表达式,开发者如何跳出云里雾里的谜团?作者 | Chris Achard译者 | 弯月,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译文:正则表达式能在字符串中查找匹配特定模式的子字符串。在JavaScript中,可以…

域环境下文件服务器,域和文件服务器

域和文件服务器 内容精选换一换您可以使用已有的弹性云服务器快速创建伸缩配置。此时,伸缩配置中的云服务器类型、vCPU、内存、镜像、磁盘参数信息将默认与选择的云服务器规格保持一致。登录管理控制台。选择“计算 > 弹性伸缩 > 伸缩实例”。单击“创建伸缩配…

项目的启动顺序_多个项目进行如何做好进度管理

多项目并行比单个项目管理更容易出现意外,因为与单项目管理相比,多项目管理的环境显得更加复杂和难以管控。需要协调来自不同部门的资源;项目的优先级经常会被调整;有些项目是相互依存的;各部门间沟通困难;…

python 描述_python描述符

class Type:def __init__(self, key, expect_type):self.key keyself.expect_type expect_typedef __get__(self, instance, owner):print(执行get方法)return instance.__dict__[self.key]def __set__(self, instance, value):print(执行set方法)if not isinstance(value, s…

keep老是显示服务器开小差,nginx+keepalived高可用服务器宕机解决方案

原标题:nginxkeepalived高可用服务器宕机解决方案1.基本服务器宕机的主从切换配置两台nginx服务器,分别安装keepalived,配置/etc/keepalived/keepalived.conf主从配置:主nginx修改主nginx下/etc/keepalived/keepalived.conf文件备…

鸽主姓名查询成绩_鸽主姓名

鸽主姓名参赛鸽环号羽色100元组200元组备注范党生2011-33-016425雨点1002011-33-016428雨点100八闽山庄2011-27-055527雨点1002002011-27-055528雨点100200高凌振2011-27-098801绛100陈兆雄2011-27-034545雨点100大鹏鸽舍2011-27-020349灰200庞立新陈磊2011-01-861268绛200李军…

idea启动tomcat没有加载项目_震惊!我三步就搞定了 Tomcat 源码环境搭建!

喜欢请点关注引言随着微服务的流行,轻量级的服务应用器也是跟着大火了。毕竟那些企业级的服务应用器部署搭建成本太高。并且springboot 自带的就是 tomcat 服务。所以我们也有必要学习 tomcat 的相关知识啦,我们在项目中也用的很多,但是我们往…

云服务器装哪些版本的系统好,云服务器按装什么系统好

云服务器按装什么系统好 内容精选换一换云耀云服务器(Hyper Elastic Cloud Server,HECS)是可以快速搭建简单应用的新一代云服务器,具备独立、完整的操作系统和网络功能。提供快速应用部署和简易的管理能力,适用于网站搭建、开发环境等低负载应…

python正则匹配括号内任意字符_Python正则表达式:字符集、限制范围和否定

1.字符集虽然句点可以匹配任意符号,但是如果需要匹配某些特定字符,可以使用方括号([])。方括号的正则表达式能够匹配方括号内包含的任意字符。下列为一些示例:正则表达式1:b[aeiu]其匹配的字符串是bat、bet、bit、but正则表达式2:[er][23][dp…

mysql to data_mysql str_to_date 字符串转换为日期

1.mysql日期和字符相互转换方法date_format(date,’%Y-%m-%d’) ————–>oracle中的to_char();str_to_date(date,’%Y-%m-%d’) ————–>oracle中的to_date();%Y:代表4位的年份%y:代表2为的年份%m:代表月, 格式为(01……12)%c&am…