-基于Labview的多通道数据采集系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一节系统整体结构
系统的整体组成结构是测量目标经过传感器模块后转换成电信号,在由信号调理模块对信号做简单的调理工作,例如,scc-sg04全桥应变调整模块,scc-td02模块,scc-rtd01热电偶热电阻制约模块等,将调理好的信号传送到数据采集模块中进行数据采集,然后在用软件进行特定的处理。
在采集的过程中同时将数据保存到指定数据库里。
如图4-1多通道数据采集系统硬件结构图所示。
图4-1 多通道数据采集系统硬件结构图
第二节数据采集系统的硬件设计
一、PC机
传统仪器很多情况完成某些任务必须借助复杂的硬件电路,而由于计算机数据具备极强的信号处理能力,可以替代这些复杂的硬件电路,这便是虚拟仪器最大的特点。
数据采集系统能够正常运行的前提便是选择一个优良的计算机平台。
由于数据采集功能器件通常工作在工业领域中,往往伴随着强烈的振动,噪声,电源线的干扰和电磁干扰等。
为了保证记录仪正常的运行,设计系统时选定工业计算机。
考虑到计算机平台的可靠运行工业计算机通常采取了抗干扰措施。
另一方面的考虑是工业计算机通常具有很多类型的接口,这样有利于功能进一步的扩展。
二、传感器
传感器设备能接受到来自测量目标发来的信号,而且把接受到的讯息,通
过设定的变换比例将其改变成为电信号亦或其它形式,从而能够完成数据信号的处理、存储、显示、记录和控制等任务。
传感器是系统进行检测与控制的第一步。
三、信号调理
经过传感器的信号大多是要经过信号调理才可以被数据采集设备所接收,调理设备能够对信号进行放大、隔离、滤波、激励、线性化等处理。
由于不同类型的传感器各有不同的功能,除了考虑一些通用功能之外,还要依据不同传感器的性质和要求来实现特殊的信号调理功能。
信号调理电路的通用功能由如下几个方面:
(1)放大功能为了提高系统的分辨率以及降低噪声干扰,微弱信号必须要进行放大,从而使放大之后信号电压与模数转换的电压范围一致。
信号在经过传感器之后便直接进入信号调理模进行调理,这样就不易受到外部环境的影响,从而使得信噪比进一步的改善。
(2)隔离功能隔离是指为了避免直接的电连接,通过光线、交互电源或变压等方法,使得数据信息在系统之间进行传递。
使用隔离的原因:一是为了安全考虑;二是能够保证采集到的数据不会受到其它原因的影响。
(3)滤波滤波是为了保证测量的信号的纯洁性,滤去不需要的信号。
大部分的信号调理模块具有一个低通滤波器是用来过滤噪声。
通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。
(4)激励功能信号调理模块能够为某些传感器提供激励信号,而且很多信号调理模块都提供有电流源和电压源以便给传感器提供激励。
(5)线性化大部分的传感器是测量信号的线性和非线性响应的结合,为了使传感器误差补偿,对输出信号的线性化是必要的。
目前,该数据采集系统可以通过软件解决这个问题。
四、输入信号的类型
要知道信号采集到的数据集,这是因为信号的要求和系统性能的不同的测量是不同的,只有了解被测信号的性质,才可以准确地选择合适的采集系统。
一个任意的信号在时间上是一个物理量的变化。
在一般情况下,信号携带的信息是非常广泛的,如:状态,率,水平,形式,频率等。
根据信号运载信息的不同,可以将信号分为数字信号或模拟信号。
其中数字信号包括脉冲信号和开关信号两种类型。
模拟信号包括直流信号、时域信号、频域信号等。
(1)数字信号
第一类数字信号为开关量信号,如图4-2所示。
一个开关信号携带信息信
号的瞬时状态。
一个开关信号的电压若是处在0到0.8V之间,称其为逻辑低电平,若是2.0V到5.0V之间,称其为逻辑高电平。
图4-2 开关信号
第二类数字信号是脉冲信号,如图4-3所示。
脉冲信号是在某一时间,信号状态发生转变。
图4-3 脉冲信号
(2)模拟信号
模拟直流信号(直流)是一个模拟信号在静止或非常缓慢地发生改变,如图4-4所示。
图4-4 模拟直流信号
在一个给定的时间间隔内,直流信号取决于信息幅值。
直流信号常见的有速度,温度,应变,压力等。
只有在足够的精度条件下,采集系统才能准确的采集模拟直流信号。
时域信号携带的信息包括信号的层次和水平随时间的变化,如图4-5。
在
做一个模拟信号或波形的测量时,需要把重点放在波形特征上,如峰值,边坡等。
若果要对时域信号进行测量,需要确保在优良的时间序列且时间间隔合适的情况下进行采集。
图4-5 模拟时域信号
模拟频域信号与时域信号类似,但从频域信号中提取的信息是信号的频域内容,而不是波形的形状,也不是随时间变化的特性,如图4-6所示。
用于测量一个频域信号的系统必须有必要的分析功能,用于从信号中提取频域信息。
为了实现数字信号处理等,可以使用或专用DSP硬件的应用软件,快速有效地分析信号。
模拟频域信号种类较多,常见的有传输信号、地球物理信号、声音信号等。
图4-6 模拟频域信号
现实中的信号往往结合在一起,一个信号将推出各种信息,这样的信号可以使用几种不同的方法来定义和衡量,与不同类型的系统测量同一信号,才能从信号中取出需要的多种信息。
五、输入信号的连接方式
电压信号大致可以分为接地和浮式两种类型。
这里有一个对两种类型简短的描述。
(1)接地型信号
接地型信号就是把信号的一个连线端与系统地连接起来,系统地一般指大地或建筑物的地。
这样信号用的是系统地,便与数据采集卡连成了共地模式。
一个墙的接地端引脚是接地型最常见的例子,如信号发生器和电源等。
(2)浮动型信号
一个不与系统地连接的电压信号被称为浮动信号,浮动信号的每一个端口都与系统地相互独立。
变压器、热电偶、电池和隔离放大器等是比较常见的浮动信号的类型。
六、高速数据采集模块PXIe-6358
PXIe-63581是NI公司的高速数据采集模块,主要是由一个A/D转换器构成,虽然是多通道采集,实际上是分时工作的,该模块的主要性能有:(1)16路模拟信号输入通道,输入范围为-10V~+10V,采样率为250kS/s;
(2)24路数字I/O,数字触发;
(3)2个模拟输出,16位分辨率;
(4)2个32位定时计数器;
(5)NI-MCal校准支持;
(6)NI-DAQmx测试软件和硬件配置支持;
(7)NIST校准证书和多于70多种的信号调理模块选择。
基于以上原因,本设计选择了PXIe-6358数据采集模块。
第五章多通道数据采集系统软件设计
软件是虚拟仪器的重要组成部分。
设计一个虚拟仪器系统,在硬件平台确定之后,可以通过软件的多样设计,实现各种各样的仪器功能。
LabVIEW是一种清晰直观图形化的编程语言,结合前面板与流程图式的编程方法,成为了构建虚拟仪器系统的理想工具。
工程人员的流动模式的设计与数据流框图是一致,这样方便了工程人员的编程。
使用流程图的方法可以实现系统内部的自我复制,随时改变虚拟仪器的软件来满足自己所需要的功能。
使用LabVIEW设计虚拟仪器的方法相比传统的编程方式,可以提高4~10倍的效率。
同时,由于其模块化与递归方式,用户可以在很短的时间内构建、设计和更新自己的虚拟仪器系统。
第一节程序模块化设计概述
多通道数据采集系统的开发主要依靠软件程序的研发,在明确了系统设计
目标后,需要采用较为全面的程序开发方法,例如,模块化的设计思想,结构设计方法,多线程等。
一、程序设计的模块化原则
模块化的结构是程序系统设计的基本原则,任何一个相对较大的程序系统,都是由若干个功能相对独立的模块组成。
良好的程序系统应体现由上到下的控制方式,各种模块之间的控制方式表现为统帅与从属的关系。
统帅
图5-1 模块化结构
模块化的基本特征,包括信息提取和信息隐藏。
摘要模块实际数据和过程。
模块化的问题是抽象的最高水平,抽象的术语可以用来描述了面向问题的语言环境。
模块化的观念与精益求精的方法,就是把任务的术语与方案的术语结合在一起。
模块独立性可由两个定性的标准进行度量:即块内联系与块间联系,如图5-1所示。
块内联系是指一个模块其内部各个部分之间的联系。
一个模块的块内联系越大,模块独立性就会提高。
块间联系指的是各个模块彼此之间的信息传递,块间联系变小,那么模块之间的独立性也就会变高。
好的模块结构,块间联系应尽可能小,块内联系应尽可能大。
二、软件系统的模块化设计原则
为了保证系统的设计具有良好的可靠性,易扩展,易维护,易拆卸,软件系统应该遵循一个标准的设计原则,设计。
(1)自上到下逐步求精
在开始的时候,软件的设计通常不是所有的细节来解决问题,只能考虑全局性的问题,即设计解决问题的抽象算法策略。
然后对抽象算法做更精细的工作,进入下一层抽象。
在求精过程的当中,抽象概念都将被细节化。
(2)依据逻辑序列划分功能模块
①模块的分解:消除不同模块间重复的部分,提高模块的块内联系,降低块间的联系。
②模块的合并;
③模块的复制。
(3)基于逻辑函数确定模块之间的调用关系
模块之间的调用与被调用关系,取决于模块各自的逻辑功能,因而对模块的渐入进出没有加以限制的必要。
(4)模块的控制范围大于模块的作用范围
模块的作用范围是指模块内判定影响的范围。
只要某模块中含有依赖于某种判定操作,则该模块就处于该判定的作用范围之内。
(5)模块接口应简明
保持简洁的接口模块,是模块的设计必须考虑的问题。
减少模块间传递的信息量,使所传递的必要信息具有明确的逻辑含义才能保持模块接口的简明。
(6)模块应保持单入口性质
具有一端接口的模块便于人们理解。
副作用的减少,错误的发生率也会减少。
出口的模块可以有多种,但必须有一个清晰的逻辑意义。
(7)提高可扩展性的模块化结构,需要增加的中间判断水平
图5-2-a,模块A可以调用B,在以后扩充时还需要让A调用C如图5-2-b。
这样在扩展时,除增加C外,还需要修改A,这种修改很大情况下是困难的。
图5-2-c ,如果增加一个中间判断层模块F,以一个开关量Flag决定模块A需要调用的模块,这样对A的修改,仅局限于Flag的设置,就大大减少了工作量。
(a)(b)(c)(d)
图5-2 模块结构增加了判断水平
三、本设计的软件系统模块划分
本软件编程系统模块包括有系统管理,数据采集,数据保存,历史数据的查询等功能。
图5-3显示多通道数据采集模块的具体结构。
图5-3 多通道数据采集模块
第二节多线程技术
为了完成多通道数据采集系统的设计,软件部分要实现数据采集,数据分析和处理,数据存储和实时显示等功能。
在用户眼中,这些任务是同时进行的。
事实上,使用Windows操作系统的多线程机制,数据采集与存储可以同时进行,每个模块可以运行的有条不紊。
一、Windows的多线程机制
Windows是一个多任务操作系统,每个运行的程序对应着一个进程,而在一个进程内又可以有几个线程。
Windows系统的CPU操作分成许多小的时间片,根据每个进程和线程的优先级分配内部过程,使多个应用程序可以”和“操作。
在他们自己的时间执行相同的过程不同的线程,以避免时间冲突的可能性。
二、LabVIEW与多线程
多线程技术能够让多个独立的任务同时并发执行,这样极大地提高了程序的运行效率。
LabVIEW软件把线程间的通信和线程管理等复杂的操作封装了起来,因此用户即便是不用学习复杂的多线程编程就可以编写出多线程程序。
在LabVIEW软件中,图形化编程方式为开发多线程代码带来了极大的方便,用户在数据流的编程环境中,可以很容易地追踪到并行代码,例如,两个独立的圆形或子VI在两段代表可以同时执行的代码。
多线程的优点:
(1)极大地提高的CPU的利用率
(2)使得系统可靠性更高
(3)提高了在多处理器计算机上的执行速度
三、多线程技术在本设计中的应用
为了实现多通道数据采集系统中需要实现的采集、显示、查询、报警和系统其他操作的并行执行,本设计在程序设计时创建了两个工作线程:一个是数据采样工作线程,数据采集和存储功能的实现,一个是超越的系统线程报警等功能的范围的数据,负责在缓冲区定时磁盘数据。
当统工作时,这两个工作线程就会被创建执行。
两者不同的是,采样工作线程是循不间断的循环工作,只有退出程序才会停止;然而存储工作线程会在某一特定的时刻运行,比如当堆栈区满亦或程序执行结束的时候。
信号采集和数据存储是长时间的运行,这是由工业生产的实际情况确定
多线程技术的采用,使得实时数据采集系统和程序的其他功能,如数据显示,读取和存储在独立的时间上运行,解决了时间的问题,也就解决了他们之间的冲突问题,提高了数据采集系统的稳定性。
在循环内数据传输的范围是线程间的数据传输,能够由全局变量,局部变量,共享变量和队列以及其他方式来完成。
线程之间的同步即循环之间的同步,可以由同步技术来实现。
通过定时循环的方法将两个周期设置为不同的优先级。