版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.1案例简介火炮身管内径检测要求准确地测量身管任意截面内径尺寸的变化,并实现数据快速实时处理和显示输出。检测硬件模块主要包括位移式传感器、激光测距仪、步进电动机和身管爬行机构。其中位移传感器和激光测距仪分别用于测量径向位移和轴向位移,并由身管爬行机构带动在火炮身管内行进。本案例是一个典型的串口总线仪器应用,由测径传感器产生的模拟信号经过匹配的通道箱后转化为数字信号输出,再通过串口读取至计算机。激光测距仪的输出为数字量,不用做A/D转换,可以连接至串口,从而对内径测量实行轴向位置定位。利用标定环对测径传感器进行标定,得到标定系数,再利用标定系数可以计算出火炮身管的内径值。返回9.2软件实现火炮身管内径检测软件需要实现设备检测、信号的采集与保存、数据的处理以及打印功能。主程序由一系列顺序结构组成,将主程序分为图9.2.1(a)与图9.2.1(b)两部分。主程序顺序框图外的布尔控件主要用来显示外接设备,布尔控件的属性节点可以使控件在禁用和使能状态进行切换。当给属性节点赋予0值时,控件使能;赋予2时,控件禁用。该主程序主要依靠顺序结构实现,根据时间发生的顺序将该程序划分为九个顺序结构,分别编号顺序结构一至顺序结构九。下面对这九个顺序结构依次详细解释说明。1.顺序结构一下一页返回9.2软件实现如图9.2.2(a)所示,顺序结构一实现了全局变量测量次数、测量位移以及数据的初始化赋值,并完成对外设的检测。检测外设子VI的程序框图如图9.2.2(b)~(d)所示。无论是外设检测,还是后面提到的子模块,都必须具备串口通信的功能,该程序的数据通信依靠VISA实现,VISA函数是一套可方便调用的函数,通过一个标准的、通用的驱动程序的编程模型简化了仪器的控制与通信。检测外设子VI由三个顺序结构组成,分别实现检测通道箱连接是否正确、检测激光测距仪连接是否正确,以及显示检索结果的功能。上一页下一页返回9.2软件实现以检测通道箱程序(即图9.2.2(b)所示)为例,主要说明一下VISA串口通信的过程。首先使用VISA查找资源函数与索引数组定位指定接口相关的设备,这里将通道箱连接至计算机上的COM1口,索引数组的索引值设为0就可以查找COM1口的设备;然后使用VISA配置串口函数配置串口,以查找到的资源为VISA资源名称,并设置好波特率、数据比特、奇偶校验位、停止位,将VISA查找资源的错误输出为错误输入;创建VISA的Instr串口比特数的属性节点,只要数据不为空,就通过VISA读取函数对串口进行读取操作,随后将读取的数据写入计算机,这里将其写入地址为4D0D的内存空间;经过一定的延时后,再将写入计算机的数据读取至缓冲区,再根据厂家所给的相关协议来判断通道箱是否连接成功,同时关闭VISA。上一页下一页返回9.2软件实现除了因协议不同引起的数据操作外,检测激光测距仪的程序与检测通道箱大致相同,这里不再一一赘述。显示检索结果部分共有三种处理情况,分别如图9.2.2(e)~(g)所示。第一种条件为测距仪、通道箱都连接成功,两个条件结构都为真(图9.2.2(e)),此时通过对话框函数显示设备连接成功,并将数据写入新的缓冲区;第二种条件为测距仪连接成功,通道箱连接失败,即主条件为真,子条件为假(图9.2.2(f)),此时通过对话框函数显示通道箱设备连接失败,并提供“重试”按钮和“取消”按钮供用户选择;第三种条件为激光测距仪检测失败,即主条件为假(图9.2.2(g)),此时通过对话框函数显示测距仪连接失败,同时提供“重试”和“取消”显示功能。上一页下一页返回9.2软件实现2.顺序结构二该结构由While循环、顺序结构以及条件结构构成,总体来说分为两个顺序事件,即事件一,如图9.2.3(a)所示,按下“OK”按钮(“重新连接”)后,检测外设子VI触发,程序开始检测外部设备;事件二,如图9.2.3(b)所示,测距仪与通道箱都成功检测后,二者真值相与,退出While循环,否则若有一种设备检测成功的状态值为假,则继续该循环。所以该顺序结构的功能在于重新检测设备,直到成功检测为止。3.顺序结构三上一页下一页返回9.2软件实现顺序结构三如图9.2.4(a)所示,通过打开VI引用来实现子VI的打开,属性节点的使用可以更好地设置程序运行状态,以waituntildone为例,在节点前面赋予值False,可以使程序在结束前不用等待。打开的Binaryreadsys子VI如图9.2.4(b)所示。Binaryreadsys子VI主要通过两大块函数完成文件的二进制读取。上一页下一页返回9.2软件实现第一块如图9.2.4(b)左下角部分,先后使用读取当前路径、路径转换成字符串、搜索/拆分字符串、连接字符串、字符串转换为路径这些VI函数生成系统设置参数的文件目录;第二块使用读取SGL文件子VI,可以将该路径下的文件读取出来,再根据相关协议,完成数据二进制读取,这里前四位作为阴线内径数据,后四位作为阳线内径数据。4.顺序结构四顺序结构四如图9.2.5(a)所示,与顺序结构三相似,该结构用来打开参数设置子VI。上一页下一页返回9.2软件实现参数设置子VI由三个顺序结构构成,如图9.2.5(b)~(d)所示,显然该程序用来设置参数,按下“OK”按钮,即“设置完成”后,跳出循环,设置结束。参数设置的前面板如图9.2.5(e)所示,可以设置身管型号、身管编号、身管长度以及数据记录间隔这四项参数。5.顺序结构五顺序结构五为设置延时。6.顺序结构六该结构用来设置菜单栏,包含数据保存、控制、参数三项,同时激光初始化按钮使能,显示设备连接成功,程序框图如图9.2.6所示。上一页下一页返回9.2软件实现7.顺序结构七如图9.2.7(a)所示,该结构包含事件结构,按下“激光初始化”按钮后,激光初始化子VI开始触发,子程序的前面板如图9.2.7(b)所示,程序框图如图9.2.7(c)~(d)所示。激光初始化主要是使用VISA进行通信,图9.2.7(b)程序根据协议将数据写入VISA串口,图9.2.7(c)按照协议算法将数据从串口读取出来并经由计算机显示。VISA串口的通信过程前文已经详细说明,不再解释激光初始化程序的具体工作原理。8.顺序结构八上一页下一页返回9.2软件实现通过属性节点的调用使能“退出”“标定”“打印”“测试曲线”这四个按钮,同时禁用“激光初始化”按钮。9.顺序结构九该结构的主体是一个While循环,内嵌五个事件结构,程序框图如图9.2.8(a)~(e)所示,五个事件结构依次为超时、打印、标定、测试曲线、退出。显然,“超时”子事件结构包含层叠式顺序结构,“打印”子事件结构调用“print.vi”,“标定”子事件结构调用“标定.vi”,“测试曲线”子事件结构调用“测试曲线.vi”,“退出”子事件结构通过双按钮对话框的交会界面实现“退出”或“取消”功能。下面对各个子事件结构做详细说明。上一页下一页返回9.2软件实现1)“超时”事件结构的超时“接线端”接入10,表示等待10ms后触发超时事件,即超时子事件程序运行。该事件包含三个顺序结构,前两个顺序结构的程序框图分别如图9.2.9(a)和(b)所示,第三个顺序结构内嵌条件结构,根据条件的不同,程序框图如图9.2.9(c)和(d)所示。第一个子顺序结构显示当前系统时间,并将外设状态通过顺序局部变量传递出去;第二个子顺序结构显示当前设备运行状态;第三个子顺序结构通过“外设”“YES”“NO”三者的逻辑运算来控制菜单项的设置。2)“打印”上一页下一页返回9.2软件实现通过按下“打印”按钮触发该事件,调用“print.vi”。该子VI包含三个顺序结构,程序如图9.2.10(a)~(d)所示。其中图9.2.10(a)所示为第一个顺序结构,通过按下“打印”按钮结束While循环,调用相关数组函数,将需要打印的数据合成打印数组;图9.2.10(b)和(c)为第二个顺序结构,实现打印操作,其大致流程为:新建报表、设置报表页边距、添加报表文本、设置报表字体、报表换行、添加表格至报表、打印报表、处置报表。根据需要打印的数据调用相关打印函数,详细设置如图9.2.10(b)和(c)所示;图9.2.10(d)所示为第三个顺序结构,用于打印完成后结束程序。整个打印操作的前面板如图9.2.10(e)所示。上一页下一页返回9.2软件实现3)“标定”标定是对测径传感器的标定,通过三个标定环的标定值与测试值来确定标定系数。阴线的标定与阳线的标定虽然根据协议提取的数据不同,但标定算法是一样的。这里简单介绍一下标定过程:测径时采用两个传感器对称布置来测量一组阴线或阳线值。设方程Y=d0+d1X1+d2X2,d1、d2为传感器的线性输出系数,X1、X2为传感器输出响应,d0为传感器初始零状态输出,Y为测试输出值。依据三个标定环的标准值得到三组方程,可以利用矩阵相关算法,具体算法如图9.2.11(a)所示,解算出参数d0、d1与d2,完成标定。上一页下一页返回9.2软件实现阴线与阳线测试值的提取通过条件结构控制,“真”为阴线组,“假”为阳线组。其程序如图9.2.11(b)和(c)所示。“标定”程序实际上是串口通信与数据处理,其主程序如图9.2.11(d)和(e)所示,首先将串口数据读取出来并写入缓冲区,使用布尔开关控制条件结构,从而完成对阴线或阳线的测试数据读取,经过矩阵与数组计算得到标定参数d0、d1与d2。接着调用Binarysavesys子VI将标定参数、采集步长、长度等相关数据保存起来。其程序操作流程与Binaryreadsys子VI的流程刚好相反,如图9.2.11(f)所示。整个标定的前面板如图9.2.11(g)所示。上一页下一页返回9.2软件实现4)“测试曲线”该子程序依据顺序结构进行,依次为:打开通道箱X1715串口COM1、打开测距仪串口COM2、根据协议写入数据、读取数据并根据标定参数解算测试的内径值/测试位置、数据保存、关闭串口并退出程序。程序中多次用到VISA读取、VISA写入函数以及各类数组操作函数,由于该“测试曲线”子程序比较复杂,截图不便,这里仅给出程序的前面板(图9.2.12),有兴趣的读者可以参考书本附的源程序自行阅读。上一页下一页返回9.2软件实现相信有了前面VISA通信和标定算法说明的基础,理解起来并不会十分困难。5)“退出”通过“退出”按钮触发该事件,使用双按钮对话框实现人机界面交互。上一页返回9.3软件分析与总结本案例的软件由于需要实现外部设备检测、参数设置、激光初始化、标定、测试曲线、打印等功能,程序略显复杂,但是实质上,无非是顺序结构、条件结构、事件结构以及While循环和For循环的相互交错使用。串口通信上使用VISA来实现,可以总结为配置VISA、读取VISA、写入VISA、关闭VISA这几个主要过程。设计完成后的软件前面板如图9.3.1所示。由于篇幅原因,读者可以通过阅读源程序并对照前文的介绍来熟悉整个软件的思想。返回图9.2.1主程序返回图9.2.2顺序结构一程序框图返回图9.2.2顺序结构一程序框图(续)返回图9.2.3顺序结构二程序框图返回图9.2.4顺序结构三程序框图返回图9.2.5顺序结构四程序框图及参数设置前面板返回图9.2.5顺序结构四程序框图及参数设置前面板(续)返回图9.2.6顺序结构六程序框图返回图9.2.7顺序结构七程序框图及前面板返回图9.2.7顺序结构七程序框图及前面板(续)返回图9.2.8顺序结构九程序框图返回图9.2.8顺序结构九程序框图(续)返回图9.2.8顺序结构九程序框图(续)返回图9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信用管理师操作规程考核试卷含答案
- 粉状化妆品制造工保密测试考核试卷含答案
- 水工土石维修工班组建设能力考核试卷含答案
- 再生物资加工处理工操作技能竞赛考核试卷含答案
- 试验员安全应急模拟考核试卷含答案
- 活性炭碳化工风险评估与管理竞赛考核试卷含答案
- 实验动物饲养员安全文化知识考核试卷含答案
- 中药合剂工岗前节能考核试卷含答案
- 中南大学《计算机网络》课件-第5章Internet
- 日间手术团队配合默契度培养策略
- 厦门市民族与宗教事务局补充招考1名非在编人员模拟预测(共500题)笔试参考题库+答案详解
- JJG 1192-2023电动汽车非车载充电机校验仪
- 飞轮储能技术基础
- SEW电机制动器课件
- 生产车间日常安全检查表
- 休克-最新课件
- 口腔固定修复体制作教学大纲
- 2B Lesson 15 The mud bath
- 格兰诺维特-经济行为与社会结构(沈原译)
- 铸件尺寸公差ISO806232007中文
- 大型活动策划与管理课程标准
评论
0/150
提交评论