制作一个网站怎么做的,怎样才能接外单 需做网站吗,凡科互动官网登录,外链网盘一、背景知识
1.1 虚拟仪器的定义、组成和应用 虚拟仪器的特点 虚拟仪器的突出特征为“硬件功能软件化”#xff0c;虚拟仪器是在计算机上显示仪器面板#xff0c;将硬件电路完成信号调理和处理功能由计算机程序完成。 虚拟仪器的组成 硬件软件 硬件是基础#xff0c;负责将…
一、背景知识
1.1 虚拟仪器的定义、组成和应用 虚拟仪器的特点 虚拟仪器的突出特征为“硬件功能软件化”虚拟仪器是在计算机上显示仪器面板将硬件电路完成信号调理和处理功能由计算机程序完成。 虚拟仪器的组成 硬件软件 硬件是基础负责将物理信号转换成数字信号。 软件是灵魂负责控制硬件又负责对采集到的数据进行分析、显示和存储。 虚拟仪器的应用 DRLab综合实验平台 1.2 labview软件的应用 labview软件是NI设计平台的核心主要用途 测试测量。至今大部分主流的测试仪器、数据采集设备都拥有专门的 labview驱动程序使用labview可以非常便捷的控制这些硬件设备。程序控制。labview拥有专门用于控制领域的模块——LaBVIEWDSC。除此之外工程控制领域常用的设备、数据线等通常也都带有相应的labview驱动程序。使用labview可以十分方便的编制控制程序。仿真。在设计机电设备之前可以先在计算机上用LaBVIEW搭建仿真原型验证设计的合理性。 注驱动——一种特殊的软件程序其中包含硬件设备的信息便于计算机和软件识别和控制硬件设备。 1.3 常用快捷键 CtrlT可用于左右栏显示labview的前面板和程序框图。 Ctrl鼠标滚轮可快速浏览条件分支。 CtrlE前面板与程序框图前后切换。 二、 基本数据类型
2.1 控件与常量 输入控件与输出控件的区别 输入控件 来自用户的输入 数据源显示控件 给用户的输出 数据的目的地或“接收器” 如何创建控件与常量 控件的两种创建方式 在前面板中通过控件选板创建在程序框图中通过快捷菜单创建 常量的两种创建方式 在程序框图中通过函数选板创建在程序框图中通过快捷菜单创建 labview中数据类型可以通过连线的形状和颜色来分辨 数值型——浮点数、复数——橙色数值型——整型——蓝色布尔型——绿色字符串型——粉色 2.2 数值型
2.2.1 数值类型控件 数值类型控件 创建数值输入控件默认为双精度浮点型DBL可以手动改变数值类型控件鼠标右键-属性-表示法labview中的数值类型主要分三类浮点型、整数型、复数型类型的详细分类如下 图标数据类型EXT扩展精度浮点型DBL双精度浮点型SGL单精度浮点型FXP定点浮点型I6464位整型I32长整型I16双字节整型I8单字节整型U64无符号64位整型U32无字符长整型U16无字符双字节整型U8无字符单字节整型CXY扩展精度复数CDB双精度复数CSG单精度复数 2.2.2 数值类型转换 数值类型转换 强制转换直接在不同数据类型的数值输入输出控件间连线 显示转换非强制转换即温柔转换 程序框图鼠标右键-数值-转换 数值进制转换仅用于整型数值 控件鼠标右键-显示项-基数 2.2.3 课后小练 例一整型数值之间进行进制转换十进制-二进制、八进制、十六进制 例二利用labview实现一个单位换算器 2.3 布尔型
2.3.1 布尔型控件 labview的布尔类型占用一个字节布尔控件的外观分为四大类新式、银色、系统、经典布尔型输入控件分为按钮型布尔输入控件、开关型输入控件 按钮型按下时会改变状态松开时恢复状态。 开关型按下时会改变状态松开时会一直保持在当前稳定的状态直到下一次按下开关。 2.3.2 布尔型控件的机械动作 布尔控件机械动作图标 M表示操作控件时鼠标的动作。 V表示控件的输出值。 RD表示VI读取空间的时刻 布尔控件机械动作类型转换型、触发型 转换型第一行三个类似开关型按下后一直保持值改变的状态。 触发型第二行三个类似按钮型按下后值改变随后又恢复初始状态。 2.4 字符串型
2.4.1 字符串型控件的显示方式 labview字符串控件有四种不同的显示方式 正常显示\代码显示密码显示十六进制显示 2.4.2 字符串型控件的属性 限于单行输入只允许输入一行文本不响应回车换行操作。键入时刷新控件的值在输入每个字符时将同步刷新默认情况未选中表明必须在结束输入时才产生字符串值改变事件。启用自动换行当输入到字符串输入控件的行末尾时将自动转到下一行。 2.5 下拉列表与枚举控件 下拉列表与枚举控件-银色-下拉列表与枚举 下拉列表和枚举都是用文本的方式表示数值. 下拉列表有多种表现形式包括文本下拉列表、菜单下拉列表、图片下拉列表、文本与图片下拉列表。下拉列表用文字或图片表示数字。数字可以是整型数、浮点数也可以是有序值、无序值由用户自定义它代表的数值。枚举控件只能代表整数而且是有序的、自动分配的。 下拉列表与枚举控件的区别 下拉列表属于数值型枚举控件属于枚举型。下拉列表支持任何浮点实数类型枚举只支持三种无符号整型数据U32/U16/U8。下拉列表可以给每个条目设定任意值但不能有数值相同的条目。枚举型按照顺序给每个条目设定一个整数值从0开始之后每个条目加1。在条件结构选择器标签中下拉列表按照每个条目的值判定条件是否满足枚举控件按照每个条目的标签判断条件是否满足。下拉列表通过控件属性设置在程序运行时可动态修改每一项的标签。枚举控件只能在编辑状态下修改枚举类型每一项的标签。下拉列表都是同一种数据类型可以直接相互赋值。而拥有不同条目的枚举属于不同数据类型之间不能直接赋值。 三、程序结构
3.1 循环结构
3.1.1 while循环 while循环的特点 labview中的循环框图运行规律与C语言中的do-while相同都是先执行一次循环再判断是否满足循环条件以确定是否进行下一次循环。 while循环框图 labview中的while循环框图分为三部分循环框架、循环计数变量、循环条件 循环计数变量i返回循环执行次数初始值为0每执行一次循环变量i自动加1循环条件端用于判断循环是否执行。每次循环结束时条件端子会自动检测输入的布尔值。循环条件端有两种可供选择true时停止true时继续 true时停止若判断循环条件端子输入的布尔值为真时循环停止。 true时继续若判断循环条件端子输入的布尔值为真时循环继续。 C中的for循环、while循环、do-while循环循环判断语句都是真时继续 while循环编程注意点 循环体至少执行一次条件端子有两种形式实际应用时可灵活选择避免死循环循环结束条件可以使用错误簇 课后小练 例1labview中利用循环结构计算0~100的和。 猜数游戏编程猜0~100之间的整数直到猜对程序自动停止 3.1.2 for循环 for循环框图 labview中的for循环框图分为三部分循环框架、循环计数、循环总数 循环计数i初始值为0每次循环递增步长为1。循环总数N在程序运行前必须为其赋值该值的数据类型和循环计数数据类型一致均为I32长整型。若将其他数据类型连接到端口for循环会进行强制类型转换将其自动转换为长整型。 for循环的特点 labview的for循环最大特点在于循环次数固定。 故通常用于已知代码循环次数的情况。 labview8.5版本后for循环新增了功能增加条件终止端可提前结束循环。 for循环和while循环的比较 for循环 按照约定的次数执行除非增加了条件终止端可以一次也不执行默认情况下隧道输出的是一个数组需要禁用索引才能输出值 while循环 终止执行由终止条件决定的至少会执行一次默认情况下隧道输出的是一个值需要开启索引才能输出数组 3.1.3 循环自动索引 循环结构的数据隧道 labview循环结构的数据隧道一般有三种 一般隧道索引隧道移位寄存器 数据的传入与传出 数据在循环结构中的传入与传出遵循数据流执行模式。 数据的传入数据会在循环开始前进入。 数据的传出数据会在循环结束后输出。 “启用索引”与“禁用索引” 对于数据输入隧道如果输入的是数组可以通过循环快捷菜单选择“启用索引”或者“禁用索引”。 启用索引每次循环使用数组中的一个元素。禁用索引数组会一次性的输入或输出即操作的是所有数据。 对于数据输出隧道 当“启用索引”时每次循环产生的数据会形成一个数组。当“禁用索引”时数据流出的是最后一次循环所产生的数据。一般来说while循环默认的隧道是“禁用索引”for循环默认的隧道是“启用索引”。 自动索引与for循环次数 当开启索引时for循环可以根据数组长度自动设定循环次数此时循环总数N端子可以不连接任何数据。 3.1.4 移位寄存器 移位寄存器的特性 移位寄存器的依附于循环结构的。使用移位寄存器可以申请一段内存空间用来保存中间运行结果以供下次循环使用。移位寄存器可在循环体之间传递数据将上次循环的值传给下一次循环移位寄存器是数据的容器可以包含任何数据类型运行中的移位寄存器是不允许更改数据类型的。移位寄存器遵循先入先出FIFO。移位寄存器右侧接线端存储循环结束时的数据并在下一次循环开始时出现在左侧接线端。 层叠移位寄存器 在循环中如果需要访问之前多次循环的数据就需要使用层叠移位寄存器。可以通过增加移位寄存器左侧接线端子的数量用来保存前几次的运行结果。移位寄存器左侧端子有几个就可以保存循环前几次的运行结果。当第i次循环开始时移位寄存器左侧每一个端子会将前几次循环由右侧端子存储到缓冲区的数据送出来左侧第一个端子送出的是第i-1次循环时存储的数据左侧第二个端子送出的是第i-2次循环时存储的数据依此类推。 初始化移位寄存器 移位寄存器在使用之前还需要初始化否则它内部保存的初始数据是毫无意义的。 反馈节点 反馈节点与移位寄存器在本质上是相同的。如果单纯是为了让下一次迭代使用上次迭代的数据也可以使用反馈节点。 3.2 条件结构
3.2.1 条件结构的基本构成 基本的条件结构由以下几个基本元素组成 条件选择器接线端它连接的数据类型可以是布尔型、错误簇、数值型、枚举型、下拉列表、字符串等。条件分支增减按钮用于浏览前一个或下一个分支具有自动回卷功能即到达最后一个后自动回卷到第一个条件分支反之向前浏览到最前面分支会自动回卷到最后面的分支。条件分支下拉列表以下拉列表的方式显示所有分支列表可以在这里选择需要的分支。条件标签用文本的形式表现当前分支的条件工具选板-编辑文本。结构体条件分支中的空白部分用来输入程序框图。 3.2.2 条件结构的输入 labview的条件结构可以接受多种数据类型输入可以构成各种复杂的条件结构下面列出条件结构中的几种典型输入 布尔型输入相当于C语言中的if-else结构只有真、假两个分支。默认创建的条件结构就是布尔型输入的。错误簇输入错误簇输入的条件结构常用创建子VI。创建方式1.文件-新建N-VI-基于模板-框架-带错误处理的子VI。2.新建VI-选择条件框架-给条件结构接线端连接错误簇-绿色边框正确分支红色边框错误分支。数值型输入由于条件结构的限制labview只允许有符号整数和无符号整数作为条件结构的输入。单精度和双精度浮点数作为输入时会自动转换为有符号整数。对于整数数值型输入一个分支可以表示一个数值选择或多个数值选择。条件标签中数值型输入的表示方法有很多种 分支标签中的输入含义135表示1、3、5三个数的列表方法1...20表示包含1~20范围内的所有整数...10是范围开端口表示法指所有小于等于10的整数10...是范围开端口表示法值所有大于等于10的整数...10,11,13,20是列表和范围的混合表示法表示小于等于10的整数、11、13和大于等于20的整数a...d字符串范围是a,b,c但不包含da...d,d字符串范围是a,b,c,d 注数值型必须要有默认分支。枚举型输入枚举型输入的条件结构具有其他类型输入的条件结构无法比拟的特点。枚举型数据在条件结构标签中显示的是枚举的字符串能够更直观的说明分支的具体用途。下拉列表输入与数值型输入的条件结构类似这也表明了下拉列表数据类型本质上就是数值型。字符串输入labview条件结构的强大功能还在于条件选择器接线端可以接收字符串或组合框等。使用labview的条件结构可以处理字符串命令这在仪表通信中非常重要。编辑条件标签文本时不要加引号编辑完成后labview自动添加。 3.2.3 条件结构的输出 条件结构的输出有两种方式 在条件分支内部输出数据通过数据输出隧道在条件结构外部输出数据 注尽量避免在分支内部输出数据应该通过隧道输出特别是调用子VI时。 条件结构的分支输出隧道有三种形式 实心方框表示数据已连接。空心方框表示有分支未连接此时程序错误无法运行。半空心状态表示有分支未连接但使用默认值。 3.3 顺序结构
3.3.1 平铺式顺序结构 程序执行顺序 传统文本编辑语言的语句是按照顺序从上到下逐条进行。labview程序是由数据流驱动。若程序中有两个无数据线连接的程序则labview自动把它们放置到不同的线程中并行执行自动多线程。 在labview中顺序结构有两种平铺式和层叠式。 平铺式顺序结构的创建 顺序结构执行时会按照帧的顺序由小到大依次执行。平铺式顺序结构更利于代码的阅读、更直观。平铺式顺序结构在外形上是平铺占用更多空间。 3.3.2 层叠式顺序结构 从本质上看平铺式顺序结构和层叠式顺序结构是相同的二者可以相互转换。 层叠式顺序结构的创建 层叠式顺序结构适用于帧数量较多的场合。层叠式顺序结构将每帧代码都叠放隐藏用户只能看到其中一帧。优点节省程序框图空间。缺点代码不直观可读性较差。 3.3.3 顺序结构中帧间的传递 平铺式数据结构主要采用隧道来实现帧间的数据传递。 层叠式数据结构主要采用顺序局部变量来实现帧间的数据传递。顺序局部变量上的箭头表示数据流动方向 顺序局部变量 顺序局部变量的使用使得层叠式顺序结构可读性降低顺序局部变量只能通过翻看结构中的每一帧来找到数据源和接收数据的节点其次由于一个顺序局部变量在每一帧的位置都固定导致某些数据线上数据流动方向与从左向右的习惯不符。 labview编程的主要特点是数据流形式这便于VI按照并行方式运行优化了程序的计算性能。 顺序结构强行中断了labview固有的数据流程人为规定了运行次序禁止程序并行操作而且顺序结构不能从指定的某帧开始执行只能从第0帧开始直到最后一帧结束在顺序执行中途不能停止该执行。所以用户在编程时应尽量不用或少用顺序结构只有在必要的时候才使用。 3.3.4 局部变量 局部变量的定义 局部变量的作用域是局部的它用于单个VI中传输数据。局部变量 不能单独存在与某个输入控件或显示控件对应。局部变量代表控件的值的属性而不是控件的本身。一个控件可以生成数量不受限制的局部变量每一个局部变量都需要复制它所代表的控件所包含的数据。 局部变量的创建 局部变量既可以用作写入数据也可以作为读出数据。右键快捷菜单-转换为读取/转换为写入即可改变局部变量的数据流向。 局部变量的典型应用 初始化 程序启动时控件的初始化很重要虽然在编程时可以设置控件的默认值但有时候启动初始值往往与上次结束时的状态有关。 把数据写入输入控件或从显示控件读取数据并行循环间共享数据 注意事项 每一个局部变量都要引起数据的复制小号更多内存。大的数据结构不宜使用局部变量因为复制内存所以局部变量的运行速度远快于控件的值属性。局部变量的使用还可能引起数据竞争。因此在使用局部变量之前要仔细斟酌。 四、数组及数组函数
4.1 数组的创建
4.1.1 数组的定义 数组是相同类型元素的集合。labview中的数组元素可以为任意数值类型数值型、布尔型、字符串型、路径、波形、簇但不能是数组、图表、图形。数组元素必须同时都是输入控件或同事都是显示控件。 数组的元素和维度 数组由元素和维度组成元素是组成数组的数据而维度是数组的长度、高度或深度。 数组元素的索引 对数组元素的访问是通过索引进行的索引从0开始索引值的范围是0~n-1其中n是数组中元素的个数。 4.1.2 数组的创建 在前面板上创建数组控件 在程序框图中创建数组常量 采用循环结构产生数组 采用数组函数创建数组 4.2 数组的运算
4.2.1 数组的运算函数 labview中有些函数专门针对数组例如计算数组长度、排序、计算最大值最小值。也有一些函数本来用于数值类型、布尔类型等数据的计算也可直接用于对相应数据类型的数组进行计算。 labview可以根据输入数据的类型判断相应的运算方法即自动实现多态。例如在labview中可以直接将两个数组相加labview会自动根据数组大小、数据类型决定相应的运算方法。 4.2.2 数组之间的加减乘除运算 对于加减乘除数组之间的运算满足以下规则 相同维度、相同大小的数组运算 将两个数组中索引相同的元素进行运算形成一个新的数组。 相同维度、不同大小的数组运算 将忽略较大数组多出来的部分。 数组与标量的运算 将数组的每个元素都和该数值进行运算。 空数组 相同维度的数组与空数组进行运算结果为空数组。 4.2.3 数组之间的比较运算 对于比较函数数组之间的运算规则 可在右键菜单中选择“比较元素”或“比较集合” “比较元素”是对两个数组中对应的每一个元素分别进行对比比较结果构成一个同长度的布尔型数组。 “比较集合”把数组整体作为一个数据与另一个数组比较结果为真或假。 4.3 数组函数的使用 在labview中提供了大量VI函数用于数组相关的操作这些函数的功能十分强大使用非常灵活参数也很多变。同一问题往往可以用多种函数来解决因此仔细分析它们的用法非常重要下面对常用的一些数组函数进行举例说明 数组大小函数 通过该函数返回数组每个维度中元素的个数。对于一维数组该函数返回一个I32位整型数值表示一维数组的长度。对于二维或多维函数则返回一个元素为I32类型的数组数组中每一个元素表示对应维数的大小。 索引数组函数 通过该函数主要用于返回数组的元素或子数组。对于一维数组该函数返回其中某个元素。对于二维或多维数组该函数不仅可以返回数组中的某个元素还可以返回数组的某行或某列。 替换数组子集函数 该函数功能是从索引中指定的位置开始替换数组中的某个元素或子数组。“索引”输入端子如果不连接则默认从0开始替换。若索引号和子数组长度大于原数组长度则只替换到末尾多余部分将被省略。 数组插入函数 该函数功能是在n维数组中索引指定的位置插入元素或子数组。如果未连接索引则自动将新增内容加至数组末尾。如果指定的索引超出原数组范围则操作被忽略。 删除数组元素函数 该函数从数组删除一个元素或子数组输出端子将返回删除后的数组子集和已删除的元素或子集。当索引未连接时自动从数组末尾开始删除。 初始化数组函数 函数功能是创建n维数组每个元素都初始化为元素的值。数组大小定义的是数组的长度向下拖动“维数大小”输入端可以增加维数。初始化数组的维数可为0如果维数为0则初始化后的数组为空数组。 创建数组函数 该函数有两个功能 可将多个数组合并为一个数组可将新的数组或数组元素连接到数组尾端 在该函数的快捷菜单中选择“连接输入”选项可以将输入数组连接起来否则将数组合并为高一维的数组。 数组最大值与最小值函数 该函数返回数组中最大、最小值及其索引。 一维数组排序函数 该函数返回元素按升序排序的数组。如需要降序排列对升序数组反转即可加个反转一维数组函数。 搜索一维数组函数 此函数搜索一维数组中是否存在指定元素。如果存在则返回元素的索引号如果不存在返回-1。搜索到第一个符合条件的元素后搜索立即停止如果需要搜索多个或全部符合条件的元素可以通过while循环来实现。 一维数组移位函数 当输入参数n0时该函数将数组最后n个元素置于前端。 当输入参数n0时该函数将数组前面n个元素至于后端。 数组至簇和簇至数组函数 数组至簇函数将一维数组转换为簇簇元素和一维数组元素类型相同。数组可以自由改变大小而簇的大小是固定的。这就需要在转换之前手动指定簇的大小右键单击函数快捷菜单“簇大小”设置簇中元素的数量。簇的大小默认是9最大是256。簇至数组函数该函数要求转换的簇元素类型必须相同。 五、簇及簇函数
5.1 簇的创建
5.1.1 什么是簇 簇是由不同类型的数据元素组成的一种数据类型。使用簇可以为编程带来便利 把程序框图中不同数据类型的多个数据捆绑成簇减少连线混乱。子VI中有多个不同数据类型的参数输入输出时将某些控件组成一个簇可以减少连接板上的接线端数量。 5.1.2 簇的创建 创建方式 在前面板创建簇输入控件和显示控件。 注簇不能同时含有输入控件和显示控件 在程序框图中创建簇常量。 粉色——混合簇 褐色——数值簇 5.1.3 错误簇 控件选板-选择“数组、矩阵与簇”-选择“错误输入3D”和“错误输出3D” 黄褐色——错误簇 labview使用错误簇返回错误信息。错误簇包含的元素 状态——布尔值产生错误时布尔值为真。而无错误时布尔值为假。错误代码——32位有符号整数标识错误代码。错误源——字符串标识错误发生的位置 5.2 簇元素顺序
5.2.1 簇的大小 簇的大小固定簇元素相互独立不同数据类型的多个元素。自动调整簇外观大小。无、匹配大小、垂直排列、水平排列 5.2.2 簇元素顺序 簇的逻辑次序簇元素顺序与元素控件的位置无关。簇元素重新排序 右键垂直排列or水平排列-右键重新排序簇中控件-白框为原来顺序黑框会更改后顺序-确认 5.2.3 簇与数组的比较 簇可以包含不同数据类型数组仅包含一种数据类型。簇与数组都只能包含输入控件或显示控件不能同时包含两种控件。 5.3 簇函数使用 本讲主要讲解一些常见的簇函数 位于程序框图-簇、类与变体 “解除捆绑”与“捆绑”函数 解除捆绑函数功能是把一个簇中的每个元素进行分解并将分解后的元素输出。捆绑函数有两种用法。 a.用捆绑函数将几个元素捆绑成一个簇——组合簇。 b.用捆绑函数替换一个簇中的几个元素——替换簇元素。 “按名称解除捆绑”与“按名称捆绑”函数 按名称接触捆绑函数按名称解除捆绑函数按指定的元素名称从簇中提取元素。按名称捆绑函数按名称捆绑函数是按簇中元素的名称替换簇中的元素。输入簇端子必须接线。 数组与簇互换函数 数组至簇转换函数把输入的一维数组转换为簇。簇至数组转换函数把输入的簇转换为一维数组簇元素数据类型必须一致。 六、图形显示器
6.1 波形图标 6.2 波形图 6.3 XY图 6.4 强度图 6.5 二维图片 七、子VI设计
7.1 图标和连线板设计 7.2 创建子VI 7.3 多态VI 7.4 可重入VI 八、条件结构 九、DAQ数据采集程序设计 十、顺序结构