1、数据采集与仪器驱动数据采集与仪器驱动第五章第五章 数据采集与仪器驱动数据采集与仪器驱动5.1 5.1 数据采集与控制系统构成数据采集与控制系统构成 5.2 5.2 数据采集数据采集VIVI的组织结构的组织结构 5.3 5.3 基于基于NINI的的DAQDAQ系统的实现系统的实现5.4 5.4 非非NINI的的DAQDAQ系统的实现系统的实现本章小结本章小结 5.1 5.1 数据采集、控制系统的构成数据采集、控制系统的构成采用基于PC 的数据采集(data acquisition,DAQ)、控制系统来完成实验室研究实验室研究和工业控制工业控制中的测控任务的方案配置是:工控机+数据采集/控制卡+V
2、B/VC/LabView 编程,即:数据采集数据采集/控制卡控制卡:完成一般测试仪器的数据采集和控制功能,工控机工控机系统系统:完成一般测试仪器的数据分析、计算、显示、输出等功能。数据采集控制系统的组成模拟信号的数字化处理数据采集的核心过程就是将连续的模拟信号转换成离散的数字信号采样点太多,会占用大量内存单元;采样点太少,会使模拟信号的某些信息被丢失,出现失真现象数据采集卡数据采集卡 数据采集卡的组成数据采集卡的组成:多路开关多路开关:将各路信号轮流切换到放大器的输入端,实现多参数多路信号的分时采集。放大器放大器:将前一级多路开关切换进入待采集信号放大(或衰减)至采样环节的量程范围内。通常实际
3、系统中放大器为增益可调的放大器,设计者可根据输入信号不同的幅值选择不同的增益倍数。采样采样/保持器保持器:取出待测信号在某一瞬时的值(即实现信号的时间离散化),并在A/D转换过程中保持信号不变。如被测信号变化很缓慢可不用采样/保持器。A/D转换器:输入的模拟量转化为数字量输出,并完成信号幅值的量化。随着电子技术的发展,目前通常将采样/保持器同A/D转换器集成在一块芯片上。以上四个部分都处在PC计算机的前向通道前向通道,完成对信号数据的采集、放大及模/数转换任务。需要注意的两个问题1 1、是否使用、是否使用BufferBuffer?2 2、是否使用外触发启动、停止或同步操作?、是否使用外触发启动
4、、停止或同步操作?缓冲(缓冲(BuffersBuffers):):缓冲指的是PC 内存的一个区域(不是数 据采集卡上的FIFO 缓冲),它用来临时存放数据。使用使用Buffer I/OBuffer I/O的情况的情况:需要采集或产生许多样本,其速率超过了实际显示、存储到硬件,或实时分析的速度。需要连续采集或产生AC 数据(10 样本秒),并且要同时分析或显示某些数据。采样周期必须准确、均匀地通过数据样本。不使用Buffer I/O的情况:数据组小,如每秒只从两个通道之一采集一个数据点。需要缩减存储器的开支。触发(触发(TriggeringTriggering):触发涉及初始化、终止或同步采集事
5、件的任何方法。软件触发:可以直接用软件,例如使用布尔面板控制去启动/停止数据采集。硬件触发:让板卡上的电路管理触发器,控制采集事件的时间分配,有很高的精确度。下列情况使用软件触发:用户需要对所有采集操作有明确的控制。事件定时不需要非常准确。下列情况使用硬件触发下列情况使用硬件触发:采集事件定时需要非常准确。用户需要削减软件开支。采集事件需要与外部装置同步。输入信号类型 不同信号的测量对采集系统的要求是不同的。输入信号的种类:信号所运载信息很广泛的,比如:状态状态(state)、速率速率(rate)、电平电平(level)、形状形状(shape)、频率频率成分(frequency content
6、)。根据信号运载信息方式的不同,可以将信号分为模拟或数字信号。数字数字(二进制二进制)信号:信号:开关信号、脉冲信号。模拟信号:模拟信号:直流、时域、频域信号。4.3掌握当天的生产动态、设备运行情况,及时解决生产中的问题。(3)如果以文字表示的数值与以数字表示的数值不一致,以文字为准修正数字。5、对推荐上重要岗位和基层领导岗位的优秀青年,须具备大学以上学历;18.3 如果买方没有按照合同规定的时间付款,每延误一周(一周按七天计算,不足七天按一周计算)的赔偿费按迟付金额的千分之五(0.5%)计收,本款赔偿费不超过迟付金额的百分之五(5%)。5.6与储气井连接的管道安装,必须在储气井安装就位经注水
7、沉降稳定后进行。4.2.9本企业的安全生产责任制和安全生产规章的内容;服务人员要学会积极正面地去承受,不要用负面去思考,不要一直讨厌顾客,要感谢顾客的抱怨会帮助提升服务的品质,把顾客看成导师。有了正确的心态,再熟练地运用一定的技巧,面对抱怨的时候就不会显得惶恐不安了。中国联通在推出了短消息业务以后,有些用户觉得只看到屏幕上的文字进行沟通不方便,希望能够听到声音。于是,中国联通又推出了短音讯服务。“看短信不如听短信,拨10158短信听”。这就是创新产品,产品的多元化满足了不同顾客的需求。增压前的天然气管道应选用无缝不锈钢管,并应符合现行国家标准输送流体用无缝钢管GB 8163的有关规定。增压后的
8、天然气管道应选用高压无缝钢管,并应符合现行国家标准高压锅炉用无缝钢管GB 5310的有关规定。【自检】1 1、数字信号、数字信号开关信开关信:信号运载的信息与信号的瞬间状态有关。脉冲信号脉冲信号:信号包括一系列的状态转换,信息就包含在状态转化发生的数目、转换速率、脉冲宽度。2 2、模拟信号、模拟信号模拟直流信号模拟直流信号:静止的或变化非常缓慢的模拟信号。直流信号最重要的信息是幅度幅度.常见的直流信号有温度、流速、压力、应变等采集系统在采集模拟直流信号时,需要有足够的精度足够的精度以正确测量信号电平,由于直流信号变化缓慢,用软件计时就够了,不需要使用硬件计时。模拟时域信号模拟时域信号 模拟时域
9、信号的运载信息:电平随时间的变化(波形形状的特性,如斜度、峰值等),比如心脏跳动信号、视频信号。测量时域信号的采集系统包括:一个A AD D转换器转换器:AD 的分辨率要足够高,保证采集数据的精度,带宽要足够高,用于高速率采样;一个采样时钟电路采样时钟电路:精确的采样时钟,用于以精确的时间间隔采样;一个触发器触发器:触发器使测量在恰当的时间开始。模拟频域信号模拟频域信号 模拟频域信号与时域信号类似,然而,从频域信号中提取的信息是基于信号的频域内容,而不是波形随时间变化的特性。比如声音信号、地球物理信号、传输信号等。用于测量一个频域信号的系统必须有一个A AD D、一个简单时钟简单时钟和一个用于
10、精确精确捕捉波形的触发器波形的触发器。系统必须有必要的分析功能,用于从信号中提取频域信息。为了实现这样的数字信号处理,可以使用应用软件或特殊的DSP硬件来迅速而有效地分析信号。信号连接方式1 1、输入信号的参考点、输入信号的参考点:接地信号、浮动信号接地信号接地信号:输入信号的一端直接接地,它的参考点是系统地(如建筑物的地或大地);最常见的接地信号是通过电源插座接入的设备。浮动信号浮动信号:输入信号是不连接到建筑物地等绝对参考点的电压信号,浮动信号源常见的有:电池及其供电设备、热电偶、变压器等设备。2、差分测量系统输入信号的正负极分别接入两个通道,所有输入信号各自有自己的参考点。3、参考地单端
11、测量系统(RSE)用于测试浮动输入信号。被测信号一端接模拟输入通道,另一端(信号参考点)与系统地AIGND连接。4 4、无参考地单端测量系统、无参考地单端测量系统(NRSE)(NRSE)它的一端接模拟输入通道,另一端接一个公用参考端AISENSE,这个参考端电压不一定于测量系统地AIGND相等。数据采集卡的基本性能指标数据采集卡的主要性能指标:1、模拟信号输入部分、模拟信号输入部分 模拟输入通道数。模拟输入通道数。该参数表明数据采集卡所能够采集的最多的信号路数。信号的输入方式。信号的输入方式。一般待采集信号的输入方式有:l 单端输入:即信号的其中一个端子接地。l 差动输入:即信号两端均浮地。l
12、 单极性:信号幅值范围为0,A,A为信号最大幅值。l 双极性:信号幅值范围为A,A。模拟信号的输入范围模拟信号的输入范围(量程量程):):一般根据信号输入特性的不同(单极性输入还是双极性输入)有不同的输入范围。如对单极性输入,典型值为010 V,对双极性输入,典型值为5 V5 V。放大器增益放大器增益:模拟输入阻抗模拟输入阻抗:采集卡固有参数,一般不由用户设置。混叠干扰图中采样频率500Hz,5个正弦波的频率分别为100Hz,200Hz,300Hz,375Hz和400 Hz。因为100Hz,200Hz的信号频率小于fs/2,可以由离散信号还原出原始的正弦波连续信号。而300Hz,375Hz和4
13、00Hz的信号频率都大于fs/2,故离散信号重构原信号时形成了频率不同于原信号频率的信号,即混叠干扰采样速率采样速率:Nffmaxs)107(式中N为多通道数据采集系统的通道数。2023-1-15位数位数b b:A/D转换器输出二进制数的位数。当输入电压由U=0增至满量程值U=UH时,一个八位(b8)A/D的数字输出由八个“0”变为八个“1”,共计变化2b个状态,故A/D转换器产生一个最低有效位数字量的输出改变量,相应的输入量Umin=1 LSB=q(量化值)可由下式计算:bUq2LSB 1H分辨率分辨率:指数据采集卡可分辨的输入信号最小变化量。采集卡基本参数以NI公司的PCI-6071E多功
14、能采集卡为例,介绍采集卡的一般参数:模拟输入:64路单端/32路双端,输入范围:10V分辨率:12位 采样频率:最高1.25M模拟输出:2路,12位,1M,输出范围:10V 数字I/O:8路 计数器:2路,24位,基准时钟20MHz或100KHz采取定期或随时方式,由总经理或5S推行委员会进行督导与评估,其执行方式有红牌检查、查检表等,维持5S新鲜的感觉,通过对优秀单位的表扬、5S赛活动5S活动停滞、僵化。例如,导购人员在向顾客展示衣服的过程中,他可以抖着衣服说这件衣服质量很好,但是抖动衣服的动作要细腻。再如,推销人员卖汽车时,要用细致、优雅的动作向客户充分展示车子的线条,内部的装饰和材料,以
15、及车子整体造型的优越之处。23.投标文件的密封与标记5.2熟练掌握CNG工艺程序及充装岗位安全操作规程,经培训合格后,持证上岗。(3)库存报表:包括商品库存明细表、商品库存汇总表、商品库存报警表、商品库存分析表、商品进销存台帐、商品收发汇总表。(1)采购报表:包括采购订单汇总表、采购订单明细表、采购开单汇总表、采购开单明细表、商品进价分析表、商品采购流水帐;21 不可抗力利用电视品牌,终端展示材料,进行普遍宣传,使产品信息迅速传播;1、推荐优秀青年人才上岗工作要积极争取党委的领导和有关部门的配合,每年至少向党委汇报一次;在人力资源管理方面,海尔集团主张为每个海尔人提供公平竞争的机会和环境,尽量
16、避免“伯乐”相马过程中的主观局限性和片面性。在工作过程中让员工成长,而不是直接找到最好员工。因为最好的员工可遇不可求,但企业有能力在整个组织过程中,让有潜能的员工成长为人才。这样,员工的价值就体现在依靠自我的努力,快速成长,得到更好的升迁机会。主要强调的是,这一过程中组织公平和公开原则是非常重要的,人力资源的考核制度也必须严格、统一、公正。37.确定中标人5.2.3 统计主管部门负责召集有关部门,对各部门提交的方案进行评审、认可;6、气、电焊作业必须到公安局消防处办理临时动火作业许可证,施工前经管理处保安员负责检查符合防火规定后方可施工,电工、气电焊工必须持证操作。数据采集卡的参数设置要使数据
17、采集卡正确地实现数据采集的功能,必须根据实际测量的需要对一些参数进行正确设置。待设置的参数主要有数据采集卡的设备号、地址码,此外,还有如下设置。1 1、模拟信号输入部分、模拟信号输入部分 设置信号的输入方式。单端输入还是双端输入,单极性信号还是双极性信号等。选择增益。根据输入信号幅值范围和分辨率的要求进行增益选择。选择量程。根据输入信号是单极性还是双极性,相应选择合适的量程。2、A/D转换部分 设定信号输入通道号。设定采样点数。设定采样速率。采样结果的输出方式。采样结果可放在一个数组中,也可放在某一缓冲区中。采样触发方式。一般分外触发、定时触发、软件触发等3 3、D/AD/A转换部分转换部分
18、模拟信号的输出通道号。模拟信号的输出幅值。此参数应设置在标称满量程范围内。刷新速率。该参数决定所产生的模拟信号波形的“光滑度”。最快刷新速率的倒数即为响应时间。5.2 Data AcquisitionVI5.2 Data AcquisitionVI的组织的组织结构 在LabVIEW平台,用软件驱动I/O接口数据采集卡,实现数据采集分以下两种情况:LabVIEWLabVIEW支持的数据采集卡支持的数据采集卡:如NI公司自行生产的各类数据采集卡,可利用LabVIEW自带的驱动函数驱动。设计者只需正确设置输入参数就可实现数据采集的任务,而不需编写代码程序。LabVIEWLabVIEW不支持的数据采集
19、卡不支持的数据采集卡:可利用LabVIEW的代码嵌入功能(CIN模块)等来实现采集卡的软件驱动。LabVIEW LabVIEW 数据采集模块的分类数据采集模块的分类 LabVIEW的功能模板(Functions Palette)提供了Data Acquisition驱动数据采集卡DAQ子模板,该子模板提供了六个子模块,如图所示。Data Acquisition子模板上的图标及名称A/D部分Easy I/O VIsUtility VIsAdvanced VIsIntermediate VIs易用函数中级函数高级函数实用函数(1 1)易用函数)易用函数1波形输入AI Acquire Wavefor
20、m.vi图标及端口参数(单通道单点采样)2 多波形图标及其输入、输出端口参数(2 2)中级函数)中级函数1.AI Config.vi图标及其输入、输出端口参数2.AI Start.vi图标及其输入、输出端口参数3.AI Read.vi 图标及其输入、输出端口参数4.AI Clear.vi图标及其输入、输出端口参数LabVIEW中的模拟输入这家医院的每部电梯里都有相应的指示地图,这种服务让病人对医院的满意度大为提高。2.6检查气瓶原始标示是否符合标准和规程的规定,钢印字迹是否清晰可辩,否则不予充装使用。2.3对首次充装或检验后首次投入使用的天然气气瓶,应该用天然气对瓶内气体进行抽真空置换后才可以
21、正常使用。9.3 未成交人的磋商保证金,将在成交通知书发出后五个工作日内全额退还(不退现金)。4.3气瓶要专瓶专用。不要擅自改装它类气体,瓶内气体不得用尽,必须留有余压。一般说来,在建立植根式服务文化的过程中,可以采用的技术有以下五项:培养组织气质、利用会议与激励建立服务共识、提升服务者的心理素质、建立贴心服务的质量标准,以及定期对服务体系进行检测。(2)提供货物组装和维修所需的专用工具和辅助材料;重庆机电控股(集团)公司推荐优秀青年作为这家医院在病人挂号的过程采用了类似银行编号等待的方式,避免了相互拥挤的状况。在医院里还设有销售咖啡和点心的地方,提供茶几椅子以便休息;还设有画廊,让病人和病人
22、的家属能够放松心情。连续模拟输入连续模拟输入连续模拟输入需要注意注意,程序读取数据的速度要不慢于设备往缓冲区中存放数据的速度,这样才能保证连续运行时,缓冲区中的数据不会溢出。可以通过调节以下3个参数来达到上述要求:buffer size(缓存的大小)scan rate(采样速率)number of scans to read at a time(每次读取的样本数)连续采集的程序模型为:连续模拟输入程序实例LabVIEW中的模拟输出连续模拟输出有两种形式的连续模拟输出:第一种就是在模拟输出之前,将数字信号写入缓冲区中,然后设备连续不断地将缓冲区中的数据通过DAC重复输出。这种连续模出执行效率很高
23、,但是需要写入的数字信号必须是整周期的,不然输出模拟信号将会不连续,在使用上不够灵活。第二种方式:在设备将缓冲区中数据输出的同时,不断地将数字信号写入缓冲区中,这种方式在编程上比较复杂,但是灵活性比较高,只要保证这一次写入缓冲区的数字信号和上次是连续的就行,不需要每次写入的信号是整周期的。LabVIEW中的数字I/O一般情况下,数字I/O按照TTL逻辑电平设计,其逻辑低电平在0到0.7V之间,高电平在3.4到5.0V之间;在硬件设备上,多路路(Line)数字I/O组成一组后被称为端口端口(Port)。一个端口由多少个数字通路组成是依据其设备而定的,在多数情况下8个数字通路组成一个端口;在Lab
24、VIEW中对数字I/O的操作非常简单,可以对整个端口进行操作,也可以对端口中的一路或多路同时进行操作。5.3 基于的NI DAQ系统的实现 I/O接口设备LabPC1200型数据采集卡的软件驱动 连续信号的采集与显示演示仪。1功能描述 该信号的采集演示仪可以采集和显示一路信号,参数为:频率范围:010 kHz。幅值范围:0.16 V。采用LabPC1200型卡,信号由第0通道输入。2设计步骤 在编写VI之前,需在Measurement&Automation驱动软件下,进行相关参数的设置。设置完毕后,进入LabVIEW进行前面板和流程图的设计。1)参数设置AI设置项:因为输入信号幅值在0.16
25、V,故选模拟信号输入方式为有参考地单端输入;量程为010 V。(a)前面板连续信号的采集与显示演示仪连续信号的采集与显示演示仪(b)流程图几种简单的测试程序流程模型 程序逻辑简单,容易设计和理解1、顺序测试程序的模型 2、数据采集和后续工作并行执行的模型 数据采集的速度一般来说高于处理和存储的速度。当新数据被采集来,上次的数据可能还没处理完呢。所以可以先把每次采集到的来不及处理的数据放在缓存里。3、并行执行每一任务的模型 所有的任务同时运行:采集新的数据、处理上一次采到的数据,显示保存上一次处理好的数据。在这个模型下,要注意第一次循环运行时处理的数据,和循环头两次运行显示存储的数据是无效的,实
26、际循环终止条件式也要考虑到,采集的数据再两次循环后才被保存下来。5.4使用NI DAQ设备和LabVIEW构造PID控制系统PID是根据系统误差利用比例/微分/积分计算出控制量进行控制。1.PID1.PID控制系统结构图控制系统结构图 2.PID控制算法 P P比例控制器比例控制器:输出仅与误差成正比,即u(t)=Kp(t),对误差的反应很快,但总是存在一个稳态误差。提高Kp值使稳态误差减小,还能够增加系统的快速性;但使系统的稳定程度变差。I I积分控制器积分控制器:输出与误差信号的积分成正比,只要误差还存在,就会不断输出,直到等于零,以达到消除稳态误差的目的。但积分必将影响系统的快速动态性能
27、,对于一些系统会出现超调过大的现象。D D微分控制器微分控制器:输出与误差信号的变化率成正比,能预见误差的变化趋势,产生超前的控制作用。它仅对动态过程作用,通常不单独使用。而且微分控制对噪声干扰有放大作用,过强地调节微分项对系统抗干扰能力不利。3.LabVIEW中使用的PID控制工具包 安装LabVIEW PID Control Tookit,即可在Functions Palette上选择Control Design&Simulation,该工具包由10个VI组成。PID.vi 利用PID.vi即可搭建一个简单的PID控制器,在该vi的输入端给入PID的3个参数值(PID gains),系统反
28、馈值(process variable),实际期望值(setpoint)以及微分时间(dt),便能得到需要的输出值(output)。该vi还能控制输出值的范围。PID Advanced.viPID Advanced.vi:为专家PID设计的vi,增加了一些高级的功能,如可以设定期望值的范围(setpoint range),手动控制(manual control),线性化(linearity)等功能。PID Autotuning.viPID Autotuning.vi:为需要自整定的PID系统设计的,在给出一些基本要求后,具有自整定的功能 PID PID Lead/Lag.viLead/Lag.
29、vi:可以对PID控制器前端由系统反馈来的输入信号做动态补偿。PID Setpoint Profile.viPID Setpoint Profile.vi:可以在期望值间断性变化时使其变得平滑。PID Control Input Filter.vi:一个五阶的低通滤波器,放在PID控制器的process variable前端,可以滤去小于采样率十分之一的输入值。PID Gain Schedule.vi:写入几组增益参数,并给出条件,执行时当输入信号达到条件,便使用对应的一组参数给入到PID控制器的PID Gains上。PID Output Limiter.vi:对PID控制器输出信号的变化速率
30、进行控制,以保证外部接受控制信号部件的安全。PID EGU to%.vi和和PID%to EGU.vi:对实际数值和其在设定工程单元范围内占的百分比进行转换。5.5 5.5 非非NINI公司的公司的DAQDAQ系统的实现系统的实现1、直接调用LabVIEW 驱动操作图标 2、直接调用LabVIEW 的端口操作图标;3、调用动态连接库;4、利用CIN 图标调用C 语言驱动程序;直接调用LabVIEW 驱动操作图标(研华)直接调用LabVIEW 的端口In Port/Out Port.Vi LabVIEW中有两个可直接访问底层设备的图标,即In Port.vi 和Out Port.vi。分别完成从
31、设备的物理地址直接读取和输出数据的功能。In Port.vi、Out Port.vi图标端口参数设置1.In Port.vi图标及其端口参数设置该函数完成从指定地址读取一个字节或一个字的操作,其输入、输出口参数及其含义为:输入端口:register address:U32型。数据读入端口的物理地址。read a byte or a word:Boolean型。当该值为True时,读取一个字;当该值为False时,读取一个字节。默认值为False。输出端口:value:U16型。该值是从指定端口读取的字(或字节)。Out Port.vi图标及其端口参数设置该函数完成向指定地址写入一个字或字节的操
32、作。其输入端口参数及其含义为:CLF(Call Library Function Node)调用库函数节点 Labview可以与多种类的编程语言进行混合开发,通过Labview 中两类外部接口节点调用外部代码.调用库函数节点:调用外部动态 链接库DLL文件中的函数;代码接口节点:调用外部c语言代码,CLF节点最为常用,配合其他C语言编译器基本上可以取代CIN节点动态链接库DLL可以理解为一种存储函数、变量或类的仓库,供调用者使用。它具有这样的特点:动态链接库不用被包含在调用程序体内,而是在执行时根据需要动态地加载或卸 载,这样不仅可以减少调用程序文件的体积,还可以增强调用的灵活性,并节省内 存
33、占用量。DLL文件的创建与具体编程语言和编译器无关,可以便用VC、VB 也可以使用Labview编写DLL文件,只要遵守统一的DLL接口和调 用规范,就可正常使用。动态链接库DLL的特点使用CLF节点调用windows API函数实例设计步骤:设计步骤:(1 1)新建一个空.vi并保存为“CLPAPI函数vi”,向框图内拖入一个CLF节点,在其右键菜单中选择“配置”项,弹出配置对话框;(2)单击对话框“函数”页面中“库名或路径”框右侧的打开文件按钮,选挥“C:WINDOWSsystem32user32d11”文件,LabVIEW会自动搜出该DLL中所包含的所有函数,只需在“函数名”下拉列表今选
34、择即可。本例中选择名为“MessageBoxA,的函数,用于弹出一个标标准的Windows消息框。右侧的“线程”单选框选为“在UI线程中运行,“调用规范”单选框选为”stdcall(WINAPI)”。(3)对话框“参数”页面用于配置函数参数,需根据所调用函数的原型来进行配置,由MSDN可知:MessageBoxA 函数的原型:Int MessageBoxA (HWND hwnd,LpcTSTR lptext,LpcTsTR lpcaption,Uint wtype)其各个参数具体含义为 hwnd:创建消息框的父窗口的句柄,若为NuLL则没有父窗口1pText:消息框牛的字符串1pcaPtton
35、:消息框标题Mtype:用于指定消息框所显示图标和按钮的控制参数。(使用该页面中的右侧下拉列表和左侧的各个按钮,将返回值和各个参数类型设置为:Reture type:类型数值,数据类型无符号32位整型 hwnd:类型数值,数据类型无符号32拉整型,传递值 1PText:类型字符串,数据类型C字符串指针 1pcaption:类型字符串,数据类型字符串指针 uType:类型数值,数据类型无符号32位整型,传递值其他选项均使用默认值。(4)对话框“回调”页面用于指定调用方式,在此使用默认配置即可。全部配置好之后单击确定”按钮进行确认,可以看到CLF节点增添了一些连接端子表示新添的参数,添加适当的常量
36、或变量连接至各个参数。CIN(Code Interface Node)CINCIN的设计步骤:的设计步骤:(1)确定CIN图标的输入、输出参数个数和数据类型。(2)生成C源代码编辑格式文件。(3)在编辑格式文件中的规定位置(/*Enter Your Code Here*/)填写实现某种测量功能的C源代码,生成最终的C源代码文件。(4)在LabVIEW指定的环境下编译步骤(3)中生成的C源代码文件,并生成可执行文件。(5)调用CIN的功能菜单将生成的可执行文件载入CIN图标。这样就基本形成了一个具备某种功能的CIN图标。CIN图标的调用及参数设置 初始化时的CIN图标如图所示。CIN图标中表格状
37、图案的每一行代表一个参数,左侧为参数的输入值,右侧为CIN运行后该参数的返回值。参数1输入口参数1返回值的输出口有些情况下,有的参数只能作为输出值,而没有对应的输入。如实现ca+b运算时,c是CIN的运行结果,它只能是输出值,没有对应的输入值,这时应当将其对应的输入口置为无效。方法是,把鼠标放在相应的输入口,用鼠标右击CIN图标,弹出快捷菜单,从中选择Only Output项,则该输入口变暗,表明其无效无效a返回值b返回值CIN输出b输入值a输入值生成C源代码编辑格式文件(*.C文件)代码框架 CIN图标的快捷菜单中选择Create.C File项,会弹出一个文件存储对话框,键入文件名 则生成
38、LabVIEW的C语言代码框架;然后用任意一种文本编辑器将它打开。该C文件的代码框架为*CIN source file */注释#include extcode.h CIN MgErr CINRun(float64*a,float64*b,float64*c);函数声明 CIN MgErr CINRun(float64*a,float64*b,float64*c)函数体 /*ENTER YOUR CODE HERE*/填入C语言源代码 return noErr;*.C文件源代码的编译 下面介绍在VC+集成环境下编译*.C源代码的具体步骤。(1)新建一个DLL工程文件,命名为Add。打开VC+开
39、发平台,执行FileNew 操作。进行选项:win32 Dynamic Link Library。添加工程文件名:Add。location:填写工程文件的存放路径。也可以采用其默认路径D:Microsoft Visual StudioMyProjects。最后形成工程文件add.cpp。(2)向工程文件中添加cin.obj、labview.lib、lvsb.lib、lvsbmain.def四个文件。执行ProjectAdd to ProjectFiles操作,向工程文件添加上述四个文件。这四个文件在LabVIEW安装路径下的cintools文件夹下的win32子文件夹中。(3)向工程文件中添加
40、上面的*.C源代码文件add.c。添加方法同(2)。(4)*.C源代码文件编译前的设置。由菜单项ProjectSetting打开设置对话框,逐项设置。S e t t i n g f o r 选 项 设 置。A l l Configuration。C/C+标签页设置。用鼠标左击C/C+标签页按钮,逐项设置。l Category:由下拉菜单选择为Preprocessor。Additional include directories:添加LabVIEW的cintools文件夹的路径。假设LabVIEW安装路径为d:LabVIEW,则在Additional include directories处添加
41、路径d:LabVIEWcintools。l Category:由下拉菜单另选为Code Generation。Strict member alignment:设置为1 Byte。Use run-time library:设置为Multithreaded DLL。Custom Build标签页设置。用鼠标左击Custom Build标签页,逐项设置。l Commands:输入命令行如下:d:labviewcintoolswin32lvsbutil$(TargetName)d“$(WkspDir)$(OurDir)”(假 设 L a b V I E W 的 安 装 路 径 为:d:labview。
42、)l Outputs:输入命令行如下:$(OutDir)$(TargetName).lsb(5)添加C源代码程序。可在Workspace wizard窗口中双击add.c,打开源文件添加C源代码。如果已经添加过,则继续下一步。(6)编译*.C源代码文件。在主菜单Build下选择Compile add.c选项,则进行add.c程序的编译,如有语法等错误,则给出错误提示,按提示修改程序,重新编译。重复这一过程,直至没有错误。(7)生成可执行文件。在主菜单Build下选择Build Add.dll选项,即生成可执行文件Add.lsb,同时生成如Add.dll等所需的全部文件 1.装载可执行文件到CI
43、N图标 回到LabVIEW流程图窗口,窗口中CIN图标的快捷菜单如左图所示。从中选择Load Code Resource项,即弹出一个Choose a code resource file对话框,如右图所示。按照Add.工程文件存入的路径寻找Debug目录下的Add.lsb文件,然后点击“打开”按钮,于是Add.lsb文件就装入CIN图标中。至此,就完成了CIN的全部设计过程,可运行程序。应用举例用CIN图标实现对HY1232数据采集卡的驱动 1232数据采集卡简介数据采集卡简介 HY1232是一种IBMPC XT/AT总线兼容的数据采集卡,其主要性能指标如下:32路单端模拟输入通道;A/D分
44、辨率为12 bit;1路模拟输出通道;D/A分辨率为12 bit;D/A输出上电清零;模拟输入电压范围:5 V;模拟输出电压范围:5 V或0+5 V;软件触发方式;数据传输方式采用软件查询方式和中断方式。HY1232数据采集卡工作原理 对于HY1232数据采集卡,在选通某模拟信号输入通道的同时即启动了该路的A/D转换。当A/D转换完成时,采集卡上的转换完成位寄存器的最高位(D7)被置为“1”。用软件查询方式查询该寄存器的D7位,当查询到该位为“1”时,即表明采样已结束,可将12 bit的数据读入计算机内存中。如果采用中断方式,则在A/D转换完成后,采集卡会自动向计算机发出中断请求信号。在中断服
45、务程序内,将12 bit数据读入计算机内存。HY1232数据采集卡中采用的是12位A/D转换器,转换完毕的12位二进制数中的低八位AD7、AD6AD1、AD0存放在低八位缓冲寄存器中,其高四位AD11、AD10、AD9、AD8存放在高四位缓冲寄存器中。HY1232数据采集卡有32路单端模拟输入通道,由八位输入通道选择寄存器低六位(C4、C3、C2、C1、C0)的二进制状态字选择被测信号的输入通道。例如,选择第4通道输入信号的二进制状态字为00100。表51列入了各寄存器的读/写操作功能与占用地址。表5 51 HY1 HY12321232数据采集卡板基地址分配与寄存器读/写操作功能采集卡参数设置
46、 (1)确定采集卡的板基地址。板基地址是CPU分配给采集卡内存空间的首地址。首地址后面的内存空间供采集卡内部寄存器分配使用。HY1232数据采集卡板基地址的可选范围为:200H3FFH(5121023)。通常选0 x280,即280H(640)。(2)确定信号的输入方式。选择设置信号是单端输入还是双端输入,单极性信号还是双极性信号。HY1232数据采集卡只有32路单端输入一种方式,故不需要用户来设置。(3)设置信号的输入范围。根据输入信号幅值范围和分辨率的要求进行选择。HY1232数据采集卡信号输入范围不可选,只能为5 V+5 V,且内部的放大器增益固定为1。(4)确定采样触发方式。一般分外触
47、发、定时触发、软件触发等几种方式。但对于HY1232采集卡,只有软件触发一种方式,即在往输入通道寄存器写入所选通道号的同时即触发了A/D转换。(5)A/D转换结束的判断。对于HY1232采集卡分查询方式和中断方式两种。(6)采样速率的设置。对于有些数据采集卡(如LabPC1200卡),用户可在其最大采样速率范围内进行选择设置,以满足实际的需要。但HY1232数据采集卡的采样速率是固定的,用户不可选。(7)设置信号输入通道。在031可选范围内选择。(8)设置一次采集点数。图2 HY1232数采卡单点数据采集程序流程图开始定义全局变量定义局部变量设置A/D通道号,采样并启动A/D转换A/D转换结束
48、否?读A/D结果低八位和高四位合并A/D结果,并将A/D结果存于数据组中结束NY采集程序流程图与编程要点采集程序流程图与编程要点1流程图HY1232数采卡单点数据采集程序流程图如图2所示。2.2.数据采集程序数据采集程序 HY1232数据采集卡采集一个点的C源程序如下:#include#include#include void main(void)int basea,channel;float value,IO,hi;basea=0 x280;/*板基地址设为640*/printf(“Input channel number:”);/*设置采集通道号*/scanf(“%d”,&channel)
49、;outp(base,channel);/*往输入通道寄存器写入所选通道号,并触发A/D转换*/do /*查询A/D转换完成寄存器的最高位,若为1,则表明A/D换结束,否则继续查询*/while(!(inp(basea+5)&0 x80);lo=inp(base+1);/*读入A/D结果的低八位*/hi=inp(base+2)/*读入A/D结果的高四位value=(lo+hi&0 xf)*256)-2047)*10.0/4096;/*合并后,再将A/D转换的二进制结果转换成对应的模拟量值*/getch();3.3.编程要点说明编程要点说明 1)outp(x,y)和inp(x)函数 C语言接口函
50、数 outp(x,y)函数的功能是把函数y送入端口地址为x的寄存器中。outp(base,channel)是把通道号channel(程序中是由前面板控件设置)送入地址为base的输入通道选择寄存器,并启动该通道的A/D转换。inp(x)函数的功能是从端口地址为x的寄存器中读取二进制数据。inp(base+1)从地址为base1的低八位寄存器读取A/D转换结果。inp(base+2)从地址为base+2的高四位寄存器读取A/D转换结果二进制数的高四位,并清除A/D完成位寄存器和中断请求信号。inp(base+5)从地址为base+5的完成位寄存器读取完成标志位I/O显示值,当IO=0时,表示A/
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。