LabVIEW深入探索之绝对时间、通用时间和相对时间

2014-11-04 11:29:14来源: ck365

  作为一种面向工程应用的编程语言,Labview提供了非常丰富的时间操作函数。8.X后又提出了新的有关时间的数据类型,时间标识(TIMESTAMP)。时间标识早期通常翻译成“时间戳”,实际上是一种改进型的数值控件,从时间标识控件所在的控件选板就可以初步判断出,时间标识就是特殊的数值控件。

  一、时间标识的内存映射

  要想真正了解一种数据类型,首要的问题是要搞清楚该数据类型在内存中或者文件中是如何存储的。我们知道数值型控件可以选择控件所包含的数据类型,比如双精度浮点数、整型数、32位整型数、16位整型数等等。

  时间标识控件是不允许选择它所包含的数据类型的,这说明时间标识所包含的数据类型是固定的。从帮助文件中,我们可以找到时间标识在内存中的存储方式--映射。

  LabVIEW将时间标识保存为一个含四个整数的簇,其中前两个带符号整数(64位二进制)表示自1904年1月1日周五凌晨[01-01-190400:00:00]以来无时区影响的所有秒数。后两个不带符号整数(64位二进制)表示小数秒部分。

 LabVIEW利用16个字节(128位)表示时间信息,其中前8个字节(64位)由两个I32构成,表示从0时刻开始经历过的秒数。后面8个字节为U64数据,表示秒的小数部分。

  二、时间标识与双精度数之间的相互转换

  在时间标识出现以前,经常用双精度数表示从0时刻经历过的秒数。我们知道双精度数所占的内存空间也是8个字节,与时间标识相同。但是时间标识实际上是定点数,它的小数点位置是确定的,因此实际上双精度数表示时间与时间标识相比,不如时间标识精确。

  采用数值转换函数就可以实现时间标识和双精度数之间的相互转换,如下图所示:

  三、强制转换时间标识至数值

  既然我们已经知道了时间标识在内存中的存储方式,我们自然就可以通过强制转换函数分解出时间标识的两个组成部分,秒和秒的小数部分。

  因为时间标识占有8个字节的内存空间,并分成前后各4个字节,因此可以创建一个簇或者数组来表示它,下面的例子创建一个簇,包含3个元素。前两个元素表示秒的整数部分,第3个元素表示秒的小数部分。

  从上图可以看出,秒的整数部分非常明显。小数部分就不容易分辨出来了,这要非常了解浮点数的二进制表示方式才可以。

[1] [2]

关键字:LabVIEW  绝对时间  通用时间  相对时间

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2014/1104/article_9945.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
绝对时间
通用时间
相对时间

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved