LGF_DateCaculator指令库及其使用

LGF_DateCaculator库文件夹下包含以下库指令: LGF_DateDays,LGF_DateDiff和 LGF_DateSum。

注意:

此指令库使用STEP 7 MicroWIN SMART V2.6版本编写,请在STEP 7 MicroWIN SMART V2.6或更高版本软件中使用该库指令。

此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

在项目中使用库

LGF_DateCaculator指令库

创建完成的指令库文件扩展名为".smartlib"。库文件可以作为单独的文件拷贝、移动,将库文件移动至系统库文件夹下即可使用库指令(STEP 7-Micro/WIN SMART库文件夹一般存储路径为"C:\Users\Public\Documents\Siemens\STEP 7-MicroWIN SMART\Lib")。如果操作完成打开软件后未找到库指令,在库菜单栏下单击右键选择"刷新库"即可。

成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到‘LGF_DateCaculator(v1.3)'

图1. LGF_DateCaculator库

LGF_DateCaculatort简介

1.

库指令LGF_DateDays说明:

该库可以用来计算设定日期经过的天数,并且可以计算当年是否为闰年。

例如: 2020-3-18 是2020年的第78天, 并且 2020年是闰年。

程序块:

图 2. LGF_DateDays

表 1. LGF_DateDays参数
参数 声明 数据类型 注释
EN IN BOOL 程序块使能
setYear IN_OUT INT 设置年份
setMonth IN_OUT BYTE 设置月份
setDay IN_OUT BYTE 设置日期
totalDay IN_OUT INT 输出计算出来的天数
leapYear IN_OUT BOOL 闰年标志

2.库指令LGF_DateDiff说明:

该库可以用来计算2个日期之间的天数,如果起始日期比结束日期早,结果为正数,如果起始日期比结束日期晚,结果为负数。

当set 管脚为真时,更新计算结果。

例子: 从 2015-12-20 到 2021-5-11相差1969天 。

程序块:

图 3. LGF_DateDiff

表 2. LGF_DateDiff参数
参数 声明 数据类型 注释
EN IN BOOL 程序块使能
initYear IN_OUT INT 初始年份
initMonth IN_OUT BYTE 初始月份
initDay IN_OUT BYTE 初始日期
endYear IN_OUT INT 结束年份
endMonth IN_OUT BYTE 结束月份
EndDay IN_OUT BYTE 结束日期
dateDiff IN_OUT INT 2个日期之间的天数
set IN_OUT BOOL 当设置为1时,结果更新

3. 库指令LGF_DateSum说明:

该库可以计算初始日期和当前日期之间的天数,当set管脚为真时,将设定日期赋值给初始日期。如果管脚 reset为真,dataAcc清零。

注:1.当前日期起始地址共占用16字节。2.使用时需要提前设置好本地PLC日期。 3. 设定日期不能大于plc当前日期。

例子: 从 2015-12-20 到PLC中的当前日期(2022-3-8) 过了2271 天 。


程序块:

图 4. LGF_DateSumt参数

表3. LGF_DateSumt参数
参数 声明 数据类型 注释
EN IN BOOL 程序块使能
currentDate IN DWORD 当前日期的存储首地址(从起始地址占用16个字节)
setYear IN_OUT INT 设置年份
setMonth IN_OUT BYTE 设置月份
setDay IN_OUT BYTE 设置日期
initYear IN_OUT INT 如果set为真,initYear等于setYear
initMonth IN_OUT BYTE 如果set为真,initMonth等于setMonth
initDay IN_OUT BYTE 如果set为真,initDay等于setDay
dateAcc IN_OUT INT 计算初始日期和当前日期之间的累积天数
set IN_OUT BOOL 当设置为1时,initdata从setdata读取日期
reset IN_OUT BOOL 当reset为真时,清除dataAcc