LabVIEW深入探索之絕對時間、通用時間和相對時間
作為一種面向工程應(yīng)用的編程語言,Labview提供了非常豐富的時間操作函數(shù)。8.X后又提出了新的有關(guān)時間的數(shù)據(jù)類型,時間標(biāo)識(TIMESTAMP)。時間標(biāo)識早期通常翻譯成“時間戳”,實(shí)際上是一種改進(jìn)型的數(shù)值控件,從時間標(biāo)識控件所在的控件選板就可以初步判斷出,時間標(biāo)識就是特殊的數(shù)值控件。
一、時間標(biāo)識的內(nèi)存映射
要想真正了解一種數(shù)據(jù)類型,首要的問題是要搞清楚該數(shù)據(jù)類型在內(nèi)存中或者文件中是如何存儲的。我們知道數(shù)值型控件可以選擇控件所包含的數(shù)據(jù)類型,比如雙精度浮點(diǎn)數(shù)、整型數(shù)、32位整型數(shù)、16位整型數(shù)等等。
時間標(biāo)識控件是不允許選擇它所包含的數(shù)據(jù)類型的,這說明時間標(biāo)識所包含的數(shù)據(jù)類型是固定的。從幫助文件中,我們可以找到時間標(biāo)識在內(nèi)存中的存儲方式--映射。
LabVIEW將時間標(biāo)識保存為一個含四個整數(shù)的簇,其中前兩個帶符號整數(shù)(64位二進(jìn)制)表示自1904年1月1日周五凌晨[01-01-190400:00:00]以來無時區(qū)影響的所有秒數(shù)。后兩個不帶符號整數(shù)(64位二進(jìn)制)表示小數(shù)秒部分。
LabVIEW利用16個字節(jié)(128位)表示時間信息,其中前8個字節(jié)(64位)由兩個I32構(gòu)成,表示從0時刻開始經(jīng)歷過的秒數(shù)。后面8個字節(jié)為U64數(shù)據(jù),表示秒的小數(shù)部分。
二、時間標(biāo)識與雙精度數(shù)之間的相互轉(zhuǎn)換
在時間標(biāo)識出現(xiàn)以前,經(jīng)常用雙精度數(shù)表示從0時刻經(jīng)歷過的秒數(shù)。我們知道雙精度數(shù)所占的內(nèi)存空間也是8個字節(jié),與時間標(biāo)識相同。但是時間標(biāo)識實(shí)際上是定點(diǎn)數(shù),它的小數(shù)點(diǎn)位置是確定的,因此實(shí)際上雙精度數(shù)表示時間與時間標(biāo)識相比,不如時間標(biāo)識精確。
采用數(shù)值轉(zhuǎn)換函數(shù)就可以實(shí)現(xiàn)時間標(biāo)識和雙精度數(shù)之間的相互轉(zhuǎn)換,如下圖所示:
三、強(qiáng)制轉(zhuǎn)換時間標(biāo)識至數(shù)值
既然我們已經(jīng)知道了時間標(biāo)識在內(nèi)存中的存儲方式,我們自然就可以通過強(qiáng)制轉(zhuǎn)換函數(shù)分解出時間標(biāo)識的兩個組成部分,秒和秒的小數(shù)部分。
因?yàn)闀r間標(biāo)識占有8個字節(jié)的內(nèi)存空間,并分成前后各4個字節(jié),因此可以創(chuàng)建一個簇或者數(shù)組來表示它,下面的例子創(chuàng)建一個簇,包含3個元素。前兩個元素表示秒的整數(shù)部分,第3個元素表示秒的小數(shù)部分。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論