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

合集下载

基于labview的时钟计时器

基于labview的时钟计时器

华侨大学厦门工学院Labview 课程设计报告题目:时钟计时器专业班级:11级通信工程一班学生:陈梓华指导教师:汪弦分数:年月日 0 0 (1) (1)2.总体设计 (2) (2) (3)3.程序描述 (4)3.1 子VI的调用 (4) (5) (5) (6)3.2.3 5个布尔灯的闪烁设置 (8) (8) (10)3.3.2 时间的时分秒转换 (11)4总结 (11)5参考资料 (12)LabVIEW是一种程序开发环境,由NI公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他电脑语言的显著区别是:其他电脑语言都是采用基于文本的语言产生代码,而LabVIEW 使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。

LabVIEW提供很多外观与传统仪器〔如示波器、万用表〕类似的控件,可用来方便地创建用户界面。

用户界面在LabVIEW中被称为前面板。

使用图标和连线,可以通过编程对前面板上的对象进行控制。

这就是图形化源代码,又称G代码。

LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

相对于传统的标准仪器来说,LabVIEW由于是基于软件的,所以提供了更大的灵活性。

通过LabVIEW开发的虚拟仪器是由用户而不是仪器生产商定义仪器功能的。

一台电脑、数采板卡和LabVIEW 的结合就能够变成一个可配置的虚拟仪器来完成用户设定的任务。

通过LabVIEW就可以用传统仪器几分之一的价格创建一个用户所需要的虚拟仪器。

当需要改变这个虚拟仪器的时候,只几分钟的时间通过LabVIEW修改就可以了。

为了便于使用,LabVIEW还集成了大量的函数库以及子程序来帮助完成绝大多数的编程任务。

在使用这些子函数的时候,可以忘掉传统编程语言中的令人头痛的指针操作、内存分配等编程问题。

除此之外,LabVIEW还包含了针对应用的数据采集〔DAQ〕、GPIB、串口、数据分析、数据显示、数据存储以及Internet 网络通信的函数库。

NI LabVIEW中的定时与同步

NI LabVIEW中的定时与同步

概览对于所有测试、控制和设计应用而言是至关重要的,在系统中必须作为重点进行考虑。

当需要完成协同动作时,定时和同步技术将事件以时间进行关联。

要让软件完成这些协同动作,程序必须以时间为基准来实现同步。

NI LabVIEW 中包含了定时结构,您可以在系统中用它来同步您的程序。

LabVIEW定时原理——纳秒级引擎和NI-TimeSyncbVIEW使用称为纳秒级引擎的软件组件在程序中记录时间。

引擎在后台运行,与操作系统交互管理时间。

在LabVIEW中有多个函数和结构,使用此引擎记录时间,如等待函数和定时循环结构。

纳秒级引擎可以使用本地实时时钟(RTC),也可以通过NI定时同步架构(NI-TimeSync)用外部参考时钟进行驱动(图1)。

图bVIEW纳秒级定时机制与NI-TimeSync协同为应用程序提供时钟。

LaVIEW 2010在NI-TimeSync中引入全新时钟。

NI-TimeSync 1.1中的IEEE1588插件提供了精度高达1 ms的同步参考时钟。

您可以在网络上配置多个仪器,使用同一个IEEE 1588参考时钟,让多个平台可以在标准的以太网网络上进行同步。

您还可以通过NI测量与自动化浏览器(MAX)工具配置设备使用软件1588精确时间协议(图2)。

图2.从MAX配置设备的时间同步源LabVIEW定时结构——定时循环定时循环是在可配置的定时源产生事件时执行的循环结构。

它可以使用多种定时源(后面的教程会有详细介绍)。

如果开发多速率处理、精确定时与同步、循环执行反馈、动态变化定时特性或多执行优先级的应用,可以使用定时循环。

除了定时循环的严密定时特性之外,定时结构还可以用于为多核编程分配处理器资源。

使用定时循环,您可以指定包括周期、优先级、期限、偏移量和延时等多个定时属性。

结合这些属性和丰富的定时源,无论需要怎样的定时方式,您都可以创建复杂的应用程序。

定时循环的定时源定时源控制定时结构的执行。

您可以从三类定时源中选择:内部定时源、软件触发或外部定时源。

labview计时器

labview计时器

labview计时器Wait(ms)内置函数的探讨(1)——基本功能12/22/20090 Comm ent(s)Wait(ms)内置函数,在LabVIEW开发环境下,选择程序框图中的函数选板,在编程〉定时〉中就可以找到该内置函数。

参见图1-1,右边是该内置函数的图标。

图1-1Wait(ms)内置函数在中⽂版的LabVIEW中被译为:等待(ms)。

1、等待(ms)内置函数的功能等待指定长度的毫秒数,并返回毫秒计时器的值。

等待时间指定要等待时间,以毫秒为单位。

函数的等待时间不超过0x7ffffff,即2147483647毫秒。

如需等待更长的时间,可再次执⾏函数。

将0连接到毫秒计时值输⼊,可迫使当前线程放弃对CPU的控制。

该函数作出异步系统调⽤,但是函数节点却是同步操作的。

所以,直到指定时间结束,函数才停⽌执⾏。

该内置函数在程序中通常被⽤来做定时器或延迟器使⽤。

它的输⼊端为所期待的定时数值(以ms为单位),它的输出返回毫秒计时器的值。

由于等待(ms)是⼀个LabVIEW的内置函数,所以我们根本⽆法了解其程序内部的执⾏的⽅式或运⾏⽅法。

但是我们可以通过不同的编程形式运⾏的结果来间接的认识和了解它。

先看下⾯的例⼦,参见图1-2:图1-2在图1-2中,我们为等待(ms)内置函数设定⼀个1000ms的定时值,程序运⾏后它的输出“毫秒计时值”则显⽰出⼀组⽆法确定的数据,并且每次程序运⾏后该输出值都是不⼀样的,但趋势是不断增加的。

这⾥显然是等待(ms)定时器的起始时间是⼀个不断改变的数值,这究竟是为什么呢?下⾯我们对图1-2所⽰的程序进⾏⼀下改动,看看改动后的运⾏结果。

图1-3(请注意:此时⽤等待下⼀个整倍数毫秒内置函数则不会得到同样的结果)图1-3的运⾏结果显⽰,此时我们可以获得与输⼊设定值⼀样的“毫秒计时值”。

很显然等待(ms)内置函数中包含了⼀个类似于“时间计数器”的内置函数,他们在某⼀时刻同步开始操作,这样我们就可以在等待(ms)的输出端获得稳定的“毫秒计时值”。

labview课程设计—连续时间系统的时域分析解读

labview课程设计—连续时间系统的时域分析解读

目录目录 (I)1.引言 (1)2.虚拟仪器开发软件Labview入门 (2)2.1 Labview介绍 (2)2.2 利用Labview编程完成习题设计 (2)3. 利用Labview实现连续时间系统的时域分析的设计 (19)3.1 连续时间系统的时域分析的基本原理 (19)3.2 连续时间系统的时域分析的编程设计及实现 (19)3.3运行结果及分析 (20)4.总结 (20)5.参考文献 (20)1.引言虚拟仪器(virtual instrument)是基于计算机的仪器。

计算机和仪器的密切结合是目前仪器发展的一个重要方向。

粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。

随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。

另一种方式是将仪器装入计算机。

以通用的计算机硬件及操作系统为依托,实现各种仪器功能。

虚拟仪器主要是指这种方式。

上面的框图反映了常见的虚拟仪器方案。

虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。

虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。

目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。

虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。

PC机出现以后,仪器级的计算机化成为可能,甚至在Microsof t公司的Windows 诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。

对虚拟仪器和LabVIEW [2]长期、系统、有效的研究开发使得该公司成为业界公认的权威。

目前LabVIEW 的最新版本为LabVIEW2011,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在1998 年的版本 5 中被初次引入。

使用LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。

LabVIEWReal-Time模块入门指南

LabVIEWReal-Time模块入门指南

LabVIEW Real-Time模块入门™指南本文档提供了帮助用户入门LabVIEW Real-Time模块的设计练习。

用户可通过一系列的练习检查、更改和部署实时应用程序,及了解编程实时操作系统的概念和实践。

目录重要概念 (2)安装和配置Real-Time模块 (2)安装Real-Time模块 (3)配置RT终端 (3)安装RT终端软件 (3)安装多CPU支持 (3)打开Real-Time项目 (4)查看RT终端的VI (5)初始化数据传输组件 (5)使用定时循环采集数据 (6)使用While循环传输网络数据 (6)关闭数据传输组件 (7)查看主机的VI (7)连接至网络数据流 (8)读取网络数据流 (9)断开网络数据流 (9)创建和部署应用程序 (9)配置RT终端的属性 (9)部署程序生成规范至RT终端 (10)调试RT终端VI和独立应用程序 (10)调试RT终端VI (10)调试独立的实时应用程序 (11)参考资料 (11)LabVIEW帮助 (11)LabVIEW Real-Time模块发行说明和升级说明 (12)重要概念下列重要概念为开始使用Real-Time模块的用户提供了必需的基础信息。

•Real-time (RT)应用程序-设计用于稳定性执行和精确定时的应用程序。

•确定性-描述应用程序响应外部事件的一贯性程度或在给定时间限制内执行操作的实时应用程序特性。

设计实时应用程序时,通常优先考虑最大化确定性。

•抖动-应用程序程序最快和最慢执行之间的时间差。

设计实时应用程序时,通常优先考虑最小化抖动。

•实时操作系统 (RTOS)-设计用于运行具有增强型确定性和降低型抖动的应用程序的操作系统。

通用操作系统(例如,Microsoft Windows)完成操作的时间是不可预期的。

相比较,RTOS中的每个操作均具有已知的最大执行时间。

通过设计用于RTOS的应用程序,用户可确保应用程序运行的确定性。

•RT终端-运行RTOS的控制器。

LABIVEW中的时间节点函数

LABIVEW中的时间节点函数

LABIVEW中的时间节点函数07电本0712020110 黄国营LABVIEW专门提供了时间类型的控件---时间标识(TIMESTAMP),时间控件是8.X的新增数据类型,内部用18位整数或者19位浮点数表示时间,以秒为单位,开始时间是1904年1月1日星期5 12:00 am(UTC)。

LABVIEW在函数面板中有几个时间相关的节点函数时间计数器----获得计算机启动以来的毫秒数等待(MS)-----线程休眠指定的毫秒数,让出控制权等待下一个整数倍毫秒----与等待类似,等待到当时间计数器的值是设定值的整数倍,可以保持循环间同步。

这几个函数我在LABVIEW的软件定时器中介绍过.今天主要探讨的是几个日期时间相关的函数节点1、获取日期时间(秒)---------取得当前的时间日期,返回一个时间标识2、日期时间转换成时间标识类型3、时间标识转换成日期时间簇LABVIEW有两种数据类型用来描述时间日期:时间标识和时间日期簇其中时间标识和DBL是等价的(精度稍微有些损失),二者之间可以直接转换,单位是秒。

反之,时间簇结构、DBL也可以转换成时间标识。

LABVIEW同时也提供了时间标识转换成字符串的节点,这样就可以特色制作自己的时间显示了使用时间格式代码指定格式,按照该格式将时间标识的值或数值显示为时间。

时间格式代码包括:%a(星期名缩写),%b(月份名缩写),%c(地区日期/时间),%d (日期),%H(时,24小时制),%I(时,12小时制),%m(月份),%M (分钟),%p(am/pm标识),%S(秒),%x(地区日期),%X(地区时间),%y(两位数年份),%Y(四位数年份),%u(小数秒,位精度)。

有关时间标识的一个非常重要的技巧是+ 、-运算符号的问题。

时间标识本质是浮点数,支持带单位的加减操作上图构造了10个元素的时间标识数组,时间间隔1分钟TIMESTAMP 精度测试。

labview之时间-转自陈老师博客

labview之时间-转自陈老师博客

LabVIEW深入探索之绝对时间、通用时间和相对时间2011-04-29 07:47加入收藏作为一种面向工程应用的编程语言,LV提供了非常丰富的时间操作函数。

8.X后又提出了新的有关时间的数据类型,时间标识(TIMESTAMP)。

时间标识早期通常翻译成“时间戳”,实际上是一种改进型的数值控件,从时间标识控件所在的控件选板就可以初步判断出,时间标识就是特殊的数值控件。

一、时间标识的内存映射要想真正了解一种数据类型,首要的问题是要搞清楚该数据类型在内存中或者文件中是如何存储的。

我们知道数值型控件可以选择控件所包含的数据类型,比如双精度浮点数、整型数、32位整型数、16位整型数等等。

时间标识控件是不允许选择它所包含的数据类型的,这说明时间标识所包含的数据类型是固定的。

从帮助文件中,我们可以找到时间标识在内存中的存储方式--映射。

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

后两个不带符号整数(64位二进制)表示小数秒部分。

LV利用16个字节(128位)表示时间信息,其中前8个字节(64位)由两个I32构成,表示从0时刻开始经历过的秒数。

后面8个字节为U64数据,表示秒的小数部分。

二、时间标识与双精度数之间的相互转换在时间标识出现以前,经常用双精度数表示从0时刻经历过的秒数。

我们知道双精度数所占的内存空间也是8个字节,与时间标识相同。

但是时间标识实际上是定点数,它的小数点位置是确定的,因此实际上双精度数表示时间与时间标识相比,不如时间标识精确。

采用数值转换函数就可以实现时间标识和双精度数之间的相互转换,如下图所示:三、强制转换时间标识至数值既然我们已经知道了时间标识在内存中的存储方式,我们自然就可以通过强制转换函数分解出时间标识的两个组成部分,秒和秒的小数部分。

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

(2021年整理)labview的介绍

(2021年整理)labview的介绍

(完整版)labview的介绍编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)labview的介绍)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)labview的介绍的全部内容。

(完整版)labview的介绍编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)labview的介绍这篇文档能够给您的工作和学习带来便利.同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力.本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为 <(完整版)labview的介绍> 这篇文档的全部内容。

虚拟仪器系统及其开发程序LabVIEW介绍引言虚拟仪器是将仪器装入计算机,通过计算机的开发软件来实现仪器的功能的一种仪器测试测量系统。

目前开发虚拟仪器的软件程序为LabVIEW,用户只需通过软件技术和相应数值算法,就能实时、直接地对测试数据进行各种分析与处理,透明地操作仪器硬件,方便地构建出模块化仪器.从目前虚拟仪器的发展方向和广泛应用来看,不久的将来,虚拟仪器将广泛应用在气象观测和气象科普中,因此有必要对该系统作一番介绍。

一、电子测量仪器的发展电子测量仪器发展至今,大体可分为四代:模拟仪器、数字化仪器、智能仪器和虚拟仪器。

第一代模拟仪器,如指针式万用表、晶体管电压表等。

第二代数字化仪器,这类仪器目前相当普及,如数字电压表、数字频率计等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LabVIEW 深入探索之绝对时间、通用时间和相对时间
加入收藏
2011-04-29 07:47

转发分享 人人网 开心网 新浪微博 搜狐博客 百度收藏 谷歌收藏 qq 书签 豆瓣 淘江湖 Facebook Twitter Digg Yahoo!Bookmarks
作为一种面向工程应用的编程语言,LV 提供了非常丰富的时间操作函数。

8.X 后又提出了 新的有关时间的数据类型,时间标识 (TIMESTAMP) 时间标识早期通常翻译成“时间戳”, 。

实际上是一种改进型的数值控件, 从时间标识控件所在的控件选板就可以初步判断出, 时间 标识就是特殊的数值控件。


一、时间标识的内存映射 要想真正了解一种数据类型, 首要的问题是要搞清楚该数据类型在内存中或者文件中是如何 存储的。

我们知道数值型控件可以选择控件所包含的数据类型, 比如双精度浮点数、 整型数、 32 位整型数、16 位整型数等等。

时间标识控件是不允许选择它所包含的数据类型的, 这说明时间标识所包含的数据类型是固 定的。

从帮助文件中,我们可以找到时间标识在内存中的存储方式--映射。




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

后两个不带符号整数(64 位二进制)表示小数秒部分。


LV 利用 16 个字节(128 位)表示时间信息,其中前 8 个字节(64 位)由两个 I32 构成, 表示从 0 时刻开始经历过的秒数。

后面 8 个字节为 U64 数据,表示秒的小数部分。

二、时间标识与双精度数之间的相互转换 在时间标识出现以前,经常用双精度数表示从 0 时刻经历过的秒数。

我们知道双精度数所 占的内存空间也是 8 个字节,与时间标识相同。

但是时间标识实际上是定点数,它的小数 点位置是确定的,因此实际上双精度数表示时间与时间标识相比,不如时间标识精确。

采用数值转换函数就可以实现时间标识和双精度数之间的相互转换,如下图所示:
三、强制转换时间标识至数值 既然我们已经知道了时间标识在内存中的存储方式, 我们自然就可以通过强制转换函数分解 出时间标识的两个组成部分,秒和秒的小数部分。

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

前两个元素表示秒的整数部分, 第 3 个元素表示秒的小数部分。




从上图可以看出,秒的整数部分非常明显。

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

小数部分虽然有 4 个字节 (64 位) 构成, 但是实际上只有前 8 位 (一个字节) 会发生变化, 这也说明了“获取时间日期(秒)”函数所能达到的最高精度是 1/256 秒。

小数部分的 HEX 进制 0X60 是如何对应 0.375 秒的那? 0X60 用二进制表示为:0110 0000,所以它表示的小数为: 0*0.5+1*0.25+1*0.125+。

=0.375 四、什么是 0 时刻 当我们从控件选板中建一个新的控件时, 控件此时的值为默认值。

数值型控件的默认值如果 没有重新设置,一般是 0。

时间标识作为特殊的数值控件,当我们新创建时,时间标识控件 的默认值是什么?
从上图可以看出,新创建的时间标识的默认值实际上也是 0.从控件上看,数值 0 对应的时 间为 0,日期不显示。

下面我们修改当前时间控件,把时间修改成 8 点零 1 秒。




从上图可以看出,LABVIEW 中的时间都是从 1904 年 1 月 1 日 8 点开始计算的,这个时 间就是 0 时刻。

我们计算时间时实际上计算的是从此刻开始经历的秒数。

经历过的秒数可 以是负数,表示此时计算的时间在 0 时刻之前。

回过头来再看看帮助文件是如何定义的: LabVIEW 将时间标识保存为一个含四个整数的簇,其中前两个带符号整数(64 位二进 制) 表示自 1904 年 1 月 1 日周五凌晨[01-01-1904 00:00:00]以来无时区影响的所 有秒数。

后两个不带符号整数(64 位二进制)表示小数秒部分。

帮助文件中定义的和我们图中演示的是不同的, 原因在于我们使用的时间是包括时区的, 世 界各地的所在的时区是不同的,因此定义的 0 时刻是无时区影响的。


无时区影响的时间日期,LABVIEW 中称作“通用时间”。

由于我们所使用的计算机操作系统 中的时间日期是包括时区的,所以只有非常特别的场合才会涉及到“通用时间”,绝大多数场 合谈到的都是“绝对时间”和“相对时间” 五、绝对时间和相对时间 数值控件、时间标识、格式化字符串、波形图、波形图表等控件均可以设置为时间格式,设 置为时间时要求我们选择“绝对时间”或者“相对时间”。

所以我们有必要搞清楚什么是“绝对 时间”和“相对时间”。

从 0 时刻开始计时的时间称作绝对时间,我们通常说的“系统时间和日期”指的就是绝对时 间。

“相对时间”在其它编程语言中,称作“时间跨度”,相对时间并不关注开始计时的时刻, 相对时间关注的是两个绝对时间的差值,比如秒数百米赛跑用时几秒,用的就是相对时间。

绝对时间可以用年、月、星期、日、时、分、秒、小数秒来表示,但是相对时间是用日、时、 分、秒、小数秒来表示的,这与我们日常的习惯是有很大区别的。

在日常生活中,我们经常说两年过去,几个月过去了,这样的说法实际上是不精确的。

因为 每年的天数是不固定的, 每个月的天数也是不固定的, 因此无法用年和月表示准确的相对时 间。




只有星期、天、时、分、秒是准确的,每小时为 3600 秒在任何情况下都是成立的,而年、 月与秒之间是无法直接转换的。













相关文档
最新文档