[激光原理与应用-53]:《激光焊接质量实时监测系统研究》-4-激光焊接系统软件设计

news2024/12/23 22:58:53

目录

前言:

4.1 操作系统和开发平台

4.1.1 Windows2000 操作系统概述

4.1.2 虚拟仪器开发平台软件 LabWindows/CVI

4.2 总体软件设计

4.2.1 数据采集程序

4.2.2 软件实现的功能

4.2.2.1 主机软件的数据采集

4.2.2.2 主机软件的数据分析(核心)

4.3 软件总体框架


前言:

本文谈的软件设计,是指主机软件,而不是数据采集卡软件,因为数据采集卡软件是有第三发提供的 ,主机软件通过数据集采集卡厂家提供的dll库,从数据卡读取采样数据。

4.1 操作系统和开发平台

4.1.1 Windows2000 操作系统概述

Windows2000 是一种面向对象的操作系统,它由许多小的、封装的软件部件所组成。这些部件协同工作,一起操作系统的任务。每个部件都向操作系统的其它部件提供一组接口函数以供调用。 Windows2000 是设计在复杂指令计算机( CISC )和精简指令计算机( RISC )上运行的操作系统,因此设备和相关的驱动程序既可以通过硬件配置也可由软件配置。

Windows2000 是一抢占式的、可中断的操作系统,它既可以工作于单处理器下,也能工作于多处理器模式,这对于需要多处理器协同工作大运算量时很有用。Windows2000 支持使用重用 I/O 请求数据包的包驱动 I/O 和异步 I/O ,以保证 I/O请求的发起方能被连续执行,而不用等到请求结束才被执行。为此 Windows2000采用特权式和非特权式运行,即通常所说的核心态和用户态。在核心态,软件可以访问所有的系统资源, Windows2000 系统结构中的核心层可以访问系统数据和
硬件,核心态提供了直接访问内存的方式,并且运行在保护的内存空间,它根据优先等级标准决定何时运行何种代码。用户态中的软件在没有特权的状态下运行,对系统资源只拥有有限的访问权限。

图 4.1 为 Windows2000 操作系统的整体框架。

备注:上图中的应用程序是本文关注的重点。

4.1.2 虚拟仪器开发平台软件 LabWindows/CVI

介绍 LabWindows/CVI 之前有必要对虚拟仪器( Virtual Instrument ,简称 VI )作一简介。

所谓虚拟仪器,就是在以通用计算机为核心的硬件平台上,由用户设计定义,具有虚拟面板,测试功能由测试软件实现的一种计算机仪器系统。使用者用鼠标或键盘操作虚拟面板,就如同使用一台专用仪器。

虚拟仪器的实质是利用计算机显示器的显示功能模拟传统仪器控制面板,以多种形式表达输出结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,利用 I/O 接口设备完成信号的采集、测量与调理。从而完成各种测试功能的一种仪器系统 [40] 。

虚拟仪器的构成框图如图 4.2 所示。

虚拟仪器是现代计算机技术和仪器技术深层次结合的产物,是当今计算机辅助测试领域的一项重要技术,它的出现使测量仪器和个人计算机的界限模糊了。

LabWindows/CVI 是 NI ( National Instruments )公司推出的一套面向测控领域的软件开发平台,它是一种基于文本式编程语言的虚拟仪器软件开发工具。它以ANSI C 为核心,将功能强大,使用灵活的 C 语言平台与数据采集、分析和表达的测控专业工具有机地结合起来。

它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了 C 语言的功能,为熟悉 C 语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。

LabWindows/CVI 将源代码编辑、 32 位 ANSI C 编译、联接、调试以及标准ANSI C 库等集成在一个交互式开发环境中。因此用户可方便快速地编写、调试和修改应用程序,形成可执行文件。使用 LabWindows/CVI 设计地虚拟仪器可脱离LabWindows/CVI 开发环境,用户最终见到的是和实际的硬件仪器相似的操作面板。

LabWindows/CVI 有一下一些优点:

本课题所选 A/D 采集卡具有多通道,高速采集的特点,配备有支持LabWindows/CVI 开发的驱动。由于 LabWindows/CVI 具有以上的种种特性,比较适合本课题的开发要求,故最终选择了 NI 公司 2003 年推出的 LabWindows/CVI 7.0版本开发软件。

4.2 总体软件设计

硬件系统的建立只是前期的工作,它为数据采集提供了信号来源, 也就是说,本方案中,硬件只负责采集数据,并不负责处理数据,更不负责对信号进行模式识别,这部分工作是有主机软件来实现的。

主机软件系统则充分利用计算机的处理功能来协调硬件的工作:

  • 如由软件通过调用DLL库函数,发布指令到 A/D 采集卡来完成光、声信号的数据采集存储
  • 通过 A/D 采集卡的数据输出口发送指令设置信号调理模块中程控放大器的放大倍数;
  • 在时域、频域运用各种算法对信号进行处理和分析以得到需要的信息。//这是该方案的核心
  • 为使软件能够正确判断焊接过程中的缺陷,还要进行 BP 神经网络的设计和训练等,将来软件的性能好坏决定了整个系统判断焊接缺陷的可靠度。
  • 软件系统需要实现的目标:是可实现信号特征的提取,焊接过程稳定性的实时监测和典型熔透状态的判别

前期,软件的开发工作主要是和合作单位进行协商,进行需求分析,明确程序需要完成哪些功能,建立了软件开发的计划表。在前面的基础上完成了软件总体结构的规划,各部分的具体实现细节和相应的人员分配,并开始进行具体的程序编制和调试,以后的工作还将有软件的改进和维护,软件开发过程中始终将实时性作为首要目标

备注:

也就是说,软件的核心算法,并不是本文研究的重大,它又第三方合作单位提供的。】

本方案的主要任务是:数据的采集的硬件软件的实现。数据采集的硬件在前文已经介绍,下面来介绍一下,主机软件如何调用数据采集卡的dll库实现数据采集的软件部分。

4.2.1 数据采集程序

PowerDAQ 系列采集卡附带的光盘上附带有应用程序接口( API ), API 已经集成到了PowerDAQ 的动态链接库( *.dll )里面,用户的应用程序通过调用动态链接库就可以和采集卡进行通信了。用户应用程序和采集卡的通信过程图如图 4.3所示。

采集卡有事件产生时,它通过 PowerDAQ 的驱动创建一核心进程用来与应用程序通信。

采集卡采集到的数据通过 PCI 总线传到应用程序中用户级的数据缓冲区内

PowerDAQ 的 API 包括一系列消息函数容许用户应用程序得到采集卡上的信息,如采集模式、串口号和 IRQ 号等,这些函数为采集卡自检提供了很好的支持。

所有的 PowerDAQ 系列采集卡都可以工作于两种操作模式

  • 查询模式
  • 基于事件的模式。

查询模式时,用户应用程序根据需要查询卡上各个子系统的状态,在应用程序不需要过多的和系统硬件打交道时,推荐使用这种工作模式。

在基于事件的模式中,数据采集卡通过调用 Win32 来通知应用程序预先定义好了的子系统产生的事件,在这种模式下程序开发者能够编写出异步应用程序。

备注:FIFO的作用是高速的DAC转换和相对慢速的主机软件之间进行缓冲,实现速率适配。

当采集到的数据存储到 A/D 的 FIFO 存储器后,前面已经提到过有四种将数据传输到主机内存的方式。这四种方式的选择是通过函数 _pdDiagSetPrm(…) 来实现的。

这里对普通模式快速模式作一较详细介绍:

(1)普通模式:

当数据进入 FIFO 后,此时可以通过软件编程方式来将 FIFO 中数据转入主机内存,但是要保证这一过程在下一采样数据来到之前完成,如果 FIFO满了的话它将忽略新的采样数据

普通模式下驱动程序在中断信号到达后每次传送 FIFO 容量 1/2 的数据量到主存,但是如果 FIFO 容量大于 8K 采样点后,每次传送的数据最大也只有 4K 采样点。

FIFO 被分为两步分:

  • 一部分用来接受新的采样数据,
  • 一部分将上次的数据传给主存

由此形成一个循环。而且驱动程序会检查数据的有效性,这种模式是一种安全传输模式但是速度较慢。

(2)快速模式:

这种模式是大多数 MF(S) 系列采集卡的缺省模式,驱动程序通过编程的 I/O 口将采样点从 FIFO 传给主存而不进行数据有效性检查,这样相比普通模式它消耗较少的 CPU 资源。实验结果表明 99% 的具有 PCI 主板的计算机都能较好的执行这种方式。

通过实际应用表明快速模式能够在保证实时性的前提下稳定的工作,因此课题中将采集卡设置为该工作方式。

进入主存的数据在主存中如何存储和处理也是影响实时性的一个关键因素,如果存储方式不正确即使在好的计算机系统也将显得效率底下。 PowerDAQ 驱动程序建立了一种高级圆形缓冲器( ACB )技术。如果应用程序和这种灵活的缓冲机制结合起来,那么整个系统的运行将更加高效。

ACB 技术用图表示如图 4.4 

一旦采集开始驱动程序FIFO 中的数据存入缓冲器中的头部,而应用程序从尾部读取数据,两者的操作可以以异步不同速度进行。

当然,也可以以计时触发事件驱动的方式让它们同步进行。

当完成一个特定的采样或采集数据达到某一个量后,为了能够通知应用程序及时处理数据,驱动程序将缓冲器分段成为帧结构。

当进入 ACB 的数据超过帧边界后,驱动程序将发送事件消息给应用程序。工作于该方式下如果采集速度过快使头部到追上了尾部指针,缓冲器将填满并导致采集暂时停止,此时程序将给出出错报告。为防止该情况出项,应配置较好的 PC机,并选取适当的 ACB 大小。当需要在 PC 机上处理数据时,必需知道数据流中的数据格式。每两个连续的字节构成了 A/D 转换器中的一个采样点。这些采样点以它们从 A/D 转换器出来的顺序在文件中显示,每一个数据字的形式会根据 A/D 转换分辨率的不同而不同,PD2-MFS-4-500/14 的分辨率为 14 位,它的数据字格式如图 4.5 所示。

 

4.2.2 软件实现的功能

激光焊接监测系统软件部分的目标是:可实现信号特征提取,焊接过程稳定
实时监测和典型熔透状态的判别

根据客户提出的功能要求,现将激光焊接监测系统的软件部分划分为五个模
块:

  1. 数据采集模块
  2. 用户界面模块,
  3. 信号及数据分析处理模块,//这是核心算法
  4. 系统自检模块。
  5. 报表生成模块。

另外还有两个后续功能模块:

  1. 实时监测模块
  2. 网络监测模块。

课题目前主要实现了以下几个功能模块:

  • 数据采集、
  • 用户界面、
  • 信号及数据分析处理 ,//这是核心算法
  • 简单的系统自检(采集卡状态检测)。

4.2.2.1 主机软件的数据采集

数据采集可以对可见光、红外光和声音信号进行采集设置。

前面对采集过程已作了介绍,这里只给出采集时的软件界面。

 

4.2.2.2 主机软件的数据分析(核心)

数据分析界面如图 4.8 所示:

  • 图中上半部分为原始信号时域图形,
  • 图中下半部分为数据分析处理后的结果。

激光焊接过程中的光、声信号不能精确地用数学函数来描述信号随时间的变化,它们是随机动态信号

在对动态信号的分析中,时域和频域表征了动态信号的两个方面:

  • 时域分析是以时间轴为横坐标表示动态信号特征,一般说来,用时域波形表示信号变化比较形象和直观,
  • 频域分析是以信号频率为横坐标表示动态信号的特征。而用频谱分析动态信号则显得简练,而且能很好的找到特征频率值。

目前对动态信号的分析越来越多的由时域频域发展,当然,这两者也是互相联系、相辅相成的。

(1)时域-统计分析

(2)频域分析

频谱特征是动态信号的基本特征之一 [41] ,频域分析常用到是傅立叶变换,按照傅立叶分析法,动态信号可以分为许多谐波分量,对其进行快速傅立叶变换( FFT )分析会得到信号的频谱分布情况。

利用 FFT 对光、声信号数据进行分析,最后得到的是信号幅值强度随信号的频谱分布的情况,频谱的高低成分与焊接状态有很大的关联

 FFT 主要是针对时不变信号,即对稳定状态进行研究,如对稳定正常焊接状态和在一定程度上“稳定”的非正常焊接状态时采集的信号进行分析。

而对于过程控制来说,感兴趣的却恰恰是从正常焊接状态非正常焊接状态变化的这个过程。而这是一个非平稳、时变的过程。对于这样的信号而言, FFT是无能为力的。

(3)时、频分析

为了能够对生产过程进行控制,在对信号的分析的同时,保留信号的时域信息是非常重要的,有必要了解激光焊接过程中每一时刻信号的幅度分布特点。

因此,目前的研究方向开始趋向于对采样信号进行时、频分析, 如利用短时傅立叶变换 (STFT) 。

目前较新的方法是采用小波分析对信号进行处理。小波分析的应用在于从时频分析的角度来分析激光焊接过程中缺陷的产生过程。小波变换能够把任何信号 ( 平稳的或非平稳的 ) 映射到由一个小波伸缩而成的一组基函数上,在信息量不受损失的情况下,得到分布在不同频段内的分解序列。这样,就可以根据研究的目的和需要,选取包含所需信息的频段序列,进行深层次信息处理,课题目前也在进行小波方面的信号分析。

(4)多传感器信息融合

除了上述的分析方法外,还要考虑到对多路采集信号进行多传感器信息融合,可用到的方法有统计决策法、 D-S 证据推理法和基于人工神经网络的方法。

(5)控制参数

 图 4.9 为参数设置软件的界面,它包括四个部分:

  • 实时信号监测
  • 设置工艺参数
  • 系统自检
  • 历史数据

由于有些参数前面已经介绍,这里介绍设置工艺参数界面,它是采集数据的准备工作。

设置工艺参数有焊接材料、材料厚度、接头方式、激光功率等 20 余项参数设置,而且在每次焊接完后可以随采样数据一起存盘

此外还有采集卡的设置和门限设置,门限设置就是通过设定一阈值来在焊接过程中及时判断采样信号幅值是否超出该阈值,若是则可以认为焊接出现缺陷。

4.3 软件总体框架

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

暗棕红色粉末ICG-COOH, ICG Carboxlaic acid,181934-09-8,ICG和PEG链接可在体内长循环

英文名:ICG-COOH ICG Carboxlaic acid CAS No:181934-09-8 外观:暗棕红色粉末 溶解度:在水或甲醇中溶解 纯度:90% 结构式: 西安凯新近红外荧光染料Near IRDyes激发和发射波长和颜色图 ICG NHS ester的NHS可以和蛋白…

八、闭包高级、对象、构造函数、实例化

闭包高级、对象、构造函数、实例化 闭包高级 函数被定义时生成[[scope]]->生成scope chain -> scope chain中存着上级的环境。 函数被执行的前一刻(预编译过程),生成自己的AO,排到scope chain的最顶端。 函数执行完毕的…

基于天鹰算法优化的lssvm回归预测-附代码

基于天鹰算法优化的lssvm回归预测 - 附代码 文章目录基于天鹰算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于天鹰算法优化的LSSVM4.测试结果5.Matlab代码摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率,对…

DFA的最小化

一、实验目的 1.熟练掌握DFA与NFA的定义与有关概念。 2.理解并掌握确定的有穷自动机的最小化等算法。 二、实验要求 输入:DFA 输出:最小化的DFA 三、实验过程 1.化简DFA关键在于把它的状态集分成一些两两互不相交…

一、ArrayList源码解读

ArrayList源码 一、前言 ArrayList在日常的开发中使用频率非常高,但是JDK是如何去设计ArrayList的,这就需要我们好好去了解底层实现原理,这样使用起来才能做到心中有数;当然,还能应付面试。本篇文章会围绕ArrayList的…

王道操作系统网课笔记合集

介绍 操作系统是什么? 计算机结构大概分为四层: 用户应用程序操作系统硬件 操作系统是一类系统软件,调度硬件资源,合理分配管理软件(因此操作系统又被称作资源管理器(resource manager)&…

简洁而优美的结构 - 并查集 | 一文吃透 “带权并查集” 不同应用场景 | “手撕” 蓝桥杯A组J题 - 推导部分和

💛前情提要💛 本章节是每日一算法的并查集&带权并查集的相关知识~ 接下来我们即将进入一个全新的空间,对代码有一个全新的视角~ 以下的内容一定会让你对数据结构与算法有一个颠覆性的认识哦!!! ❗以…

【Unity 3D 从入门到实践】Unity 3D 预制体

目录 一,预制体介绍 二,创建预制体 三,实例化预制体 一,预制体介绍 预制体是 Unity 3D 提供的保存游戏对象组件和属性的方法,通过预制体可以快速的实例化挂载不同组件的游戏对象,从而减少开发难度&…

使用光隔离的调制器在电机控制中进行安全、准确的隔离电流传感

介绍 在工业电机或伺服控制应用中,准确的电流测量是控制回路的一部分。目前的测量不仅需要尽可能准确,还需要安全可靠。 工业电机或伺服控制系统通常包含高压,在过流或短路等故障事件中,这些情况需要快速检测和整流&#xff0c…

Android开发基础

文章目录前言工程项目结构hello world界面布局代码操作新页面页面间跳转简单计算器的实现思路前端控件传递数据后端实现逻辑两个Activity之间传值发送数据返回数据SQLite简单使用利用语句写在后面写在后面前言 安卓(Android)是一种基于Linux内核的开源操作系统 使用java、kot…

不就是性能测试吗?竟让我一个月拿了8个offer,其中两家都是一线大厂

随着互联网的发展,单机软件的逐渐减少,系统从单机步入“云”时代,软件系统功能和规模也越来越庞大,盗版也越来越难,用户规模也越来越大,企业盈利随之爆发式地增长。 随着用户数量的增多,系统稳…

Chrome浏览器修改用户资料(User Data)的存放位置

2022.12.13一、 原先采用的在快捷方式中修改目标的方法,没有效果。二、创建链接1. 复制2. 删除3. 创建链接mklink参考用于缓解C盘压力,将浏览器用户数据存放于其他的指定位置。简单记录一下操作步骤。 其中用户数据可以如此查找,在浏览器地址…

数字虚拟人发展简史

虚拟人的发展史就是技术的发展史 作为元宇宙时代的基石,虚拟人的发展历史与制作技术的进步高度相关。在元宇宙概念中,未来每个用户都将依托虚拟人作为自己的化身进入虚拟世界中探索,要达成这个目的,就要求数字虚拟人不仅拥有人的…

java计算机毕业设计ssm智慧消防维保系统后端设计与实现3cmg0(附源码、数据库)

java计算机毕业设计ssm智慧消防维保系统后端设计与实现3cmg0(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都…

【毕业设计】微信小程序校园跑腿系统 校园跑腿小程序 校园跑腿微信小程序

一、前言 大学是一个小社会,我们在学校学习到专业知识的时候,有会遇到很多形形色色的任务,但最重要的依旧是社会经历。很多大学生都会想着在大学闯出一片新天地,所以他们往往会选择自己或者带上志同道合的朋友来一起创业。一次好…

泛微京桥通集成SAP,让采购流程闭环、业务管理一体化

SAP作为强大的业务处理平台,推动着组织采购管理走向数字化。其中的SAP MM(MaterialManagement)(物料管理)涉及到物料管理全过程,主要包括:物料需求计划、物料主数据、采购、供应商评价、库存管理…

简单聊聊 WebSocket

简单聊聊 WebSocket 1、简介 ​  WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议。 扩展: ​  WebSocket 与 Socket 的区别 WebSocket 是应用层的一个通信协议;Socket 是对 TCP(或UDP)抽象封装的一组接口&#xf…

浅谈责任链设计模式在框架源码中的运用

写在前面,该篇博文为我在部门的技术分享,所以文字记录不是特别详细。本文更像是一个大纲,由浅入深讲解责任链设计模式。 浅谈责任链设计模式在框架源码中的运用一、分享目的二、简单介绍三、逐个拆解四、源码环节1、Tomcat2、Spring MVC3、Sp…

【MySQL基础】什么是MySQL约束?什么是主键约束?

目录 一、什么是MySQL约束? 二、MySQL约束有什么作用? 三、MySQL约束常见七大类? 主键约束(primary key) PK 1.概念 2.主键约束的相关操作 添加单列主键 添加多列主键(联合主键) 通过修改表结构添加主键 删除主键 💟 创…

【Notebook系列第十三期】基于多模型推理任务的车辆特征识别

在之前的课程中,我们分享的推理任务大部分都只由一个模型构成,但在真实的业务场景下,往往需要我们将多个模型放在一起去运行,才能获取到这个任务的最终预期结果。 因此,本次分享将通过一个简单的示例演示如何使用 Ope…