[西门子] S7-1200 -1500 案例之日期转换时间戳

[复制链接]
查看77693 | 回复0 | 2024-9-13 10:59:03 | 显示全部楼层 |阅读模式


S7-1200-1500 案例之日期转换为时间戳

相关软(硬)件:

1、编程软件:TIA_V15.1

2、仿真软件:PLCSIM

控制要求:

1、将日期时间转换为时间戳,例如:2024年9月2日16:51:21转换为时间戳:1725267081;



本文时间戳计算方法:计算1970年1月1日8时0分0秒以来的时间总秒数,首先计算闰年与平年个数,根据年份计算出总天数,再将总天数、当前小时、当前分钟分别转换为秒数后相加,再加上当前的秒数。

关于时间戳的更多内容请自行搜索。。。


注:程序仅供参考!!!

一、将时间转换为时间戳:

(新建项目、新建UDT、新建FB块、添加变量、编写程序、调用FB块、关联变量、下载测试)

1、新建自定义数据类型(UDT_SYS_Time):   



新建UDT数据类型

2、新建FB块(Timestamp Swap):



建立变量表

3、编写程序:



初始化、每月天数赋值



计算闰年与平年个数


计算当前时间天数   



计算总天数、总秒数

完整程序:



4、主程序调用:   



时间时区设置:UTC(+08:00)北京



新建DB块添加变量   



定义变量、获取系统时间


   

数据类型转换



调用时间戳FB块

4、下载测试:



下载测试1   



下载测试2



下载测试3



下载测试4

二、视频演示:


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3620087599903260679AB_RSLogix5000软件中测试:(其他PLC请自行测试)


RSLogix5000中程序



测试结果1



测试结果2

注:程序仅供参考!!!

(参考文章:S7-1200-1500 案例之两台设备周期循环控制)

(参考文章:S7-1200-1500案例之获取数组的最大值最小值)

(参考文章:S7-1200-1500案例之设备定时周期循环控制)

(参考文章:S7-1200-1500案例之设备轮询控制)

(参考文章:S7-1200-1500模拟量转换)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则