概述
在數(shù)據(jù)采集時,精準(zhǔn)的相對時間是非常重要的。尤其是高速采集時,上位機(jī)的軟件(尤其是windows系統(tǒng)里的軟件)很難精準(zhǔn)地確定信息的時刻。這時候,如果PLC能夠在提供數(shù)據(jù)時,同時提供一個精準(zhǔn)的時間標(biāo)志(時間戳),將能極大地提高數(shù)據(jù)采集的計(jì)時準(zhǔn)確性,并降低采集系統(tǒng)的復(fù)雜性。下面將介紹獲取一個精確到微秒的Uint32時間戳的詳細(xì)步驟。雖然S7-1500已經(jīng)支持64位的整型,但是,考慮到低端的PLC還不支持64位的整型,因此,此處選擇相對通用的32位無符號整型。PART01完整程序 程序在準(zhǔn)備工作結(jié)束后,進(jìn)行一次時間戳計(jì)算,包括了時鐘獲取、轉(zhuǎn)換等過程。
PART02將時鐘轉(zhuǎn)換成整型數(shù)
首先讀取時鐘,寫入到一個長時間類型LDT,然后,轉(zhuǎn)成64位無符號整型ULInt。這個轉(zhuǎn)化是無損失的,"timeMeasure".timeNowULInt精確到納秒(ns)。
PART03獲取相對時間
精確到納秒的時間位數(shù)很長(從1970-1-1開始計(jì)算),是無法被32位整數(shù)容納的,因此,此處僅計(jì)算其相對時間。起始時間"timeMeasure".timeNowULIntStart在開始通訊,或者PLC啟動時獲取。
PART04轉(zhuǎn)成微秒(μs),并轉(zhuǎn)成32位無符號整數(shù) 此處截取微秒的部分,并強(qiáng)制轉(zhuǎn)化成32位無符號整數(shù)"dbGen_1024".stamp。
PART05翻轉(zhuǎn)的問題 用32位無符號整數(shù)表達(dá)微秒的時間戳?xí)r,由于32位無符號整數(shù)的最大值是4_294_967_295,大概1.2小時就會溢出而自然翻轉(zhuǎn)到0,因此,采集軟件必須注意處理翻轉(zhuǎn)的問題。
PART06有時間戳采集時的對時機(jī)制
由于PLC的對時(調(diào)表)不是很方便,因此,PLC里的絕對時間很可能是原始的時間,因此,我們只利用其準(zhǔn)確的相對時間來生成時間戳。
在采集軟件里要進(jìn)行對時操作(PLC-Recorder是在收到第一個完整電文時,讀取電文內(nèi)的時間戳和系統(tǒng)時間,完成對時,后續(xù)都用相對時間來處理,實(shí)際工作時,還要考慮PLC初始化、網(wǎng)絡(luò)中斷等很多其他因素)。
審核編輯 :李倩
-
plc
+關(guān)注
關(guān)注
5031文章
13847瀏覽量
473265 -
西門子
+關(guān)注
關(guān)注
98文章
3149瀏覽量
118020 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
40文章
7076瀏覽量
116116 -
S7-1500
+關(guān)注
關(guān)注
3文章
301瀏覽量
6796
原文標(biāo)題:西門子S7-1500產(chǎn)生精確時間戳的方法
文章出處:【微信號:工控PLC學(xué)習(xí),微信公眾號:工控PLC學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
雅馬哈機(jī)器人配置方法之西門子S7-1500控制技巧分享

如何使用博途平臺上完成西門子的S7-1500與S7-1200以太網(wǎng)通信?

西門子S7-1500 PLC的入門指南資料免費(fèi)下載

西門子S7-1500與分布式IO設(shè)備的診斷

工業(yè)網(wǎng)關(guān)BL110實(shí)現(xiàn)西門子S7-1500 PLC接入Modbus TCP Server云平臺
西門子PLC S7-1500產(chǎn)生精確時間戳及各種數(shù)據(jù)處理的方法

西門子PLC S7-1500系列的工藝模塊說明
西門子PLC S7-1500系列與西門子變頻器G120之間實(shí)現(xiàn)DP通訊功能
西門子S7-1500 DI模塊使用方法分享
西門子PLC S7-1500系列介紹

評論