正文描述:《14.功能与样例:计算当前日历日》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、功能与样例:计算当前日历日 问题: 如何根据模块上的日期来确定日历日?解答:所附的下载包含了一个带有功能块FB1的STEP7程序,在该功能块中,根据一年周期内的当前日期来确定日历日。在OB1中调用FB1,而用标志字(MW0)来参数化FB1的输出参数“Day_year”(数据类型:INT)。在表T1中给出了许多“Day_year”(MW0)变量的输出实例,而这些输出则根据CPU中的日期确定。如果,举例来讲,模块上的日期是3.2.2005,则日历日的数字为34(从1.1.2005开始的天数)。 CPU中的日期输出:“Day_year”
2、以天数计03.02.20053415.05.200513528.08.200524015.10.2005288表T1:日历日的样例该程序计算的数字在1到365之间,或闰年时在1到366之间。为了计算闰年,程序在下面两个时间段内有一点差别,从1990到1999,>或从2000到2089。相关的年份是否是闰年,取决于三个条件,这三个条件在程序中是链接在一起的:·可以被4整除的年份是闰年·然而,可以被100整除的年份不是闰年·但是,可以被400整除的年份是闰年所以年份1800、1900和2100不是闰年,而年份2000和2400则是闰年
3、。于是便有下面的定义,用于检查一个特定的年份是不是闰年:定义:(年份/4=0)AND((年份/100<>0)OR(年份/400=0))FB1包含了11个数据类型为INT的静态变量,分别代表一月~十一月。每种情形中对应的初始值是在每个月份的末尾积累的日历日总和。>表T2给出了FB1中每个静态变量的声明表达式。通过系统功能SFC1读取CPU的时间,然后通过确定月份数来获得如表格中所示的日历日数。
时间段月份(类型为INT的静态变量)日历日的天数和一月3101.01.xx~31.01.xx二月5901.01.xx~28.02.x
4、x三月9001.01.xx~31.03.xx四月12001.01.xx~30.04.xx五月15101.01.xx~31.05.xx六月18101.01.xx~30.06.xx七月21201.01.xx~31.07.xx八月24301.01.xx~31.08.xx九月27301.01.xx~30.09.xx十月30401.01.xx~31.10.xx十一月33401.01.xx~30.11.xx表T2:FB1中的静态变量声明现在,FB1中的程序计算:1.根据表T2,计算前一个月的日历日数;2.加上当前月份的日历日数;3.按照上面的
5、定义,如果是闰年,就额外再加上一天。运行和测试环境:该实例可以用在SIMATICS7-300、S7-400、C7和WinAC的所有CPU类型上。下表列出了用于创建此条目和检验所描述功能的组件。 测试环境版本PG/PC操作系统MSWindowsXPSTEP7V5.3SP1选项数据包 -- S7CPUCPU314C-2PtP/S7-PLCSIMV5.3表T3:所附下载的测试环境关键字:阳历
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。