热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LabVIEW学习笔记1

《基于LabVIEW光伏发电在线测控系统的研究》LabVIEW注重代码的编写效率,改变传统文本书写的习惯,取而代之G语言代码。G代码编写的应用程序后

《基于LabVIEW光伏发电在线测控系统的研究》

LabVIEW注重代码的编写效率,改变传统文本书写的习惯,取而代之G语言代码。

G代码编写的应用程序后缀vi,一个完整的VI程序包括三个部分:前面板、后面板、图标连接器。

前面板:控制量、显示量。

后面板:图标、连线、框图,图标是一些变量、常量、子VI等,按照一定逻辑关系组合在一起。

图标连接器:子VI与子VI之间的数据连接。

G语言编程两个基本规则:模块化编程,图形数据流编程。



 

《基于LabVIEW的三轴转向伺服控制系统的研究》

LabVIEW与Matlab的混合编程基本示意图如下:

LabVIEW与Matlab的混合编程常见的方式有以下三种:

1, Matlab Script节点。

此方法应用较多、使用起来较为方便。可以根据实现功能编写Matlab函数,或者调用计算机中已经存在的M函数(是M文件还是调试生成的.fis文件???)。

2, Active函数模板。

实现起来相对困难,难理解易出错。原理:应用程序或者组件通过Active函数控制另外一个应用程序或组件。

3, COM组件技术。

原理:通过构建庞大的组件库,让使用者像搭建硬件电路一样,从组件库中选取组件搭建程序,方法难以实现。

LabVIEW与Simulink的混合编程

主要两种:第一种利用接口技术。第二种利用NI的SIT(SimulinkInterface Toolkit)接口工具包,该工具包功能强大,操作简单易行。本文主要讲第二种。

(1)    Simulink里面有NI SITBlocks模块。

(2)    Simulink创建一个模型,模型的最外层放置Signalprobe模块。

(3)    在LabVIEW创建用户界面。

(4)    建立LabVIEW与Matlab之间的连接。在LabVIEW中点击Tools---SIT connections manager---打开Simulink模型目录选择---点击Mappings,在链表中连接LabVIEW与Simulink图形中相对应的量。

(5)    通过完成该链接,LabVIEW前面板和后面板自动生成如下的控制面板与框图程序。

通过混合编程,LabVIEW可以实现复杂的高难度控制算法而不需要通过复杂的编程过程,减小了工作量。

注:LabVIEW2013版本后取消了SIT,该功能集成在了MIT接口工具包中。

 

 



 

LabVIEW大学实用教程(第三版)》

14.4 调用其他语言的代码

如果考虑使用C或者C++编写全部代码,应该看一下LabWindows/CVI,一个类似于LabVIEW

的编程环境,主要区别是使用C代码代替子图形框图。如果坚持使用LabVIEW也可以,只在需要时使用传统的代码。

LabVIEW提供了3个选项来调用编译过的外部代码:

1, 通过SystemExec.vi使用命令行方式。

 

2, 使用CallLibrary Function Node调用动态链接库和DLL。

动态链接库(dynamic link library或者缩写DLL)是windows操作系统下,实现共享函数库概念的一种方式。

动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL文件中,该DLL包含一个或者多个已经被编译、链接并与使用他们的进程分开存储的函数。

 

3,使用CodeInterface Node与编译过的代码交互。

 

 



 

《LabVIEW宝典》

9.4.3math script函数和脚本文件

MathScript中,M函数和M脚本都是M文件表示,但那时性质不同。C语言中,函数内部可以定义局部变量,作用域是函数内部,MathScript也类似,函数结束后,局部变量不存在。M脚本文件不同,它内部定义的变量并非定义在函数内部,而是定义在MathScript的工作区。

M函数如下:

Function [output1, output2] =hanshuming [input1 , input2 …. ]

M脚本文件:

X = linspace(0 ,2*pi , 100);

………

引用MathScript是利用其强大的数据处理能力和显示功能。因为它基本的数据结构是矩阵。

常用数据统计函数:

方差、微分、积分、插值。

数据的图形显示:

 

 

MathScript节点可以确定输入输出变量的数据类型。其他脚本节点,尤其是Matlab脚本节点,无法确定用户创建的输入输出变量的数据类型,必须为这些脚本节点上的输入输出变量赋一个LabVIEW数据类型。


推荐阅读
  • 在进行网络编程时,准确获取本地主机的IP地址是一项基本但重要的任务。Winsock作为20世纪90年代初由Microsoft与多家公司共同制定的Windows平台网络编程接口,为开发者提供了一套高效且易用的工具。通过Winsock,开发者可以轻松实现网络通信功能,并准确获取本地主机的IP地址,从而确保应用程序在网络环境中的稳定运行。此外,了解Winsock的工作原理及其API函数的使用方法,有助于提高开发效率和代码质量。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • Python默认字符解析:深入理解Python中的字符串处理
    在Python中,字符串是编程中最基本且常用的数据类型之一。尽管许多初学者是从C语言开始接触字符串,通常通过经典的“Hello, World!”程序入门,但Python对字符串的处理方式更为灵活和强大。本文将深入探讨Python中的字符串处理机制,包括字符串的创建、操作、格式化以及编码解码等方面,帮助读者全面理解Python字符串的特性和应用。 ... [详细]
  • 如何在Lua中调用C语言编译的动态链接库
    本文介绍了如何在Lua中调用C语言编译的动态链接库。通过详细步骤和示例代码,帮助开发者理解和掌握这一技术。参考了《Lua编程入门》一书中的相关内容,并结合实际操作经验,提供了更加清晰和实用的指导。此外,还探讨了在不同操作系统下编译和链接Lua的方法,为跨平台开发提供了有价值的参考。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 在本文中,我们将深入探讨黑马程序员课程中关于访问修饰符的讲解,重点解析 `private`、`protected`、`public` 和 `internal` 的区别及其应用场景。通过详细的对比和实例分析,帮助读者更好地理解和掌握这些关键概念,为实际编程提供有力支持。 ... [详细]
author-avatar
腾龙娱乐开户
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有