LabVIEW与C接口设计方法

发布者:吾道明亮最新更新时间:2014-11-06 来源: eefocus关键字:LabVIEW  CIN节点  C接口 手机看文章 扫描二维码
随时随地手机看文章

  Labview提供支持VXI总线、GPIB总线、RS?232串行总线接口硬件的驱动程序库,但它对物理内存的操作受到限制,且对硬件操作的实时性不好。但它提供了CIN(CODeInterfaceNode)节点。用户可在LabVIEW中确定CIN节点的入口与出口参数个数类型,在C编译环境下,生成.lsb文件,然后在LabVIEW中对CIN节点选择Loadcinobjectcode,最后将该节点封装成一个VI,由主程序调用。采用CIN节点,也可充分利用Win95支持多线程的功能,提高运行效率,利用主线程监控各子线程,有效地避免因硬件通信错误而导致程序被挂起的现象,同时,可充分利用Win95有效的内存管理技术,提高数据处理及运算速度。

  2.1VI设计

  首先在块流图(BlockDiagram)上放置一个CINVI,然后通过CIN弹出菜单中的AddParameter增加接线端子(Terminal),通过接线端子来标识CIN的输入和输出。接线端子通常有输入输出接线端子(Input?OutputTerminal)和输出接线端子(Output?OnlyTerminal),在缺省情况下,接线端子是输入输出接线端子,其左边是输入,而右边是输出。在生成的代码中,与输入输出接线端子对应的是一个参数,通过该参数,数据输入CIN,CIN可以使用该参数的值或修改参数的值能够由该参数返回;如果输入输出接线端子的右边没有使用,即只有输入,则CIN只能使用该参数的值而不能修改它。对于输出接线端子,它只有输出端,没有输入端。由LabVIEW在内存中设置空间保存CIN的返回值。在定义了CIN接线端子后,将设定的数据控制器(Control,连接输入)、数据指示器(Indicator,连接输出)与对应的接线端子用线(Wire,代表数据流)连接起来,这样将确定所生成代码中的参数类型。

  上面的过程只是定义了CIN的内部接口,还必须定义VI的编程接口,即肖像/连接器,通过它才能在程序中调用设计好的VI。在肖像/连接器的设计中,尽量使所画的肖像能够表达出所设计的VI的功能,采用在肖像上标识该VI名称的方法。连接器则是标明肖像的输入输出属性,数据和信息通过连接器的端点在两个VI间传递。这样就设计好了一个VI,但要给它装入目标代码后才能执行。

  2.2生成.c文件

  在设计好CINVI后,可用LabVIEW生成C语言格式的.c文件。下面是我们设计的StdCMD.VI所生成的StdCMD.c文件:

  在所生成的文件中,自动包含了文件extcode.h,它是定义能够被CIN使用的基本数据类型和外部子程序的头文件。如果设计的CIN代码含有系统调用,还必须包含文件hosttype.h。当CIN代码执行时,LabVIEW调用CINRun函数,通过CINRun函数的参数传递VI的输入输出值。LabVIEW定义的程序返回值是MgErr数据类型,在执行完CIN代码后,LabVIEW能够检查返回值并确定代码执行是否有错误。

  2.3用户代码设计

  在CINRun函数体内编写用户代码是实现所设计的CINVI功能的关键。在我们所设计的5个VI中,这部分代码的编写主要是利用设计好的驱动程序完成多机测控系统的控制任务,将驱动程序的接口函数封装在VI内,在用LabVIEW编制测试软件时,通过调用VI来实现对多机测控系统的控制操作。

  2.4编译代码生成.lsb文件

  在Windows95/98下,利用VisualC+5.0IDE编译设计代码,具体操作过程如下:

  (1)创建一个新的DLL项目。在VisualC++5.0IDE环境中选择菜单命令File

  New…..在弹出的对话框中New:域中选择ProjectWorkspace项,按OK键。在接着弹出的对话框中Type:域中选择Dynamic?LinkLibrary项,在Name:域中输入StdCMD(该项目的名称),在Platforms:域中选择Win32(表示将要生成的DLL是32位的),在Location:域中输入(或按Browser…键,选择)源代码文件所在的路径(注:编译过程中生成的中间文件和可执行代码也会产生在这个路径下),按Create…键完成DLL项目的创建。[page]

  (2)把CIN的目标文件和运行库添加到项目中。选择菜单Insert

  FilesintoProject…。把文件…\StdCMD\StdCMD.c添加到项目中;文件把存放在子目录…\Labview\Cintools\Win32下的文件cin.obj,labview.lib,lvsb.lib和lvsbmain.def添加到项目中。这些文件对于创建CIN节点都是必须的;把项目包含的头文件(.h文件)添加到项目中,这些文件必须在同一目录(文件夹)中。

  (3)把生成节点的工具所在子目标添加到包含路径中。选择菜单命令

  …,在弹出的对话框中,选中SettingsFor:域中的全部内容;选中C/C++标签,将其中的Category置为Preprocessor;在Additionalincludedirectories域中输入CIN节点工具所在的子目录…\LabVIEW\Cintools。

  (4)设置校准为1Byte。选择菜单命令

  …。在弹出的对话框中,选出SettingsFor:域中的全部内容;选中C++标签,将其中的Category置为CODeGenerations;从Structmemberalignment域中选择1Byte。

  (5)选用多线程run-time函数库。选择菜单命令

  …,在弹出的对话框中,选出SettingsFor:域中的全部内容;选中C/C++标签,将其中的Category置为CodeGenerations;从Userun?timelibrary域中选择Multithreaded。

  (6)建立一个定制的生成命令来运行lvsbutil程序。选择菜单命令

  …在弹出的对话框中,选中SettingsFor:域中的全部内容;选中CustomBuild标签,在Buildcommand(s):域中输入…\LabVIEW\Cintools\Win32\lvsbutil$(TargeName)-d$(WkspDir)\$(OutDir);在Outputfile(s):域中输入$(OutDir)$(TargetName).lsb。

  (7)执行生成动态库命令。执行菜单命令Build?BuildStdCMD.Dll。编译连接正常的情况下,VisualC++编辑器会按照定制的要求在…\StdCMD\debug目录下生成StdCMD.lsb文件。

  由于编译代码的过程比较烦琐,容易出错,因此我们设计了CIN模板应用向导(CinTempAppWizard),并给出CinTemp.awx和CinTemp.pdb文件。将其添加到VisualC++5.0IDE中,可以由用户方便地自动生成编译CIN代码的项目。

  2.5装载CIN目标代码

  装载CIN目标代码是将生成的.lsb文件装入VI的过程。这一过程将目标代码装入内存并与VI的前面板/块流图链接起来,保存VI后,即可在程序中调用该VI实现设定的功能。这一过程的操作是在LabVIEW环境中打开StdCMD.VI程序,将光标指到框图中的CIN节点按右键。选中弹出菜单中的命令,将StdCMD.lsb文件装载到CIN节点上。在使用过程中,也可修改CIN代码以扩充其功能,只需重新装入新的.lsb文件即可。

关键字:LabVIEW  CIN节点  C接口 引用地址:LabVIEW与C接口设计方法

上一篇:labview介绍和书籍推荐
下一篇:LabVIEW数据流控制方法研究

推荐阅读最新更新时间:2024-03-30 22:49

Apple Watch迎来USB-C接口充电器:要用iPad充电?
        苹果继续拥抱USB Type-C接口,今天为Apple Watch推出了新款磁力充电器,采用了USB Type-C接口。   新款Apple Watch磁力充电器线长0.3米,有了这款新的充电器,你就可以用MacBook或其它有Type-C接口的设备为Apple Watch进行充电了。   苹果已经宣布将于10月30日举行新品发布会,爆料称届时新款iPadPro将发布,据悉其将改用USB Type-C接口,如果属实的话,那就可以用iPad来给Apple Watch充电了。
[手机便携]
最新版本的LabVIEW NXG,进行更智能的测试
2018年2月1日– 作为致力于为工程师和科学家提供解决方案来应对全球严峻的工程挑战的供应商,NI(美国国家仪器公司,National Instruments)今日宣布推出新版LabVIEW NXG,LabVIEW NXG是LabVIEW工程系统设计软件的下一代版本。 工程师现在可以使用LabVIEW NXG更智能地进行测试 - 快速设置仪器,根据设备规格自定义测试,并在任何设备上通过任意web浏览器轻松查看测量结果。 这个新版本的LabVIEW NXG新增了一些关键功能,提供了前所未有的长期优势,尤其是对于开发、部署和管理自动化测试和测量系统的工程师。 该版本引入了WebVI,这是一种用于构建基于Web的用户界面(UI)的V
[测试测量]
Omdia:今年50%以上的手机采用USB-C接口
市场调研机构Omdia昨日发布的最新预测报告显示,USB-C 接口使用率将在2020年迎来一个转折点。Omdia 预计2020年智能手机市场中至少一半的机型将配备 USB-C 接口,到2022年,计算和运输领域中所有产品的一半以上将配备至少一个 USB-C 接口。 Omdia 调查了智能手机、计算、消费电子、交通和电气领域内2017年至2019年的31种产品中 USB-C 的采用情况,并预测,到2024年,USB-C 接口整体出货量将以30% 以上的复合年增长率增长。 USB-C 是采用 type-C 外形标准的 USB 接口,可实现正反对称插拔等功能。USB-C 在 Omdia 以上调研的31种产品中,提供的功能包括供
[手机便携]
Omdia:今年50%以上的手机采用USB-<font color='red'>C</font><font color='red'>接口</font>
20位Σ-Δ立体声ADA电路TLC320AD75C接口电路设计
    摘 要:介绍了Σ-Δ型ADC和DAC的特点及构成,并详细论述了Σ-Δ型立体声ADA电路TLC320AD75C的模拟与数字音频数据接口技术、DAC的串行控制接口技术及该类器件的使用注意事项。     关键词: Σ-ΔADC/DAC TLC320AD75C 音频数据接口     1 Σ-Δ型ADC及DAC     现今使用的绝大部分A/D转换器,例如并行比较型、逐次比较型、积分型等都属于线性脉冲编码调制(LPCM)型A/D转换器 。一个分辨率为n位的这种类型的A/D转换器,为了能区分2n个不同的量化等级,需要相当复杂的比较网络和极高精度的模拟电子器件。当位数n较高时,比较网络的实现是十分困难的,因而限制了转换器分辨
[应用]
使用LabVIEW软件进行数据采集和信号处理的10大理由
1.通过软件增加处理能力及灵活性   使用基于计算机进行数据采集设备的最大优势之一是您可以使用软件来定制您的测试系统的功能和可视化特性,以满足您的应用需求。人工测试代价高,速度慢,且容易出错,而基于软件定义的系统可以更快速并一致地执行。NI公司的LabVIEW软件提供了一个数据采集设备的单一编程接口,使得硬件和软件可以无缝地集成。您可以对几个设备进行自动化测量,并行地分析采集数据,使用LabVIEW软件在几分钟内就可以创建自定义报告。 2.加速您的生产力   LabVIEW软件使得您可以通过专注于数据和对数据的执行,排除了计算机编程的诸多管理复杂性,如内存分配和语言的语法,使得工作更富有成效。内置专用工程软件库允许我们更易于采
[测试测量]
NI(美国国家仪器)最新推出无线传感器网络平台
  美国国家仪器有限公司(National Instruments,简称NI)近日宣布推出最新无线传感器网络(WSN)平台,它包含了LabVIEW图形化编程软件和新发布的性能可靠、低功耗的无线测试节点,构成一个完整的远程监控解决方案。当前,远程监控应用中无线技术的使用呈现出增长的态势,工程师和科学家们努力尝试寻求一种 集成的解决方案,可以确保满足测试质量、能源管理并提供可靠的、适合长期远程发布的硬件。NI WSN平台充分发挥了NI 公司30多年数据采集系统领导者的经验,向用户提供了一种简单易用的解决方案,它为用户提供了高质量的测试数据,可灵活管理设备功耗,以及可以通过自定义无线硬件来实现附加功能。作为该平台主要特色,LabVIEW
[模拟电子]
LabVIEW移位寄存器
移位寄存器可以将数据从一个循环周期传递到另外一个周期。在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。如右图所示。 移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。下图表示了它的工作过程. 图2-3 Shift Register的工作过程 可以令移位寄存器记忆前面的多个周期的数值。这个功能对
[测试测量]
<font color='red'>LabVIEW</font>移位寄存器
一种基于LabVIEW的热舒适测试系统的设计
   0 引 言   在暖通空调领域,随着测试技术的发展及测试要求的不断提高,一些具有与计算机直接通信功能的高精度温湿度测试仪表已经在科研和工程中被广泛运用。然而对于整个测试系统而言,单个仪器本身存在一些限制:仪器本身只能显示某一时间点的数据,不能看到参数的实时变化趋势;仪器本身缺乏数据处理能力,而某些测试场合需要不同测量仪表所测参数进行计算而得出有利用价值的分析指标,比如PMV(预测平均评价)、PPD(预测不满意百分比);受仪器本身记忆卡内存的限制,仪器只能存储有限量个数据。与此同时,各个品牌的仪表与计算机通信的方式不完全相同,有RS 232串行通信、GPIB总线通信等。因此,如何把这些仪表整合到同一个平台上,开发一个功能强
[测试测量]
一种基于<font color='red'>LabVIEW</font>的热舒适测试系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved