LabWindows/CVI中基于ActiveX技术的Excel访问
LabWindows_CVI下基于Excel的测试控制技术_吴松龄
ULL,MyCellRangeV,CA_DEFAULT_VAL,
&ExcelRangeHandle);
CA_VariantClear(&MyCellRangeV);
// Make range Active
Excel_RangeActivate (ExcelRangeHandle,
&ErrorInfo, NULL);
2 工程实现 2.1 软件总体设计 基于虚拟仪器的测控程序设计采用面向对象的 程序设计思想。在虚拟仪器系统中,硬件只是为了 解决信号的输入输出,软件才是整个仪器系统的关 键,任何一个使用者都可以通过修改软件的方法, 很方便地改变、增减系统的功能与规模,所以有 “软件就是仪器”之说。一般虚拟仪器系统包含用 户界面、程序控制、数据采集以及数据分析[4]。 整个软件设计过程中采用面向对象的程序设计 思想和模块化的程序结构,实现了数据处理和测试 流程分离。数据信息包括测试配置参数和测试结果 数据,测试流程的执行就是读取Excel文件中的配置 数据,配置测试仪器,进行相应的测试控制、数据 采集、分析和计算,并把结果回送到测试结果中。 整个软件主要包括测试系统主程序模块、单项测试 模块、测试流程数据库等部分,软件层次架构图如 图1所示。 在进入测试项目时,首先读取相应Excel文件的 内容,将测试流程和相关参数显示到测试界面的流 程表中,每执行一步流程,主动获取控制参数,执 行完毕后将测试的结果再写入到流程表中,全部流 程结束后将测试结果保存为Excel格式的结果文件。 图1 软件层次架构图(参见右栏)
// Get Active Workbook Sheets Excel_GetProperty(ExcelAppHandle,NULL,
E x c e l _ A p p S h e e t s , C AV T _ O B J H A N D L E , &ExcelSheetsHandle);
LabWindows/CVI中基于ActiveX技术的Excel访问
Ib n 0 sC I N t n nt met 司 的 软 件 产 品 , 丑 Wjdw, V 是 ao a I r n / il s u s公
指 向可用方 法列表 的指针组成 , 每个方 法有对应 的 I D号码 , 称
为 DSI 当获 得 某 方 法 的 DSI 之 后 , 可 以通 过 调用 IPD。 IPD 就
Ac e sng t c lBa e n tv X c o o y i b i o /CVI c si o Ex e s d o Ac i e Te hn l g n La W nd ws
CHEN n - ,L U a - n ,W ANG in mi Yi gl I F n mig i Ja - n
摘要 : 实际工程为背景 , 绍了在 I b no s C I 以 介 丑 widw / V 环境 下 , 于 A te 基 cvX技 术访 问 Mi oot xe 03的方法 , i c sfE cl 0 r 2 以及创建
自动 化 仪 器驱 动 器 的 方 法 。详 细 阐述 了访 问 E cl 体 函 数 的 使 用 方 法 , xe 具 实现 了对 E cl 访 问 。通 过 该 工 程 实例 , 明 xe 的 说
具。
E cl xe是一种 常用 、 方便 的数据记 录格式 , 需要记 录数据 在
的某些场合中 , E cl 以 xe 格式记 录的数据 便 于后 续查看 与处理 。
本文介绍了在 Lb n o sC I中利用 A t e aWidw/ V ci X技 术进行 E cl v xe
2 L b n o sC I A t e a Wid w/ V 对 cvX技术 的支持 i
( as eN vgt nlb , ol eo uo a o , abnE gneigU iesy H ri 5 0 1 C ia P si aiao a .C lg f tm tn H ri n ier nvri , abn10 0 , hn) v i e A i n t
Lab+Windows_CVI中基于ActiveX技术的Excel访问
∥指定输入数据的单元格范围,为连续范围单元格 CA_VariantSetCString(&vRange,RangeString); //将字符串数
Excel是一种常用、方便的数据记录格式,在需要记录数据 的某些场合中,以Excel格式记录的数据便于后续查看与处理。 本文介绍了在I址wind删s/CⅥ中利用ActiveX技术进行Excel 访问的实现方法,并结合某实际工程,给出了主要程序代码及其 说明。
1 ActiveX技术
ActiveX是一种软件组件,它可以插入到不同的应用程序 中,并被当作程序的一部分来使用。利用ActiveX可以把两个 或两个以上的应用程序组合在一起,使其像应用程序一样工作, 或者可以在同一应用程序外壳中进行不同应用程序间的切 换It】。
Accessing to Excel Based on ActiveX Technology in LabWindows/CVI
CHEN Ying—li,LIU Fan—ming,WANG Jian-min
(Passive Navi-sation Lab.,College of Automation,Harbin Engineering University,Harbin 150001。China)
Abstract:The approach of accessing to Microsoft Excel 2003 baaed on ActiveX technology in LabWindows/CVI environment is in· treduced,in sequence,the establishments of driving∞heme for automatic instruments are presented in detail.To realize the acceBs to Excel.the operations of accessing to the real functions are intensively illustrated鹊well.The experiments in the real environment demonstrate that this method illustrated here is of great value for practical applications. Key words:LabWindows/CVI;ActiveX;Excel
基于LabWindows_CVI的数据报表技术
作者简介:1:杨恒辉(1982-),男,陕西户县人,助理工程师,硕士,研究方向:航空动力系统控制与仿真。
基于LabWindows/CVI 的数据报表技术杨恒辉(1) 王超(2)(1中国航空计算技术研究所,陕西省西安市,710068; 2 陕西省建筑设计研究院有限责任公司 ,陕西省西安市,710003)摘要:测控领域中,数据报表通常以Word 或Excel 报表格式输出。
介绍了在LabWindows/CVI 虚拟仪器软件设计平台下实现Word 和Excel 数据报表的基本方法。
针对数据报表中需要进行数据曲线图插入及数据重复扩展操作,提出了数据报表中数据曲线图和数据重复扩展操作的关键技术。
关键字:测控系统;ActiveX 控件;Labwindows/CVI ;曲线; 中图分类号:TP391 文献标识码:AReport Technology Based OnLabWindows/CVIYANG Heng-hui (1) WANG Chao (2)(1 CHINA AERONAUTICS COMPUTING TECHNIQUE RESEARCH INSTITUTE, XI ’AN SHANXI PROVINCE,710068,CHINA 2 Shananxi Architectural Design & Research Institute Co.,Ltd,XI ’AN SHANXI PROVINCE ,710003,CHINA)Abstact :In the domain of measuring and controlling, the data is outputted by the reportof Word or Excel. The basic method of designing the report of Word and Excel was recommended by using of Lab Windows/CVI. Critical technology of insert curve and handle the same data in report was propose .Key Words: Measuring and Controlling System; ActiveX control; Labwindows/CVI; Curve ;1 引言Labwindows/CVI(下面简称CVI)是NI 公司推出的一款功能强大的测控软件开发平台,是完全的ANSI C 开发环境,可以用C 语言很方便的实现测控领域中的自动控制、数据采集和数据分析等功能。
MATLAB访问excel
MATLAB作为自动化客户端调用Excel服务器编程项目中最后的功能——打印报告,最终确定使用ActiveX方式访问office,这个应该称之为OLE(对象链接与嵌入)方法。
通过MATLAB 调用Excel服务器,可以完成一些非数据对象的交互,比如图片。
在这里演示一下MATLAB与Excel交互的整体过程,当然这里不是报告的内容,这个属于项目的资料了。
这里通过简单的图片来表示,实际要做的时候,步骤和这个基本一致,只是过程麻烦些,每一个图片都要调整,然后数据内容调整,单元格格式等等:先看一下示意的效果:1.MATLAB打开自动化方法使用actxserver函数。
如下:he = actxserver('Excel.Application');上述语句创建excel服务器,句柄值为he,通过he可以访问excel服务器的属性和方法。
在使用中为了方便存储,可以设置默认路径,使用excel服务器的DefaultFilePath 属性:he.DefaultFilePath = 'E:\';调试中为了方便观看excel文件内容,可以设置excel服务器的Visible属性,实际调试时可以改为1,调试过后改为0即可:he.Visible = 1;2.创建工作簿方法通过excel服务器的属性Workbooks创建工作簿句柄,通过该句柄的方法Add创建工作簿:hw = he.Workbooks.Add;然后,继续通过hw的Worksheets属性建立Sheets类句柄:hs = hw.Worksheets;访问某一sheet的方法即用sheets的Item方法:sheetItem = hs.Item(1);上面即建立的sheet类句柄,可以通过该句柄访问单一sheet。
3.生成带有图形的Excel,主要是figure位置和格式,粘贴时只能选择单元格,需要精细修饰就要使用下面的方法了。
LabVIEW与Excel连接
创建一个新的Excel表
2、写入数据并退出Excel 对数据表( sheets ) 使用Invoke Node调用其Add方法, 并调用Variant to Data函数将变形体数据转化为LabVIEW中 的有效数据类型。然后使用Invoke Node调用Worksheet中的 Range方法, 指定输出数据单元格的行、列号( 本例为第一 行、 第一列) ; 通过使用Property Node给Range方法的 Value属性赋值,输入设定的数据。 最后.使用Invoke Node调用Workbook的Close方法关 闭数据表;调用Application的Quit方法退出Excel,退出前 给出是否保存数据表的提示; 调用Automation Close函数关 闭ActiveX服务器,并输出错误代码。
LabVIEW与Excel连接
华北电力大学 控制与计算机工程学院
主要内容
背景介绍
创建一个新的Excel表 打开一个现有的Excel表 利用LabVIEW对Excel进行修改
背景介绍
ActiveX是微软公司推出的一个技术集的统称,基于 COM(Component Object Model)组件对象模型技 术,是OLE(Object Linking and Embedding)技 术的扩展。 通过现成的ActiveX对象,用户可以方便的实现许多强 大功能,如操作Excel、PowerPoint等。 LabVIEW5.0以上版本开始支持ActiveX技术。 本组利用LabVIEW提供的ActiveX来操作Excel。
打开一个现有的Excel表
(4)将鼠标放在图标上Workbooks的位置,右击,选择 “创建→Excel.Workbooks类的方法→Open”,放置 在合适的位置。通过Open方法打开一个工作薄,它可 以返回打开工作薄的引用。 (5)在函数面板→文件I/O → 高级文件函数,选择“路径 至字符串转换”,将其放在程序框图的合适位置,然后 创建输入控件“路径”。 (6)创建“引用输出”、“错误输出”、“返回值”。
在LabWindows_CVI中输出EXCEL报表
在LabWindows/CVI中输出EXCEL报表LABWINDOWS作为测控领域的优秀开发平台,对于具有C语言基础的人员来说使用特别方便。
有时我们可能需要CVI输出数据文件并且打印报表,我现在简单介绍一下CVI输出EXCEL报表的一种方法,也可能某些地方不专业,仅供参考,并不是说只能这么实现。
1、按要求用EXCEL做好报表模板存储成普通EXCEL文件格式,2000或2003都可以。
2、打开CVI,按照正常方法设计用户操作界面,当然界面上至少要有“打开EXCEL程序”或“传递数据到EXCEL“等按钮,生成C源程序框架。
3、工程中添加excel2000.fp,excelreport.fp 位于...CVI90\toolslib\activex\excel目录下,4、“打开EXCEL程序”按钮的回调函数的编写——重要!int CVICALLBACK LaunchExcelCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2){char ExcelFileName[MAX_PATHNAME_LEN]={0};switch (event){case EVENT_COMMIT:SetWaitCursor (1);LaunchError=ExcelRpt_ApplicationNew(1, &applicationHandle);SetWaitCursor (0);if (LaunchError<0){MessagePopup ("自动启动Excel错误:", "通过自动接口试图启动Excel发生错误。
");break;//退出程序。
}GetProjectDir (ExcelFileName); //得到Project当前目录名,(将第一步中的模板*****.xls文件copy到工程文件目录下)strcat(ExcelFileName, "\\*****.xls");//字符串连接ExcelRpt_WorkbookOpen (applicationHandle, ExcelFileName, &workbookHandle);//打开该路经下的EXCEL文件ExcelRpt_GetWorksheetFromIndex (workbookHandle, 1, &worksheetHandle);ExcelRpt_ActivateWorksheet (worksheetHandle); //激活该句柄的电子表格sheetbreak;}return 0;}当然程序开头处要声明,目标句柄。
面向LabWindows/CVI的ActiveX Automation数据访问技术
维普资讯
第
l 卷 第 2 期 4
6 月
宁 波 高 等 专 科 学 校 学 报
J OURNAL OF N1 NGBO COUL EGE
Vo l . l 4 No 2
20 年 02
Jn .0 2 u e2 0
面 向 Lb n o s C I a Wid w / V 的 Acie uo t n数 据 访 问技 术 t X A tmai v o
收 稿 日期 : 0 2—0 20 4—2 O
作者 简 介 :任敏 杰 , , 江 建 设 职 业 技 术 学 院 . 级 讲 师 男 浙 高
维普资讯
宁 波 高 等 专 科 学 校 学 报 源自20 0 2年 第 2期
法 实 现对 数 据库 的访 问和 操 作 。并 针 对其 环境 的特殊 性 提 出 了解决 的途 径 和方 法 。
1 L b id w / Vl 的 Acie tmain库 aw n o s C 中 t X Auo t v o
L b n o s/ V a Wid w C I中是 通 过 A t e tm t n库 文件 实现 该 功能 的。 它 主要 提 供 以 下功 能 : ci X Auo ai v o
微 软 的 O E 自动化 技 术 的扩 充 和发 展 , 用该 技 术 可实 现 与外 部 数据 库 的 衔 接 , L 利 充分 利 用 其 他 的
Excel表单控件和ActiveX控件使用详解
在VBA编程中Excel提供了两种控件,表单空控件和ActiveX控件,相信好多非开发的专业人员都搞不清楚两个的区别,本文就以Excel2016版本为例,和大家一起讨论下这两种控件的区别和用法,大家一起相互学习、交流沟通。
1两种控件获取的位置如果使用控件,需要将Excel VBA“开发工具”加载到菜单栏,具体操作如下:a)点击“文件菜单”b)在打开的界面中点击“选项”菜单c)在打开的Excel选项界面中点击“自定义功能区”,并按照下图勾选“开发工具”,点击“确定”按钮就可以,将开发工具显示在Excel的菜单栏d)在Excel主界面中点击“开发工具”,打开VBA开发相关菜单功能,OK,马上我们的正主就要到了。
e)OK,在VBA开发工具相关菜单中,点击“插入”按钮,就可以看到“表单控件”和“ActiveX控件”了,下面我们就来一探究竟,这两种差距的主要区别2两种控件的主要区别和优缺点MouseUp无属性可以修改可修改一系列相关属性,在VBA开发的过程中可以控制。
是,通过DrawingObjects或者通是,可以通过Name以对象Box 3").Value是,可以通过控件来控制图表通过以上比较,发现ActiveX控件更加适合熟悉VBA编程的专业人士使用,具有丰富的响应事件。
但是窗体控件也具有其先天的优势,可以在不编程的情况下和关联单元格,并可以在Chart图标中添加窗体控件。
所以,两种控件的使用,需要根据具体使用场景进行有效的选择。
3如何使用两种控件3.1使用ActiveX控件控制多条件组合动态筛选3.1.1准备样例数据3.1.1插入ActiveX控件3.1.2为checkbox添加单击事件,动态控制筛选Private Sub CheckBox1_Click()Dim criterial2 As StringDim myRange As RangeDim flag As Booleanflag = Sheet1.CheckBox1.ValueSet myRange = Range("D4:D11")'获取要筛选的值criterial2 = LTrim(RTrim(Range("D2").Value))If criterial2 <> "" And flag = True Then'myRange.AutoFilter field:=2, Criteria1:=criterial2, VisibleDropDown:=FalsemyRange.AutoFilter Field:=2, Criteria1:=criterial2ElsemyRange.AutoFilter Field:=2End IfEnd SubPrivate Sub CheckBox2_Click()Dim criterial3 As StringDim myRange As RangeDim flag As Booleanflag = Sheet1.CheckBox2.ValueSet myRange = Range("E4:E11")'获取要筛选的值criterial3 = LTrim(RTrim(Range("F2").Value))If criterial3 <> "" And flag = True Then' VisibleDropDown:=False 使用了这个参数,筛选就不出现下拉箭头'myRange.AutoFilter field:=3, Criteria1:=criterial3, VisibleDropDown:=FalsemyRange.AutoFilter Field:=3, Criteria1:=criterial3ElsemyRange.AutoFilter Field:=3End IfEnd Sub3.1.3AutoFilter函数使用说明AutoFilter:使用“自动筛选”筛选一个列表。
LabVIEW与Excel连接..
创建一个新的Excel表
2、写入数据并退出Excel
对数据表( sheets ) 使用Invoke Node调用其Add方法, 并调用Variant to Data函数将变形体数据转化为LabVIEW中 的有效数据类型。然后使用Invoke Node调用Worksheet中的 Range方法, 指定输出数据单元格的行、列号( 本例为第一 行、 第一列) ; 通过使用Property Node给Range方法的 Value属性赋值,输入设定的数据。
通过现成的ActiveX对象,用户可以方便的实现许多强 大功能,如操作Excel、PowerPoint等。
LabVIEW5.0以上版本开始支持ActiveX技术。 本组利用LabVIEW提供的ActiveX来操作Excel。
背景介绍
LabVIEW中的 ActiveX Controls子模板提供的控制 型控件包括:ActiveX容器( container ) 、 变体数据 类型( variant) 、 自动化引用句柄 (automation refnum) 。
前面板:
修改指定单元格的内容
程序面板:
通过ActiveX插件打开Excel→指定表单与对应单元格→指定单元格的值→关闭引用
修改指定单元格的内容
运行结果:
修改指定单元格的内容
子vi的应用-简化程序,打包调用
LabVIEW中利用ActiveX技术访问Excel的接口研究
4 应用实例
本应用实例利用 ActiveX 技术 , 在 LabVIEW 中 打 开 Microsoft Excel , 建立一数据表 , 并写入数据 , 然后关 闭数据表 , 退出 Microsoft Excel 。 Excel 的版本为 Mi- crosoft Excel 2000 , LabVIEW 的版本为 6i。
LabVIEW5.0 以 上 版 本 开 始 支 持 ActiveX 技 术 。 LabVIEW 既 可 以 作 为 ActiveX 服 务 器 , 也 可 以 作 为 ActiveX 客户机。 LabVIEW 还能利用 ActiveX 包容器在 前 面 板 显 示 ActiveX 对 象 。 LabVIEW ActiveX 服 务 器 公布 VI 功能给 ActiveX 客户 ; ActiveX 客户 , 如 Visual Basic, Visual C++ , Excel 等 可以修改 LabVIEW 公 布的
示。 对 数 据 表 ( Sheets) 使 用 Invoke Node 调 用 其 Add 方法 , 并调用 Variant to Data 函数将变形体数据转化 为 LabVIEW 中 的 有 效 数 据 类 型 。 然 后 使 用 Invoke Node 调用 Worksheet 中的 Range 方法 , 指 定 输 出 数 据 单元格的行、 列号 ( 本例为第一行、 第一列 ) ; 通过 使用
ABSTRACT: This paper introduces a method of accessing to Microsoft Excel 2000 by using ActiveX technology in LabVIEW. The Invoke Node and Property Node are discussed. An example using this method is given and realized accessing to Excel. Key Wor ds: LabVIEW ; ActiveX; Excel
基于ActiveX控件的LabVIEW动态控制Excel多工作表数据显示
基于ActiveX控件的LabVIEW动态控制Excel多工作表数据显示陈金兰;张家精;陈松【摘要】针对Excel无法在一个图表中同时显示多个工作表的数据,且不能动态控制数据显示问题,介绍LabVIEW利用ActiveX控件在同一个图表中同时动态控制显示Excel多个工作表数据的方法,并给出详细过程和结果.便于对不同工作表数据的对比和分析,并增加数据显示的灵活性和方便性.【期刊名称】《淮北师范大学学报(自然科学版)》【年(卷),期】2013(034)004【总页数】5页(P72-76)【关键词】ActiveX;LabVIEW;Excel;动态控制显示【作者】陈金兰;张家精;陈松【作者单位】安徽建筑大学机械与电气工程学院,安徽合肥230601;安徽建筑大学数理系,安徽合肥230601;安徽建筑大学机械与电气工程学院,安徽合肥230601【正文语种】中文【中图分类】TP319在许多测控项目和科学研究中,经常用传感器收集数据,存储在Excel文件中,并利用这些数据进行对比、分析、控制和科学研究,特别是用图表直观地显示、对比数据.虽然Excel中的图表可以同时显示所嵌入的单个工作表中的多列或多行数据,以进行直观显示、对比和分析研究.往往许多类似的,且需要对比显示的数据是存放在不同的工作表中,Excel却无法在同一个图表中动态控制显示这些数据,并且不能灵活控制显示或不显示某一个工作表中的数据.LabVIEW是一种方便灵活的虚拟仪器开发平台,它采用基于流程图的图形化编程方式,可高效地进行数据管理、科学计算等方面应用程序的开发[1].LabVIEW提供了强大的外部程序接口,包括DLL、ADO、ActiveX和LabSQL等[2],其中通过ActiveX,可方便地实现对数据的访问等.本文针对Excel在一个图表中不能同时灵活控制显示多个工作表的数据问题,介绍LabVIEW采用ActiveX控件技术实现对Excel的数据访问,用LabVIEW的一个图表显示Excel多个工作表的数据,并根据需要灵活控制显示或不显示某个工作表中的数据,以便对比、分析和研究各工作表之间的数据关系.1.1 LabVIEW和Excel通信方法虚拟仪器测试系统中,重要的是对实时数据进行显示、查询、统计、生成报表分析等.利用LabVIEW和Excel通信最主要的有以下4种方法:方法1:利用LabVIEW的DDE功能可以很好地实现LabVIEW与Excel的数据通信.DDE(dynamic data exchange)即动态数据交换,是为在同一台计算机或不同计算机上运行的程序提供动态数据交换[1].它基于Windows消息机制,各应用程序间通过传递消息进行对话交换信息.但是DDE消息传递采用client/ server模式,要求编程者对client/server比较了解,配置复杂,且在Excel的格式上要求比较严格,对现有Excel表格访问时经常无法读取.方法2:利用NI公司的附加工具包LabVIEW SQL-Tool kit进行数据库访问,但这个工具包较昂贵,对于很多LabVIEW用户来讲,这个价格是不可能承受的[3].方法3:利用Lab SQL工具包实现LabVIEW访问Excel数据.Lab SQL是一个免费的、多数据库的、跨平台的LabVIEW数据库访问工具包,支持Windows操作系统中的任何基于ODBC的数据库,通过ADO(Microsoft Active Data Object)控件和Lab SQL语言实现数据库的访问,将复杂的底层ADO以及Lab SQL语言操作封装成一系列的LabSQL VIs模块,便于软件模块化的设计[3].该方法虽然封装了数据对象ADO,对于访问SQL Server、Oracle、Access等数据库应用程序易于理解,操作简单,但是对于访问Excel数据显得累赘,还要下载工具包,安装到相应目录,且还要配置ODBC数据源等复杂的配置程序.方法4:在LabVIEW中利用ActiveX控件读写Excel数据.ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集.它与具体的编程语言无关[4].LabVIEW自带处理Excel等应用程序的ActiveX控件,包括:Open Application(打开应用)、Open Workbooks(打开工作薄)和Open Worksheets(打开工作表)等控件,并使用属性节点和调用节点实现数据的读取和转换,就像直接操作Excel 表格一样灵活方便,本文后续内容介绍该方法实现和Ex⁃cel通信的详细步骤.1.2 利用ActiveX访问Excel数据以上分析得出,LabVIEW和Excel通信采用ActiveX控件比较方便易行,下面详细阐述用ActiveX控件实现LabVIEW与Excel多个工作表的通信步骤. LabVIEW中利用ActiveX打开Excel,分为打开应用程序(Open Application)、打开工作薄(Open Work⁃books)、打开工作表(Open Worksheets)和读取数据4个主要步骤,以下详细描述实现方法.(1)打开应用程序.如图1所示,在前面板中创建一个“自动化引用句柄”控件,右击该控件,单击“选择ActiveX类”项选择“Excel._Application”,此时“自动化引用句柄”的标签自动更新为“Exc el._Applica⁃tion”.(2)创建“打开自动化”控件.打开程序框图,如图2所示,右击“Excel._Application”控件,选择“Ac⁃tiveX选板”项,打开级联菜单,再拖放“打开自动化”控件,将“Excel._Application”连线至“打开自动化”的左侧自动化引用句柄端.该步骤相当于在电脑中打开Excel应用程序.(3)创建“属性节点”.右击“打开自动化”控件,在“ActiveX选板”中拖放“属性节点”,将“打开自动化”右侧自动化引用句柄端连线至“属性节点”的引用端;再右击“属性节点”的属性,在下拉列表中选择“Workbooks”,即创建了“Workbooks”,如图3所示.(4)创建“调用节点”.右击“Workbooks”控件,在“ActiveX选板”中拖放“调用节点”,将“Workbooks”连线至“调用节点”的引用端,此时“调用节点”自动更新为“Workbooks”,再右击“Workbooks”调用节点的“方法”,在下拉列表中选择“Open”.此时在“Open”的“Filename”输入端连接所需打开Excel文件的路径,这里的文件路径控件需要在前面板中创建一个“文件路径输入控件”.该步骤相当于在已打开的Excel应用程序中打开一个Excel文件,即工作簿.(5)创建“Workbook”属性节点存放打开的workbook.放下“属性节点”,其引用端连接至workbook调用节点的“Open”,属性节点显示为“workbook”,然后单击“属性节点”的属性,在下拉列表中选择“Work⁃sheets”.(6)同步骤4,放下“调用节点”,其引用端连接“Worksheets”,此时“调用节点”显示为“sheets”,再单击“调用节点”的方法,在下拉列表中选择“Item”,在“Item”的“Index”输入端数值以选择读取工作薄中的第几个sheet,如图4所示.该步骤相当于在打开的工作簿中选择一个工作表.(7)Excel中存储的数据可能有多种,如数值型、字符型、货币型等,故Labview读取数据时需要将未知的数据转换成其可识别的数据类型,“变体至数据转换”控件实现该转换.在“ActiveX选板”中选择“变体至数据转换”控件,将其变体端连接至“Item”;再在前面板中放下“自动化引用句柄”,在“选择ActiveX类”下选择“Excel._Worksheet”,将其连线至“变体至数据转换”的类型端.(8)放下“属性节点”,其引用端连接“变体至数据转换”的数据端,然后单击“属性节点”的属性,在下拉列表中选择“UsedRange”.再放下“调用节点”,其引用端连接“UsedRange”,用单击“调用节点”的方法,在下拉列表中选择“Value(获取)”,如图5所示.该步骤相当于在选中的工作表中选择一个区域范围的数据,并将其读出.(9)放下“变体至数据转换”,其变体端连接至“Value”,只要在“变体至数据转换”的类型端连接一个二维的字符型数组常量,就可以在数据端获取表格中的数据.以上步骤的程序,如图6所示.程序的最后需要用Close Application、Close Workbooks和 Close Worksheets来关闭调用.在此不再详细赘述.鉴于以上方法,可以把要放在一起对比分析的不同工作表中的数据读入LabVIEW 中,通过开关控制不同工作表中的数据在XY图表中显示,以便于对比和分析.这里给出一个实例,该实例是在一个XY图表界面上显示Excel 3个工作表中的数据曲线图.如图7所示,Excel表格数据是用传感器测试3个不同房间的温度和湿度得来,保存在同一个Excel文件中的不同工作表中,每个工作表中数据信息均有“序号”、“时间”、“温度”、“湿度”等.如图8a和图8b所示,用开关控制在LabVIEW的XY图表里动态控制显示其中两个和三个表格里的温度变化曲线.其中图8a和图8b的界面图分3个部分,从上到下分别是选择工作表文件路径部分、控制部分和显示部分.文件选择路径部分是在程序运行前选择打开Excel文件,然后用“起始行”和“终止行”这两个控件手动输入要显示的Excel工作表中数据的起始行和终止行,以界定显示范围.控制部分由3个开关分别控制要显示的3个工作表中的温度,这里“1号室开关”控制显示图7所示Excel工作表1号室的温度,“2号室开关”控制显示工作表2号室的温度,“3号室开关”控制显示工作表3号室的温度,把3个开关同时打开,即可在前面板图表里同时显示这3个Excel表格里的温度变化,即图8a显示的界面,以同样的方法可以同时动态显示两个或三个以上房间里的温度变化曲线,图8b显示的是“1号室”和“2号室”温度变化的曲线.显示部分分别用不同颜色的曲线显示不同房间的温度变化,其X坐标是从工作表中的时间列读取的值,温度变化曲线显示不同时间点温度变化的值.其程序分为3个部分:第一部分对打开Excel文件的路径进行配置,并打开Excel workbook和Application,如图9所示.第二部分从打开的Excel应用程序中(配置路径的Excel文件在应用程序中已经打开)读取“1号室”、“2号室”和“3号室”的工作表(sheet),并从中读取控制范围内的时间(应为不同工作表取值时间相同,这里只取一个表中的时间共用)和温度,并将其放在对应的数组里,转置(Excel中是列,LabVIEW的XY图表要求显示数组中的数据为行),抽取行(Excel中取出的是二维数组,LabVIEW的XY图表要求输入的是一维数组),再把时间和温度数组绑定在一起,通过开头控件,再组合数组送给XY图表显示.如图10.第三部分是接收错误输出以及关闭worksheet、workbook和Application等,如图11所示.这里用前面板里的“起始行”和“终止行”这两个输入控件手动输入要显示的Excel工作表中数据的起始行和终止行,确定曲线显示范围.还通过开关控制要显示工作表的数据,这样增加了程序显示多个不同工作表中数据的灵活性和方便性.同样的方法可以显示3条以上多工作表中的数据曲线.本文通过实例描述了用ActiveX对象实现在LabVIEW一个图表同时动态控制显示Excel多个工作表的数据曲线方法,可以灵活控制要显示的不同工作表中的数据曲线的多少和选择相应的曲线,还可以通过输入控件,控制工作表中数据的范围,利用ActiveX技术提供的方法和属性,简单易行.【相关文献】[1]陈金平,王生泽,吴文英.LabVIEW与Excel的通信方法[J].自动化仪表,2006,27(4):65-67.[2]董英斌,韩冰.LabVIEW中利用ActiveX技术访问Excel的接口研究[J].微计算机信息,2006,22(4):165-166.[3]尹技虎,王峰.基于LabSQL的LabVIEW数据库访问技术[J].仪表技术,2011(4):55-56.[4]胡绍海,高亚峰,肖坦.基于LabVIEW的Excel报表生成技术研究[J].测控技术,2007,26(10):64-66.。
虚拟仪器技术在测控系统中的应用
虚拟仪器技术在测控系统中的应用作者:胡陶林来源:《大东方》2017年第05期摘要:本文描述了虚拟仪器技术在测控系统中的应用。
通过选用多功能数据采集卡和信号调理电路组成自动测试系统,以LabWindows/CVI软件为平台,实现了数据采集、分析和处理。
同时与基于传统的开发平台的测控系统进行了比较。
关键词:虚拟仪器;Labwindows/CVI;数据采集一、引言虚拟仪器是以一种全新的理念来设计和发展的仪器,它是20世纪90年代发展起来的一项新技术。
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种自动测试、过程控制、仪器设计、数据分析和自动化的应用。
二、虚拟仪器的特点和构成(1)虚拟仪器的特点与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性好等明显优点。
(2)虚拟仪器的构成虚拟仪器的构建主要从硬件电路的设计、软件开发与设计两个方面考虑。
硬件电路的设计一般是选择现有的各种不同功能的板卡以及信号调理板来搭建。
将具有一种或多种功能的板卡结合信号调理板组建起来就能构成虚拟仪器。
三、虚拟仪器在实际测控系统中的应用(1)器在航空机载电子测控系统中的应用控系统在航空机载成件中起着举足轻重的作用,提高和完善测控系统的精度和测试能力对于整个飞机性能分析具有重要的意义。
本文介绍了基于虚拟仪器的各型继电器盒、各型开关盒测控系统的测试。
在LabWindows/CVI开发平台中实现了对整个测试的电压采集、对各型继电器盒的逻辑状态及延时时间进行输出存储和分析。
①测试系统组成整个测控系统由美国NI公司的LabWindows/CVI8.0,研华的1块PCI_1751 48路数字量输入/输出板,2块PCI_1754 64路数字量输入板、2块PCLD_785B 24通道继电器输出板、6块PCLD_782 24通道光电隔离数字量输入板,1块PCL_818L 16通道A/D 转换板、若干信号调理板及工控机组成。
LabWindowsCVI中调用Excel
LabWindows/CVI中调用Excel设计要求:1.启动Microsoft Excel并打开xls文件;2.向xls文件中写入数据;3.根据所填入的数据完成画图功能;4.Xls具有存盘,关闭等功能;5.关闭Microsoft Excel。
利用ActiveX技术进行Excel访问。
ActiveX技术以微软的COM技术为基础,也称之为ActiveX自动化。
ActiveX是一种软件组件,它可以插入到不同的应用程序中,并被当作程序的一部分来使用。
利用ActiveX可以把两个或两个以上的应用程序组合在一起,使其像应用程序一样工作,或者可以在同一应用程序外壳中进行不同应用程序间的切换。
生成自动化仪器驱动器在LabWindows/CVI的工程主窗口中选择Tool/Create ActiveXController,弹出ActiveX Controller Wizard对话框,点击Next进入自动化服务器选择对话框,如图1所示。
选择Microsoft Excel 12.0 Object Library,点击Next进入服务器配置对话框,如图所示。
ActiveX Server 表示已选中的ActiveX服务器名称,Instnmmnt Prefix表示生成驱动器的前缀,可以设置为空或键人有效的C语言标识符,若不输入任何字符,系统会默认产生一个有效的文件名,一般情况下不用修改此属性。
Target.fp File表示CVI产生的.fp文件在磁盘中的存储路径,点击Browse可以查找或定位一个.fp文件。
将Add.fp File To Project选中表示允许把所产生的.fp文件加入当前工程中。
点击Compatibility Options进入兼容选项对话框,通过该对话框选项可以保持所产生的代码源文件与已经存在的ActiveX仪器驱动的向后兼容性,系统默认为Per Property。
点击Next进入高级选项对话框,在高级选项对话框中,点击Advanced Option 将显示高级函数配置对话框,可以通过此对话框来增减ActiveX对象及修改对象的名称和标识符,高级函数一般采用默认配置即可。
在LabWindows_CVI中输出EXCEL报表
在LabWindows/CVI中输出EXCEL报表LABWINDOWS作为测控领域的优秀开发平台,对于具有C语言基础的人员来说使用特别方便。
有时我们可能需要CVI输出数据文件并且打印报表,我现在简单介绍一下CVI输出EXCEL报表的一种方法,也可能某些地方不专业,仅供参考,并不是说只能这么实现。
1、按要求用EXCEL做好报表模板存储成普通EXCEL文件格式,2000或2003都可以。
2、打开CVI,按照正常方法设计用户操作界面,当然界面上至少要有“打开EXCEL程序”或“传递数据到EXCEL“等按钮,生成C源程序框架。
3、工程中添加excel2000.fp,excelreport.fp 位于...CVI90\toolslib\activex\excel目录下,4、“打开EXCEL程序”按钮的回调函数的编写——重要!int CVICALLBACK LaunchExcelCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2){char ExcelFileName[MAX_PA THNAME_LEN]={0};switch (event){case EVENT_COMMIT:SetWaitCursor (1);LaunchError=ExcelRpt_ApplicationNew(1, &applicationHandle);SetWaitCursor (0);if (LaunchError<0){MessagePopup ("自动启动Excel错误:", "通过自动接口试图启动Excel发生错误。
");break;//退出程序。
}GetProjectDir (ExcelFileName); //得到Project当前目录名,(将第一步中的模板*****.xl s文件copy到工程文件目录下)strcat(ExcelFileName, "\\*****.xls");//字符串连接ExcelRpt_WorkbookOpen (applicationHandle, ExcelFileName, &workbookHandle);//打开该路经下的EXCEL文件ExcelRpt_GetWorksheetFromIndex (workbookHandle, 1, &worksheetHandle);ExcelRpt_ActivateWorksheet (worksheetHandle); //激活该句柄的电子表格sheetbreak;}return 0;}当然程序开头处要声明,目标句柄。
Labview利用activeX读取Excel文件报错3005等解决办法(有图)
利用activeX读取Excel时遇到一些坑,希望能帮到和我一样遇到此类问题的朋友,废话不多说,具体步骤如下。
Step1:前面板放置自动化打开引用句柄,如下图:
Step2:右击到最下端浏览,如下图:
Step3:从类型库选择Excel对象,(labview访问PC安装的EXCEL应用对象)如下图:
Step4:下拉框选择具体对象,注意选择图一中的(_Application)会报3005错,请往下拉请选择第二个Application,如下图二:
图一
图二
Step5:程序框图具体操作如下图,具体步骤略;
注意事项:可能遇到的坑Sheets类的方法Index索引从1开始,0无效(报错-2147352565)当直接建立输入变体控件时运行会报代码为-2147352565的错误;
Step6:最后,运行结束,调WookBook方法进行关闭.
本人第一次发文章,水平有限,请多指教。
若喜欢的话请点个赞。
LabVIEW的ActiveX实验--调用excel(精)
一台 一套
3.Excel
4.PowerPoint
一套
一套
实验原理
LabVIEW提供了强大的外部程序接口,包括DLL、CIN、ActiveX、 Matlab等。通过DLL,可以方便调用C、VC、VB等编程语言及 Windows自带的API函数;通过ActiveX,方便调用外部程序、控件 等。
利用LabVIEW调用Excel和PowerPoint提供的ActiveX来操作Excel 和PowerPoint
实验任务
1.按照介绍的“调用Excel”方法,调用Excel,并添加Excel保存程序。 参考前面板如下图:
THANK YOU FOR WATCHING
实验步骤1--调用Excel
(1)在函数面板→互连接口→ActiveX,选择“打 开自动化”,将其放在程序框图的合适位置。 (2)在“打开自动化”上单击鼠标右键,在弹出 的菜单中选择“选择ActiveX类→浏览”,出现 如图4-2所示的对话框,从类型库中选择 Microsoft Excel 11.0 Object Library Version 1.5,在对象框中,选择仅显示可创建的对象,然 后选择Application(Excel.Application.11), 单击“确定”,就可以完成Automation Refnum控件与Excel Application的连接。
LabVIEW培训
团队:晏 凯 韩 君 肖迎春 张胜宇
LabVIEW的ActiveX实验
实验目的 实验器材 实验原理 实验步骤
实验目的
1.了解LabVIEW的外部程序接口 2.掌握在LabVIEW中调用ActiveX的方法
实验器材
1.计算机 2.LABVIEW2013软件
基于CVI与Matlab混合编程的小麦腥黑穗病分类诊断系统
基于CVI与Matlab混合编程的小麦腥黑穗病分类诊断系统林伟森;袁之报;胡昕安;邓继忠;金济【摘要】基于图像识别鉴定小麦腥黑穗病类别的研究近年来在不断发展中,构建一个界面友好、扩充方便的分类鉴定系统有利于该项研究.文章采用LabWindows/CVI和MATLAB进行混合编程,构建了一个小麦腥黑穗病分类诊断系统.该系统利用了CVI丰富的界面控件以及MATLAB强大的计算能力和丰富的图像处理工具箱,通过ActiveX组件实现了两者的数据通信.经测试,系统操作方便,界面友好且后续扩充容易.【期刊名称】《电脑与信息技术》【年(卷),期】2015(023)001【总页数】4页(P20-22,32)【关键词】LabWindows/CVI;混合编程;小麦腥黑稳病;分类【作者】林伟森;袁之报;胡昕安;邓继忠;金济【作者单位】华南农业大学工程学院,广东广州510642;海南出入境检验检疫局,海南海口570311;华南农业大学工程学院,广东广州510642;华南农业大学工程学院,广东广州510642;华南农业大学工程学院,广东广州510642【正文语种】中文【中图分类】TP311.11小麦矮腥(Tilletia controversa Kühn,简称TCK)是入境检验检疫的重要目标[1],其与网腥黑穗病(Tilletia caries(DC.)Tul,简称TCT)形态学特征相似,鉴别较为困难。
目前,国内主要通过显微镜观察,依据腥黑穗病菌的冬孢子形态学特征、自发荧光显微学特征等对其进行鉴定[2-3],但其准确程度与分析人员的经验有关。
近年来,基于图像识别的鉴定方法已被应用在小麦腥黑穗病的分类鉴定的研究中[4-6],这种方法利于提高检疫鉴定的自动化与高效化。
一个基于图像识别的小麦腥黑穗病鉴定系统涉及到各类图像分析与模式识别算法,系统应该既具备自动检测的功能,也要容许用户自行优选合适的算法和方法进行试验,为此需要选择合适的编程平台,使系统开发能够做到界面友好、操作方便且扩充容易。