[西门子] 西门子PLC S7-1500产生精确时间戳及各种数据处理的方法

[复制链接]
查看86 | 回复0 | 2024-4-6 16:32:18 | 显示全部楼层 |阅读模式
微信搜一搜
技成培训在数据采集时,精准的相对时间是非常重要的。尤其是高速采集时,上位机的软件(尤其是windows系统里的软件)很难精准地确定信息的时刻。这时候,如果PLC能够在提供数据时,同时提供一个精准的时间标志(时间戳),将能极大地提高数据采集的计时准确性,并降低采集系统的复杂性。


下面将介绍获取一个精确到微秒的Uint32时间戳的方法。虽然S7-1500已经支持64位的整型,但是,考虑到低端的PLC还不支持64位的整型,因此,此处选择相对通用的32位无符号整型。


01
完整程序程序在准备工作结束后,进行一次时间戳计算,包括了时钟获取、转换等过程。



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



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



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



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



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


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


免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!


HISTORY/往期推荐
2021年电工初级考试题库完整版(内含答案)


电气人作业必备的3个神器,用微信一键打开即可使用!


【收藏】 十年老电工的“出路”,月入过万的秘诀!


五大电气制图软件(CAD、Eplan、CADe_simu...),你pick那个?


最新电气版CAD绘图软件,附超详细安装教程!


最新电气绘图软件EPLAN,附超详细安装教程!


初学者使用S7-200 SAMRT编程软件常见问题(附软件下载)


超全电气计算EXCEL表格,自动生成!电气计算不求人!


蓝牙耳机、电工/PLC入门书籍任性送?快来领取你的电气礼物!


PLC编程基本功:梯形图与控制线路(附1164个三菱PLC实用案例)


还看不懂电气图?电工识图基础、仿真软件拿走,理论实操快速上手!


12门永久免费电工视频、10GB软件/电子书资料、30天免费电工直播课免费送啦!



别忘了点赞+在看哦!
“阅读原文”免费学PLC/电工课程

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

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

本版积分规则