LabVIEW程序设计

成绩评定表

课程设计任务书

目录

1 目的及基本要求 (1)

2 梭哈游戏原理 (1)

2.1 梭哈游戏原理 (1)

2.2 流程图 (2)

2.3设计步骤 (3)

3 梭哈设计和仿真 (5)

3.1 总体程序设计 (5)

3.2 各功能模块详细设计 (7)

4 结果及性能分析 (11)

4.1 运行结果 (11)

4.2 性能分析 (13)

参考文献 (14)

摘要

虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。

本文介绍了利用LabVIEW语言来实现梭哈纸牌游戏的设计,并从软、硬件两个方面阐述了设计思想。经过实验调试,系统达到了预期的目标。

关键词:虚拟仪器Labview 梭哈游戏

1 目的及基本要求

熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现梭哈游戏的设计和仿真。

此次设计是基于labview环境的软件仿真设计,目的是仿真一个梭哈小游戏,它的硬件需求是一台安装该软件的电脑,软件设计需要实现它的所有功能包括以下:

判断是否出千

判断赢家

重新洗牌

等级评价等

2 梭哈游戏原理

梭哈,又称沙蟹、谷啤,学名Five Card Stud,是扑克游戏的一种。以五张牌的排列组合、点数和花色大小决定胜负。游戏开始时,每名玩家会获发一张底牌,此牌为暗牌;当派发第二张牌后,便由牌面大者决定下注额,其他人有权选择“跟注”、“加注”或“放弃”。当五张牌派发完毕后,各玩家翻开所有底牌来比较,梭哈在全世界纸牌游戏地位非常高,深受人们的喜爱。

梭哈是一款扑克游戏,游戏是取黑桃、红桃、草花、方片四种花色的扑克进行游戏,港式五张游戏使用28张扑克牌。游戏人数可为2―5人。

2.1 梭哈游戏原理

各家一张底牌,底牌要到决胜负时才可翻开。从发第二张牌开始,每发一张牌,以牌面大者为先,进行下注。有人下注,想继续玩下去的人,选择跟,跟注后会下注到和上家相同的筹码,或可选择加注,各家如果觉得自己的牌况不妙,不想继续,可以选择放弃,认赔等待牌局结束,先前跟过的筹码,亦无法取回。

2.3 设计步骤

1、先发给各家一张底牌,底牌除本人外,要到决胜负时才可翻开。

2、从发第二张牌开始,每发一张牌,以牌面发展最佳者为优先,进行下注。

3、有人下注,想继续玩下去的人,要跟注,跟注后会下注到和上家相同的筹码,或可选择加注。

4、各家如果觉得自己的牌况不妙,不想继续,可以放弃下注,先前跟过的筹码,亦无法取回。

5、牌面最大的人可赢得桌面所有的筹码。当多家放弃,已经下的注不能收回,并且赢家的底牌不掀开。

6、纸牌种类:港式五张牌游戏用的是扑克牌,取各门花色的牌中的“8、9、10、J、Q、K、A”,共28张牌。

3 梭哈游戏的设计和仿真

一副扑克牌,取各门花色的8、9、10、J、Q、K、A,花色有黑、红、梅、方四种。共28张牌。

牌型比较:同花顺>铁支>葫芦>同花>顺子>三条>两对>对子>散牌。

数字比较:A>K>Q>J>10>9>8>7>6>5>4>3>2。

花色比较:黑>红>梅>方。

关于A2345,这手牌可以算顺子,梭哈里边是第二大顺。

图1 有关控件

图2 有关控件

图3 有关控件

3.1 总体程序设计

同花顺拥有五张连续性同花色的顺子。以A为首的同花顺最大。

铁支四张相同数字的牌,外加一单张。比四张的数字大小,“A”铁支最大。

葫芦由三张加一个对子所组成的牌,若别家也有此牌型,则比三条大小。

同花不构成顺子的五张同花色的牌。先比数字最大的单张,如相同再比第二张,以此类推。

顺子五张连续数字的牌组。以A为首的顺子最大,如果大家都是顺子,比最大的一张牌,大小一样比花色。

三条牌型由三张相同的牌组成,以A为首最大。

二对港式五张牌由两组两张同数字的牌组成。若遇相同先比这副牌中对子最大的,如相同再比第二对,再比剩下单牌的点数。

对子牌型由两张相同的牌加上三张单牌组成。如果大家都是对子,比对子的大小,如果对子也一样,比剩下三张单牌的大小,如果还是相同则比较对子中

的最大花色。

散牌单一形态的五张散牌组成,无法组成其他任何牌型。先比最大的一张牌的大小,如果大小一样比较花色。

出千如果在明牌中出现有花色和数字都一样的牌(简单而言,就是出现两张或多张同样的牌出现时候),那可以判断必有人出千,那么在这局牌上,所涉及到的玩家(例如A和B都有同一张黑桃K,那么A和B都按出千取消此局资格,剩下的玩家可以继续赌牌,最后的底牌不会出现出千的情况。)

(1)主程序前面板

图4 梭哈游戏主体前面板

(2)主程序后面板程序

图5 梭哈游戏主体后面板程序

3.2 各功能模块详细设计

(1)检查赢家

图6 检查赢家模块前面板

图7 检查赢家模块后面板程序(2)检查洗牌

图8 洗牌模块前面板

图9 洗牌模块后面板程序(3)等级评价

图10 等级评价模块前面板

(4)计数数组

图12 计数数组模块前面板

图13 计数数组模块后面板程序(5)检查出千

图14 检查出千前面板

图15 检查出千后面板程序

(6)发现有价值牌的颜色

图16 价值牌颜色模块前面板

图17 价值牌颜色模块后面板程序4 结果及性能分析

4.1 运行结果

不同参数下的运行结果如图18-20。

图18 梭哈游戏运行结果一

图19 梭哈游戏运行结果二

图20 梭哈游戏运行结果三

4.2 性能分析

出千分析:

首先遍历16张明牌,获得出千判定。

4人出千:所有胜率均输出为0,无需进行概率计算。

3人出千:3人胜率输出为0,另一人胜率为100,无需进行概率计算。

2人出千:2人胜率输出为0,另2人进行概率计算,需统计底牌数量。

1人出千:1人胜率输出为0,另3人进行概率计算,需统计底牌数量。

0人出千:4人进行概率统计,此时共有52-16=36张底牌。

参考文献

[1] labview入门与提高.赵品编著.人民邮电出版社.2000.11

[2] labview 高级应用.赵品编著.人民邮电出版社.2000.11

[3] labview印刷电路板设计教程.肖玲妮编著.清华大学出版社.2003.08

[4] labview完全自学手册.龙马工作室编著.人民邮电出版社.2005.10

LabVIEW程序设计步骤

LabVIEW 程序设计步骤 下面通过一个设计实例来详细介绍虚拟仪器软件LabVIEW 的程序设计步骤。 设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时,需通过指示灯颜色变化发出警告。 1 建立新VI 启动LabVIEW 程序,单击VI 按钮,建立一个新VI 程序。 这时将同时打开LabVIEW 的前面板和后面板(框图程序面板)。在前面板中显示控件选板,在后面板中显示函数选板。在两个面板中都显示工具选板。 如果选板没有被显示出来,可以通过菜单查看(View )/工具选板(Tools Palette )来显示工具选板,通过查看(View )/控件选板(Controls Palette )显示控件选板,通过查看(View )/函数选板(Functions Palette )显示函数选板。 也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。 2 前面板设计 输入控制和输出显示可以从控件选板的各个子选板中选取。 本例中,程序前面板中应有1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4个控件。 1)往前面板添加1个旋钮控件:控件(Controls )→ 新式(Modern ) → 数值(Numeric ) → 旋钮(Knob ),如图2-14所示,标签改为“调压旋钮”; 2)往前面板添加1个仪表控件:控件(Controls )→ 新式(Modern ) → 数值(Numeric ) → 仪表(Meter ),如图2-14所示,标签改为“电压表”。 3)往前面板添加1个指示灯控件:控件(Controls )→ 新式(Modern )→ 布尔(Boolean ) → 圆形指示灯(Round LED ),如图2-15所示,将标签改为“上限灯”。 4)往前面板添加1个停止按钮控件:控件(Controls )→ 新式(Modern )→ 布尔 图2-15 添加指示灯、按钮控件 图2-14 添加旋钮、仪表控件

LABview 程序设计

基于Labview的ADD波形 第一部分:概述 随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,仪器技术领域发生了巨大的变化,美商国家仪器公司(National Instruments)于八十年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。 本次就是一个基于labview平台的一次设计来达到对虚拟仪器课程的掌握,尽量使用学习到知识,在设计过程中有些部分存在对于总体设计影响不大,仅仅作为对知识的巩固。 本次的ADD waveforms 设计能够对两种不同的信号进行的运算,由于现有的示波器仅能对两组波形进行简单的加减,而ADD waveforms能够进行除加减意外的乘除运算。 第二部分:设计的思路与基本原理 本次设计是基于labiew界面的一个虚拟仪器的设计,所设计的虚拟仪器要具有对一个正弦波、一个三角波进行各种合成运算的功能,可完成add、divide、multip、subtra四种基本数学运算的功能。 通过以上的目标,我们可以分别选择能产生三角波、正弦波的子VI,再通过一个条件结构来确定每次输入的波形需要进行那种运算,然后在波形图中显示出来以供观察,最后可以比较ADD前的波形与ADD之后的,同时对最终信号进行了频谱分析。 本次设计结构主要有这基本分组成:条件结构、信号产生子VI、信号合并、波形验证部分、控制开关部分、频谱分析部分。在接下来的部分会对这些部分做详细的介绍。 第三部分:设计模块与元器件的介绍

labview基本程序设计

虚拟仪器导论 实验报告 目录 一.实验目的

二.实验原理 2.1 一阶系统状态空间表达式 2.2 四阶龙格—库塔法 2.3 PID控制算法 三.实验内容 四.实验报告 4.1一阶系统仿真前面板 4.2 一阶系统仿真程序框图 五.实验分析 5.1 一阶系统特点 5.2 PID参数对控制系统性能的影响 5.3 PID参数整定方法 六.实验总结 实验二 LabVIEW基本程序设计 一、实验目的 (1) 熟悉LabVIEW 8.5开发环境; (2) 掌握LabVIEW编程语言的程序结构和图形控件的使用方法; (3) 掌握LabVIEW编程环境的程序调试方法; 二、实验原理与内容 已知一阶系统状态空间表达式

x y u x x = + - =2 2.0 编程时可采用4阶龙格-库塔算法求解上述方程: K1 = -0.2*X(k)+2*u(k); K2 = -0.2*(X(k)+0.5*T*K1)+2*u(k); K3 = -0.2*(X(k)+0.5*T*K2)+2*u(k); K4 = -0.2*(X(k)+T*K3)+2*u(k); X(k+1) = X(k)+(K1+2*K2+2*K3+K4)*T/6; Y = X(k+1); 控制算法可采用增量式PID控制算法: du = Kp*(e(k)-e(k-1))+T/Ti*e(k)+Td/T*(e(k)-2*e(k-1)+e(k-2)); u(k) = u(k-1)+du; 本实验要求基于LabVIEW编程环境,针对上述一阶系统进行控制仿真。通过控制系统仿真,分析一阶系统的特点和各个PID参数对控制系统性能的影响。 三、实验报告 (1)简述实验目的及实验原理。 (2)完成实验内容,并附上前面板和程序框图。 (3)分析一阶系统特点和各PID参数对控制系统性能的影响,总结PID参数整定的方法。 (4)总结在编程过程中遇到的问题、解决办法。

基于labview的贪吃蛇游戏程序设计

成绩评定表

课程设计任务书

目录 1 目的及基本要求 0 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小 蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为 “苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的 身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 0 4.1 运行结果 (8)

1 目的及基本要求 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。 2 贪吃蛇游戏设计原理 贪吃蛇游戏大体上可分为以下几个部分: 1) 控制部分就是通过输入输出来控制蛇的运动 2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算 3) 图象显示部分就是将游戏显示出来 本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋; 4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续; 5.游戏可以有多种难度选择等 3 贪吃蛇游戏设计与仿真 3.1 前面板设计 采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。对XY图的属性做如下修改:

LabVIEW和声卡控制系统程序设计

LabVIEW和声卡控制系统程序设计 1 引言 目前,控制系统的编程软件非常多,各类编程语言也数不胜数,具有代表性的有C语言、C++及汇编语言等,相比LabVIEW软件来讲,由于他们具有严格的语言逻辑以及语言规则,所有在设计、实践中往往比较复杂,而LabVIEW作为一种G语言,以图形,线条,结点的形式进行编程,简单易学。而且图形所表示的功能已经用完善的代码集成过,拿来就用,也节省了大量的工作任务。声卡作为一种普遍而且常用的材料,能够在LabVIEW自带的声卡VI中得到更好的运用和体现,二者结合是作为平面控制系统最实用的,最方便的,而且成本较低的体现。 2 LabVIEW软件介绍 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是它与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G 编写程序,产生的程序是框图的形式。用图标代替文本行创建应用程序的图形化编程语言,LabVIEW采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。虚拟仪器

具备很好的数据采集、仿真、数字信号处理的功能。LabVIEW 拥有专门用于控制领域的模块――LabVIEWDSC以及 NI-Motion。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。 3 声卡介绍 3.1 PCI声卡 PCI声卡就是指采用PCI接口的独立声卡,PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。从结构上看,PCI是在CPU 的供应商和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。 3.2 USB声卡 USB声卡在原理上和结构上与普通的板载声卡很相似,但是由于USB具有其外置特点,他就没有了电路体积的限制,所以他能够通过复杂的模拟电路并采用更好的屏蔽设计从 而提高音质。脱离机箱,拥有不错的音质使他在性能上,实用性上得到了很大的提升,价格也相对较低,因此我们采用的是USB声卡作为平面控制系统的输出部分。 4 LabVIEW程序设计

LabVIEW程序设计-课程设计

LabVIEW程序设计-课程设计 成绩评定表 学生姓名班级学号 基于UDP的点对点专业通信工程课程设计题目 和广播通信 评 语 组长签字: 成绩 20 年月日日期 沈阳理工大学信息科学与工程 课程设计任务书 学院信息科学与工程学院专业通信工程学生姓名班级学号课程设计题目基于UDP的点对点和广播通信实践教学要求与任务: 1,学习LabVIEW的虚拟仪器原理、设计方法和实现技巧, 2(掌握简单LabVIEW程序的编程实现, 3(掌握简单通信系统设计和分析方法, 4(采用Labview语言,实现点对点和广播通信。 ,1,通过检索、查资料、调查研究、确定方案、画出组成系统结构方框图,,2,采用LabVIEW实现点对点和广播通信系统, ,3,系统调试与改进,调整系统参数,分析系统运行结果, ,4,写出设计总结报告。 工作计划与进度安排:

17周学习LabVIEW虚拟仪器原理、设计方法和实现技巧,掌握简单LabVIEW程序的编程实现,掌握简单通信系统设计和分析方法。 19周采用LabVIEW语言,实现点对点和广播通信,并对系统进行性能分析。 指导教师: 专业负责人: 学院教学副院长: 201 年月日 201 年月日 201 年月日 2 沈阳理工大学信息科学与工程 目录 1(概述 ........................................... 4 1.1 LABVIEW简 介 ......................................... 4 2.2 UDP协议简 介 ........................................ 4 2.基于UDP的点对点和广播通信的设计原理 ............ 5 3(基于UDP的点对点和广播通信的程序设 计 ........... 5 3.1 前面板设计 ......................................... 5 3.2 程序框图(后面板)设计 (7) 3.2.1 后面板设计概述 (7) 3.2.2 打开/关闭本地UDP端口功能 (8) 3.2.3 选择广播或者点对点方式发送数据功能设计 (9) 3.2.4 发送数据功能设计 (9) 3.2.5 接受数据功能设计 ........................... 10 4.程序调 试 ....................................... 10 5.总 结 ........................................... 12 6.参考文 献 (13) 3 沈阳理工大学信息科学与工程

labview课程设计

《虚拟仪器》课程设计 题目:摩托车仪表盘 学院名称:物理与电子工程学院 专业班级:电子信息科学与技术 学生姓名:方皖南 学号: 201540620302 指导教师:胡楠 时间:2018-10-25

目录 一、labVIEW介绍 (3) 二、摩托车仪表盘的设计 (4) 2.1前面板图示 (4) 2.2程序框图 (4) 2.3程序说明 (5) (1)左转灯以及右转灯的控制 (5) (2)让左右等闪烁的控制 (6) (3)里程表控制 (6) (4)速度表控制 (7) (5)油罐的控制 (7) (6)所有数值归零控制 (7) 三、设计小结 (7) 四、参考文献 (8)

一、labVIEW介绍 LabVIEW (Laboratory Virtual Instrument EngineeringWorkbench,实验室虚拟仪器集成环境)是一个基于G(Graphic)语言的图形编程开发环境,在工业界和学术界中广泛用作开发数据采集系统、仪器控制软件和分析软件的标准语言,对于科学研究和工程应用来说是很理想的语言。它含有种类丰富的函数库,科学家和工程师们利用它可以方便灵活地搭建功能强大的测试系统。LabVIEW编程语言最主要的两个特点是图形化编程和数据流驱动:(1)图形化编程 LabVIEW与Visual C++、Visual Basic、LabWindows/CVI等编程语言不同,后几种都是基于文本的语言,而LabVIEW则是使用图形化程序设计语言G语言,用框图代替了传统的程序代码,编程的过程即是使用图形符号表达程序行为的过程,源代码不是文本而是框图。一个VI有三个主要部分组成:框图、前面板和图标/连接器。框图是程序代码的图形表示。 LabVIEW的框图中使用了丰富的设备和模块图标,与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常的相似。多样化的图标和丰富的色彩也给用户带来不一样的体验和乐趣。 前面板是VI的交互式用户界面,外观和功能都类似于传统仪器面板,用户的输入数据通过前面板传递给框图,计算和分析结果也在前面板上以数字、图形、表格等各种不同方式显示出来。 图标是VI的图形符号,连接器则用来定义输入和输出,每一个VI都有图标和连接器。用户要做的工作就是恰当地设置参数,并连接各个子VI。编程一般步骤就是使用鼠标选取合适的模块、连线和设置参数的过程,与烦琐枯燥的文本编程相比更为简单、生动和直观。 如果将虚拟仪器与传统仪器作一类比,前面板就像是仪器的操作和显示面板,提供各种参数的设置和数据的显示,框图就像是仪器内部的印刷电路板,是仪器的核心部分,对用户来讲是透明的,而图标和连接器可以比作电路板上的电子元器件和集成电路,保证了仪器正常的逻辑和运算功能。 (2)数据流驱动 宏观上讲,LabVIEW的运行机制已不再是传统上的冯·诺伊曼式计算机体系结构的执行方式了。传统计算机语言(如C语言)中的顺序执行结构在LabVIEW中被并行机制所代替。本质上讲它是一种带有图形控制流结构的数据流模式,程序中的每一个函数节点只有在获得它的全部输入数据后才能够被执行。既然LabVIEW程序是数据流驱动的,数据流程序设计规定,一个目标只有当它的所有输入有效时才能够被执行;而目标的输出只有当它的功能完全时才是有效的。于是LabVIEW中被连接的函数节点之间的数据流控制着程序的执行次序,而

LabVIEW程序设计方法

LabVIEW程序设计方法 为了提高程序设计效率、保证程序设计质量、便于程序的维护,在设计程序时应遵循一些基本的设计方法。 当开发一个较大的项目时,有必要使用由顶向下的设计方法。LabVIEW语言在使用由顶向下的设计方法上,比其他语言有优势,因为可以先做出用户的接口,然后再逐渐完善它。 1.使用由顶向下的设计方法 1)用户需求列表 先列出一个表格,包括用于用户操作的面板(指大的程序中需要弹出的子程序的面板),这些面板上一般包含控制量与显示量类型,实时分析需求以及数据的表达等。然后创建一个临时的前面板,提供给预期的用户。通过一系列交互的过程,按用户的要求反复调整用户接口。在这个阶段,可能还需要做一些底层的调研,确定可以达到预期的设计要求。 2)设计程序的层次结构 LabVIEW语言的强大功能建立在它的层次特性之上。每创建一个程序,就可以在高层程序的框图中把它当做子程序使用。在这种层次结构下,从本质上说层数是无限的。 确定所需顶层模块之后,使用这些顶层模块创建程序代码。为每个模块创建一个子程序,这个子程序不具备任何功能,只是代表未来子程序的一个模型。每个子程序应有一个图标和一个包括所有必要的输入输出量的前面板。但是暂时不必为它创建程序代码,而是确认它是否为顶层程序所必需的。 把这些模型程序组合在一起后,一般说来就应该去理解每个模块的功能,以及它们如何提供需要的结果。研究每一个模块是否能提供后续程序所必需的信息,然后确认顶层程序代码包含了各程序间传递数据的正确连线。 尽量避免使用不必要的全局变量,因为它们会掩盖了程序间的数据依存关系。对一个大的程序来说,如果依赖全局变量作为程序间传递信息的手段,会使调试变得困难。 3)程序编码 在程序编制过程中,应按照工作的逻辑划分和考虑代码复用的可能性,通过创建子程序实现模块化的编程,把解决一般性问题与特殊问题相结合。 子程序创建以后及时调试。高层的调试尽管是不可避免的,但是在一个小模块中发现程序缺陷要比在多个程序的层次上方便得多。 2.规划接口板 有些子程序尽管已经具备足够的功能,但有时考虑在此基础上修改为其他的函数,并且新的函数有可能需要增加输入或输出,那么应该选择一个有富裕端口的接口板样式,暂时不为那些多余端口连线。这样,以后如果需要另外的输入或输出时就不必再改变接口板了,从而减小这些改变对整个层次结构的影响。 把控制量和显示量连接到接口板时,把输入量放在左侧,输出量放在右侧。这样可以避免程序中连线的混乱。 如果创建了一组经常用在一起的子程序,尽量使它们的接口板一致,通用的输入放在同样的位置。这样容易记住每个输入的位置,而不必再使用帮助窗口。如果我们创建了一个子程序它产生的输出是另一个子程序的输入,尽量将输入与输出端口对齐。这种技巧使连线看上去简洁。

Labview程序设计

《Labview程序设计》教学大纲 课程名称:Labview程序设计 学分:2.5 总学时:40 讲课学时:24 实验学时:16 考核方式:考试 先修课程:《C语言》、《计算机技术基础》、《单片机原理及应用》 适用专业:机械电子工程 开课系或教研室:机械电子工程 一、课程性质与任务 1.课程性质 本课程是机械电子工程专业的专业任选课。 2.课程任务 (1)了解LabVIEW的功能,熟悉LabVIEW的开发环境、VI的组成与创建步骤。 (2)熟悉LabVIEW的数据类型、数组控件及常量的创建与使用、簇及常量的创建与使用。 (3)掌握For/While Loop (Shift Register、Auto-indexing)、Charts与Graphs的概念、创建与使用。 (4)掌握Case Structure、Sequence Structure与Formula Node的创建与使用。 (5)掌握LabVIEW中的属性节点与调用节点的创建与使用方法。 (6)了解LabVIEW中的字符串、文件I/O的操作;了解全局变量与局部变量的创建与使用方法。 (7)了解LabVIEW中的Control Reference的创建与使用;了解事件驱动编程;掌握对菜单的编 辑与响应步骤,掌握对VI的属性进行设置。 (8)掌握有关数据采集的基本概念及在LabVIEW中进行数据采集编程的方法。 二、课程教学基本要求 对课程教学环节的要求(包括理论课时;课堂实践、实验、上机课时;课堂实践课时的具体安排意见;成绩考核形式等) 1、课时分配 理论课时为24,实践课时为16。 2、成绩评定 成绩评定采用百分制。 3、计分原则本课程为期末闭卷考试和平时成绩相结合进行综合评定,最终成绩由以下三部分组成: 第一部分:期末闭卷考试成绩占总成绩的70%; 第二部分:平时作业成绩占总成绩的20%; 第三部分:上课考勤占总成绩的10%。 三、课程教学内容 第一章LabVIEW概述 1.1虚拟仪器概述 1.2LabVIEW是什么? 1.3 LabVIEW的运行机制

Labview程序设计模式

LabVIEW程序设计模式,这个相对学术化的词语是对一系列用于LabVIEW程序设计结构的归纳和总结。在建造房子时,需要针对房子的用途设计整个房屋的架构,确保房子在这个架构上的坚固性和可建造性。写程序时同样如此,不同的应用需要使用不同的程序设计结构。例如我们在LabVIEW中构建一个用户界面型程序时,往往首先在背面板中加入一个大的while循环以使程序持续运行。如果需要响应用户界面事件则还需要加入一个Event事件结构。那么我们是否曾经考虑过以下的这些问题: (1) 应用中是否存在并行响应的情况?如在持续的数据采集过程中,是否需要同时响应单击菜单的事件? (2) 底层获取的数据如何与上层的数据显示部分进行数据交互? (3) 上层的界面如何受底层程序的控制? (4) 同一个循环中采用哪种方式进行数据交换?是局域变量、全局变量、共享变量还是移位寄存器? (5) 程序是否具有可扩展性? (6) 如果程序运行过程中,发生系统错误或者硬件通讯错误,是否会停止运行?待错误排除后是否会继续运行? (7) 如何组织程序中的核心数据结构?是否需要采用面向对象程序设计? (8) 如何记录测试数据并生成报表?如何保存用户配置参数? (9) 如何处理程序运行中的断电情况?重新启动时的继续运行?数据的最低丢失? (10) 如何实现运行过程的采样触发和多点采样的同步? 当然,也许只是使用LabVIEW临时地调试或开发某个小的应用,无需考虑上述的问题。但是,如果使用LabVIEW开发一个典型应用的程序却无法回避这些问题。因此,有必要对各种程序开发的应用进行归纳和总结,提取它们对应的LabVIEW程序结构中的共性。此外,针对这些共性研究哪种结构更加适合于应用。这些结论综合起来就形成了程序设计的模式。 对于初学者而言,理解和掌握程序设计模式往往能起到事半功倍的效果;而对高级用户而言,归纳各种程序设计模式又能够不断完善程序中遇到的问题,并衍生一套符合特定应用的特有的程序设计模式。 状态机是一种最为经典的程序设计模式,在LabVIEW 7.1(含)之前它几乎统治了大部分的LabVIEW主程序。最基本的状态机结构如图 1所示。状态是状态机运行的经脉,在开始使用状态机模式撰写程序时需要将应用分为若干个状态。下面以图中的应用为例说明基本状态机的使用。 【应用1】 前面板具有3个按钮(Control)和1个波形显示控件Chart(Indicator),功能分别是: 1) 开始采集:Label是start,单击后开始进行模拟数据采集程序(这里使用随机数代替)。 2) 关于:Label是dialog,单击后弹出对话框以说明这个程序的版权、帮助等信息。 3) 停止:Label是stop,单击后停止程序的运行。 4) Chart:用于显示获取的随机数。 这是一个非常简单的应用,但是具有一定的代表性。根据要求,该应用至少包含以下5种状态结构。 1) Initial:初始化状态; 2) Idle:空闲状态,用于响应各种用户界面操作; 3) acquire:采集状态,用于持续模拟采集数据; 4) about:用于弹出关于和帮助对话框; 5) stop:停止状态,退出循环并中止程序。

LabVIEW程序设计步骤

LabVIEW程序设计步骤 下面通过一个设计实例来详细介绍虚拟仪器软件LabVIEW的程序设计步骤。 设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时,需通过指示灯颜色变化发出警告。 1 建立新VI 启动LabVIEW程序,单击VI按钮,建立一个新VI程序。 这时将同时打开LabVIEW的前面板和后面板(框图程序面板)。在前面板中显示控件选板,在后面板中显示函数选板。在两个面板中都显示工具选板。 如果选板没有被显示出来,可以通过菜单查看(View)/工具选板(Tools Palette)来显示工具选板,通过查看(View)/控件选板(Controls Palette)显示控件选板,通过查看(View)/函数选板(Functions Palette)显示函数选板。 也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。 ) 2 前面板设计 输入控制和输出显示可以从控件选板的各个子选板中选取。 本例中,程序前面板中应有1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4个控件。 1)往前面板添加1个旋钮控件:控件(Controls)→新式(Modern)→ 数值(Numeric)→旋钮(Knob),如图2-14所示,标签改为“调压旋钮”; 2)往前面板添加1个仪表控件:控件(Controls)→新式(Modern)→数值(Numeric)→仪表(Meter),如图2-14所示,标签改为“电压表”。 3)往前面板添加1个指示灯控件:控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(Round LED),如图2-15所示,将标签改为“上限灯”。 … 图2-15 添加指示灯、按钮控件…

LabVIEW程序设计模式(四)—状态机和事件结构的结合

LabVIEW程序设计模式(四)—状态机和事件结构的结合 LabVIEW程序设计2009-05-04 14:25:19 阅读497 评论0 字号:大中小订阅 上两节分别解决了基本状态机的第(1~5)个问题,但是是否具备一种模式能够综合队列型状态机模式和用户界面事件型模式的优点呢?这样可以同时避免基本状态机的第(1~5)个问题。答案是肯定的,本节将介绍如何将状态机与事件结构结合起来形成一种新的、稳定的模式。 状态机模式的基本构成元素是while循环和case结构,而事件结构模式的基本构成元素是while循环和event结构,因此新的模式应该由while循环、case 结构和event结构组成。而while循环的目的是为了保证程序的持续运行,因此必须在最外层,这样就只剩下了图20所示的两种组合方式。 在第一种方式中,每次循环的运行需要经过一个事件结构才能够实现case 中各个分支的运行,那么到底需要多少个分支呢?一般而言不同的事件都会有不同的事件处理函数(这些函数可以在case结构中共用),显示这是无法满足要求的,它从本质上而言仍然是一种事件结构。 在第二种方式中,程序的主体是一个状态机结构,不同的是在某一个状态分子中有一个事件结构。我们可以回忆状态机模式中的“空闲Idle”状态,这正是长时间占用CPU资源的源头,如果在Idle中加入一个事件结构后就有效地规避了这个问题。 图20 三种结构的组合方式 因此图20中的第二种结构综合了状态机和事件结构的优点,有效地克服了基本状态机的第(1~5)个问题。此外,在【应用2_自动贩卖机】例程中,按钮1USD、2USD和5USD的作用是相同的,唯一不同的是它们的代表的币值不同。如果我们希望系统共用“币值相加”这个功能,即当这三个按钮任何一个被按下后都调用同一个函数(该函数的功能是将系统中原来的货币值与新加入的币值相加得到新的值)。这样,需要有一种途径把1USD、2USD和5USD代表的币值作为参数传递给函数。 图21所示为带参数的状态机结构,在消息队列的状态机模式中,加入了一个变体型的变量作为状态传递的参数。实际上,可以把红色的部分做成子vi,不仅节省了背面板空间而且能够进行错误处理。程序中应该设置一个专门的错误处

相关文档
最新文档