找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2580|回复: 10

西门子S7-1500产生精确时间戳的方法

  [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2023-5-1 11:37:22 | 显示全部楼层 |阅读模式
概述
在数据采集时,精准的相对时间是非常重要的。尤其是高速采集时,上位机的软件(尤其是windows系统里的软件)很难精准地确定信息的时刻。这时候,如果PLC能够在提供数据时,同时提供一个精准的时间标志(时间戳),将能极大地提高数据采集的计时准确性,并降低采集系统的复杂性。下面将介绍获取一个精确到微秒的Uint32时间戳的详细步骤。虽然S7-1500已经支持64位的整型,但是,考虑到低端的PLC还不支持64位的整型,因此,此处选择相对通用的32位无符号整型。
PART 01
完整程序
程序在准备工作结束后,进行一次时间戳计算,包括了时钟获取、转换等过程。


PART 02
将时钟转换成整型数
首先读取时钟,写入到一个长时间类型LDT,然后,转成64位无符号整型ULInt。这个转化是无损失的,"timeMeasure".timeNowULInt精确到纳秒(ns)。


PART 03
获取相对时间
精确到纳秒的时间位数很长(从1970-1-1开始计算),是无法被32位整数容纳的,因此,此处仅计算其相对时间。起始时间"timeMeasure".timeNowULIntStart在开始通讯,或者PLC启动时获取。


PART 04
转成微秒(μs),并转成32位无符号整数
此处截取微秒的部分,并强制转化成32位无符号整数"dbGen_1024".stamp。


PART 05
翻转的问题
用32位无符号整数表达微秒的时间戳时,由于32位无符号整数的最大值是4_294_967_295,大概1.2小时就会溢出而自然翻转到0,因此,采集软件必须注意处理翻转的问题。


PART 06
有时间戳采集时的对时机制
由于PLC的对时(调表)不是很方便,因此,PLC里的绝对时间很可能是原始的时间,因此,我们只利用其准确的相对时间来生成时间戳。

在采集软件里要进行对时操作(PLC-Recorder是在收到第一个完整电文时,读取电文内的时间戳和系统时间,完成对时,后续都用相对时间来处理,实际工作时,还要考虑PLC初始化、网络中断等很多其他因素)。

工控课堂 www.gkket.com

0

主题

116

回帖

394

积分

注册会员

积分
394
发表于 2025-11-15 22:51:36 | 显示全部楼层
赞同 + 10086,没毛病,完全没毛病
工控课堂 www.gkket.com

0

主题

88

回帖

122

积分

新手上路

积分
122
发表于 2025-11-15 22:55:57 | 显示全部楼层
原来还有这种操作,长见识了!
工控课堂 www.gkket.com

0

主题

123

回帖

345

积分

注册会员

积分
345
发表于 2025-11-15 23:00:53 | 显示全部楼层
楼主太会说了,字字句句都在理~
工控课堂 www.gkket.com

0

主题

107

回帖

167

积分

新手上路

积分
167
发表于 2025-11-15 23:01:18 | 显示全部楼层
楼主太会说了,字字句句都在理
工控课堂 www.gkket.com

0

主题

118

回帖

851

积分

中级会员

积分
851
发表于 2025-11-15 23:01:45 | 显示全部楼层
浅评一下:内容优质,值得推荐~
工控课堂 www.gkket.com

0

主题

97

回帖

148

积分

新手上路

积分
148
发表于 2025-11-15 23:04:27 | 显示全部楼层
已转发给朋友,一起感受这份快乐~
工控课堂 www.gkket.com

0

主题

78

回帖

125

积分

新手上路

积分
125
发表于 2025-11-15 23:04:42 | 显示全部楼层
理性围观,感觉大家说得都有道理
工控课堂 www.gkket.com

0

主题

93

回帖

144

积分

新手上路

积分
144
发表于 2025-11-15 23:10:38 | 显示全部楼层
救命!这波发言太秀了,直接原地封神~
疯狂认同!楼主说出了我不敢说的话
工控课堂 www.gkket.com

0

主题

121

回帖

288

积分

注册会员

积分
288
发表于 2025-11-15 23:11:11 | 显示全部楼层
谁懂啊!这内容我能循环看十遍
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 16:15 , Processed in 0.312087 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表