环境温度测试系统课前准备需求分析主VI界面设计搭建系统框图模块化实现完善主VI系统框图程序整体功能测试课前准备1.打开项目浏览器,右键单击我的电脑→添加→文件夹(快照)2.在弹出对话框中找到SubVIs文件夹→打开SubVIs文件夹→单击当前文件夹3.添加SubVIs文件夹后,在项目浏览器中出现SubVIs虚拟文件夹4.按照上述文法添加Ctrls文件夹、Config文件,并保存(如图所示)课前准备需求分析类型名称属性布尔输入控件配置触发“配置”事件布尔输入控件采集触发“采集”事件布尔输入控件查询触发“查询”事件布尔输入控件退出触发“退出”事件数值显示控件Temp显示当前温度数值显示控件Alarm显示报警温度波形图表显示控件Chart显示温度波形定义输入输出需求分析功能类别子功能功能介绍系统配置硬件配置显示硬件界面。用户可配置的主要信息包括:物理通道,采样率,报警下限等保存配置信息将配置信息保存为文件供以后调用,按照默认路径(主VI根目录)存储数据采集数据采集按照配置信息采集温度数据数据显示曲线显示采集到的温度数据数值使用数值型控件显示当前采集的数值报警下限显示设置的报警下限,在超出范围时通过颜色的改变示警:超出阈值曲线为红色;正常为绿色系统具体功能需求分析数据存储数据存储采集开始后自动进行数据存储,存储的数据文件自动以时间为名保存,格式为“年月日时分秒”数据查询选择文件选择想要查看的温度数据文件显示数据使用图表显示文件中的数据,并将报警下限在图表中以直线显示出来,可以对图形进行放大或缩小生成报表对当前数据波形生成报表,报表中包括数据采集时间及数据波形图人机交互系统功能选择通过按钮或运行时菜单实现系统功能选择必要的提示为人机交互的控件添加必要的提示需求分析流程图主VI界面设计标题栏将窗口标题设置为与本VI名称相同打开主VI,菜单→文件→VI属性,打开VI属性对话框(如图)取消勾选与VI名称相同选项,并将窗口标题设置为环境温度测试系统主VI界面设计菜单栏创建运行时菜单文件1.打开主VI,前面板→菜单栏→编辑→运行时菜单,单击下拉列表切换为自定义2保存至Ctrls文件夹命名为RunTimeMenu_Ctrls-环境温度测试系统编辑自定义菜单(如图)主VI界面设计工具栏添加配置、采集、查询、退出布尔空间(如下图步骤1)1.控件选板→选择控件,选择Ctrls文件夹下的配置控件,将控件添加至主VI前面板2.按照上述方法添加采集、查询、退出三个布尔控件设置布尔控件的机械动作配置、查询、退出设定为释放时触发,采集设定为单击时转换主VI界面设计软件名称显示区(如图步骤2)1.在主VI前面板上创建自由标签2.标签内容为环境温度测试系统(字号:45字体:Tahoma)主VI界面设计显示区添加波形图表显示控件(如图步骤3)在主VI前面板上创建波形图表显示控件,命名为Chart,隐藏标签,使用工具选板颜色工具将控件边框和图例设置为透明添加当前温度显示控件(如图步骤4)在主VI前面板上创建字符串显示控件,命名为Temp,隐藏标签,使用颜色工具将控件设置为透明添加自由标签(如图步骤5)在主VI前面板上创建自由标签,内容为“/”,使用颜色工具将控件设置为透明添加报警提示显示控件(如图步骤6)在主VI前面板上创建字符串显示控件,命名为Alarm,隐藏标签,使用颜色工具将控件设置为透明主VI界面设计状态栏添加版本信息(如图步骤7)在主VI前面板上创建自由标签,内容为“TemperatureMeasurementSystemVer1.0CopyrightbyPansino”前面板修饰、装饰等(如图)使用细分割线进行各个部分划分,使用颜色选板将前面板颜色改为系统颜色主VI界面设计搭建系统框架——状态机创建枚举变量1.右键Ctrls虚拟文件夹→新建→控件,在空间编辑器中添加枚举输入控件2.枚举项内容包括(1)Initialize(2)Idle(3)Config(4)Query(5)DAQmx-Config(6)DAQmx-Run(7)DAQmx-Clear(8)ErrorHandle(9)About(10)Exit3.将改空间保存在Ctrls文件夹下,命名为Enum-Main_Ctrls-环境温度测试系统.ctl4.控件选板→选择VI→,选择Ctrls文件夹下Enum-Main将其放在程序框图中搭建系统框架按图创建框图程序搭建系统框架完成状态机各个状态1.Initialize状态如上图所示2.完成Idle状态(包括事件结构)(1)完成Timeout事件(时间源:应用程序事件:超时)搭建系统框架(2)完成Config事件(时间源:Config事件:改变值)搭建系统框架(3)完成Acquire事件(时间源:Acquire事件:改变值)搭建系统框架(4)完成Query事件(时间源:Query事件:改变值)搭建系统框架(5)完成Exit事件(时间源:Exit事件:改变值)搭建系统框架(6)完成MenuSelection事件(时间源:本VI事件:菜单选择(用户))添加Menu-Selection模块位于SubVIs文件夹下搭建系统框架完成Config状态状态功能介绍:该状态完成读取配置文件、获取配置界面信息的功能搭建系统框架完成Query状态状态功能介绍:该状态完成查询试验数据、生成报表等功能搭建系统框架完成DAQmx-Config状态状态功能:完成硬件配置工作搭建系统框架完成DAQmx-Run状态功能介绍:读取数据功能搭建系统框架完成DAQmx-Clear状态功能介绍:实现清除采集任务、关闭采集文件的功能搭建系统框架完成ErrorHandle状态功能介绍:实现错误处理功能搭建系统框架完成About状态功能介绍:实现显示帮助信息功能搭建系统框架完成Exit状态功能介绍:实现退出系统功能模块化实现把以下模块(VI)均保存在SubVIs中Config–Read模块Config–Main模块Config–Save模块DAQmx–Config模块File–Create模块DAQmx–Run模块File–Read模块Generate–Report模块Query模块模块化实现设计Config-Read模块功能介绍:该模块实现读取配置信息的功能输入端口:Taskin簇输入控件Errorin簇输入控件输出端口:Taskout簇输出控件Errorout簇输出控件Task控件位于Ctrls文件夹下Error控件位于新式→数组、矩阵与簇目录下模块化实现本模块主条件结构下嵌入两个条件结构,第一个条件结构实现路径的的创建与选择,第二个条件结构实现二进制文件的打开读取,如不存在,返回默认配置检查文件或文件夹是否存在.vi位于文件I\O→高级文件函数选板下此处属性节点控件位于应用程序控制选板下,设定为应用程序→类别模块化实现模块化实现设计Config-Main模块功能介绍:该模块实现获取用户输入的配置信息的功能输入端口:Taskin簇输入控件Errorin簇输入控件OK布尔控件Cancel布尔控件输出端口:Taskout簇输出控件Errorout簇输出控件OK?布尔显示控件模块化实现用户配置,判断确认键是否按下,如按下将新的配置信息送到系统中模块化实现设计Config-Save模块功能介绍:该模块实现保存配置信息的功能该模块输入输出端口,前面板设计与上述Config-Read模块相同模块化实现模块化实现设计DAQmx-Config模块功能介绍:该模块实现配置采集任务的功能输入端口:Taskin簇输入控件Errorin簇输入控件输出端口:DAQmx任务名输出控件Errorout簇输出控件DAQmx任务名位于I\O→DAQmx名称控件选板下模块化实现根据配置信息配置采集任务三个DAQmx控件依次为DAQmx创建通道、DAQmx定时、DAQmx开始任务其中DAQmx创建通道设定为模拟输入→温度→热电偶J为下拉列表常量,在DAQmx创建通道函数热电偶类型端右键创建即可模块化实现模块化实现设计File-Create模块功能介绍:该模块实现创建数据文件、保存通道信息的功能输入端口:Alarm数值输入控件(获取报警温度)Errorin簇输入控件输出端口:tdmsfileout引用显示控件(数据文件引用输出)Errorout簇输出控件tdmsout引用显示控件在框图面板上加入TDMS设置属性控件,在TDMS文件输出端创建tdms文件显示控件即可模块化实现在File–Create模块中需要引用File-CreateDataFolder模块File–CreateDataFolder模块功能介绍:该模块实现创建存储数据的文件夹的功能输入端口:路径输入控件Errorin簇输入控件输出端口:路径显示控件Errorout簇输出控件当条件结构为真时表示该路径下没有DataFile文件夹,并在该路径下的生成DataFile文件夹当条件结构为假时表示该路径下存在DataFile文件夹,则传出文件夹路径模块化实现File-Create模块框图程序根据时间创建新的温度数据文件(.TDMS)其中用到TDMS函数,为TDMS打开,TDMS设置属性.具体用法参见LabVIEW帮助模块化实现模块化实现设计DAQmx–Run模块功能介绍:该模块实现读取采集数据、设置曲线颜色、保存数据的功能输入端口:Taskin输入控件(DAQmx名称任务名)Errorin簇输入控件tdms文件引用输入Alarm数值输入控件WFChartRefnum引用输入控件输出端口:Taskout显示控件Errorout簇输出控件CurrentTemp数值显示控件Tdms文件引用输入:TDMS写入→右键TDMS文件输入端→创建→常量WFChartRefnum:1.新式→引用句柄→控件引用句柄2.新式→图形→波形图3将波形图托放入控件引用句柄中模块化实现该程序框图实现“开始采集温度数据”、“判断温度值是否超过报警下限”、将温度数据写入文件DAQmx函数为DAQmx读取,设为模拟单通道多采样波形TDMS函数为TDMS写入WFChart属性节点:应用程序控制→属性节点,两分别设为活动曲线、曲线颜色模块化实现设计File–Read模块功能介绍:该模块实现读取以保存数据、读取通道信息的功能输入端口:路径输入控件Errorin簇输入控件输出端口:Alarm数值显示控件Errorout簇输出控件Data波形数组显示控件Data波形数组显示控件:右键TDMS读取函数数组输出端,创建显示控件模块化实现读取TDMS文件中的报警下限及温度数据值TDMS函数依次为TDMS打开、TDMS读取、TDMS获取属性、TDMS关闭模块化实现模块化实现设计GenerateReport模块功能介绍:该模块实现回放采集数据、生成报表的功能输入端口:Tempre图表引用输入控件Errorin簇输入控件Alarm字符串输入控件输出端口:Errorout簇输出控件模块化实现生成Excel报表,报表中包含报警下限和波形图报表生成函数:函数选板→编程→报表生成子选板依次为新建报表、添加报表文本(*2)、添加控件图像至报表、ExcelFormatImage处置报表(ExcelFormatImage为报表生成工具内函数,安装后方可使用)模块化实现模块化实现设计Query模块功能介绍:该模块实现回放采集数据、生成报表的功能输入端口:Errorin簇输入控件Open布尔输入控件(打开数据文件)Report布尔输入控件(生成报表)Exit布尔输入控件(退出该VI)TempreChart波形图显示控件中间变量簇输出端口:Errorout簇输出控件Alarm字符串显示控件模块化实现该模块为标准状态机结构由Initialize、Idle、ReadFile、GenerateReport、ErrorHandle5个状态组成Initialize状态该属性节点为前面板波形图显示控件的游标Y坐标位置属性模块化实现完成Idle状态检查前面板事件模块化实现完成ReadFile状态本VI调用了File–Read模块