您好!欢迎来到源码码网

通用数据回放软件开发研究

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-04-15 10:41
  • 阅读:531

在工程试验中,数采系统会采集并记录海量的试验数据,浏览、查看数据是分析试验结果的基本方式[1]。以常见的txt和Excel格式的数据文件为处理对象,利用LabVIEW开发平台,设计了一款图形化数据回放软件。该软件不局限于数据源文件的具体记录形式,可根据配置文件自动将数据曲线显示成适合的比例,并可进行离散量的图像化。另外,回放软件提供标尺工具,允许用户任意拖拽追踪目标数据点。将详细讲述回放软件的设计实现。

1数据源存储特性

txt文本格式的数据文件可以视作字符型二维数组,每一行代表一条数据记录,以行结束符EOL作为单条记录结束标志;同一行内,一般以空格、制表符、逗号或者分号作为不同数据项(列项)的区分间隔。Lab-VIEW提供专用的文本读取函数,可按行读取任意数量的文件内容,输出的结果为一维字符数组,每个数组元素为文件中一行记录内容。利用字符处理函数可将按行记录的数据项分离出来。Excel格式文件本身即保存为二维数组形式,但不同列项的数据类型可能不一致,将磁盘上的Excel格式文件调入到内存以后,文件中的数据首先被保存为变体类型的数据[2],需根据原始数据类型对变体数据进行还原。

2软件系统架构

软件系统架构包括以下几个部分:初始化、读取数据源文件、数据处理转换、图形化显示以及响应用户操作。初始化建立软件运行环境,将前面板(用户界面)恢复至默认状态;读取数据源文件将源文件从磁盘调入内存,为后续数据调用处理建立条件;数据转换处理的功能是将调入到内存中的原始文件数据转换成实际的数据类型,并对需要给予曲线显示的数据进行合理缩放,即归一化处理;图形化显示功能将归一化之后的数据内容绘制成曲线,并添加标注、可移动标尺等辅助对象;用户操作响应的功能是方便用户对具体的数据曲线进行详细分析,通过响应用户事件的方式来实现,事件源包括移动标尺、鼠标移动以及用户菜单点击等多种形式。

3软件设计

数据回放软件采用LabVIEW作为开发平台。整个软件分前面板(用户界面UI)设计和程序框图设计。前面板提供数据显示及用户操作窗口,为人机交互界面;程序框图定义整个软件功能的实现,为回放软件核心。3.1前面板前面板向用户提供结果显示窗口以及操作命令输入控件,力求简洁、美观和高效。回放软件的前面板效果如图1所示。3.2程序框图开发程序框图定义整个软件的功能。考虑到回放软件的功能是响应用户操作进行数据文件可视化,所需线程单一,程序框图架构设计成单线程模式,采用事件结构来完成对所有的用户操作的响应。程序框图按功能分为5个模块:初始化、读取数据源文件、数据转换、图形化显示以及辅助功能。3.2.1初始化程序开始运行后,首先将前面板恢复至默认显示状态:清空图形显示区和数据指示区,完成文件菜单项配置,设置程序运行环境。3.2.2数据源文件读取当用户触发绘制图形的事件后,程序首先读取配置文件获取目标文件(数据源)的解析向量,即文件格式信息。这些信息包括:目标文件类型(txt或Excel)、全部数据通道标识、待显示数据通道标识、数据通道的数据类型(字符、模拟量、时间或者离散量)以及数据范围。根据文件类型调用不同的文件读取函数,将数据源文件内容调入计算机内存,并分离出用户关心的目标数据,即需要显示/观察的数据,组织成2维变体数组,等待下一步处理。3.2.3数据转换变体数据无法直接呈现给用户分析查看,必须将其还原才能进行显示。根据数据通道的数据类型调用相应的转换函数将变体数据予以还原,并分类存放。字符和时间类型的数据不需绘制曲线,直接在数值观察区显示。模拟量和离散量类型均需进行特殊处理。模拟量用来表示实际的物理数据,一般均存在有效数据范围,如果将表达范围差异巨大的参数绘制在同一图形区域,必然会导致表达范围小的参数不能合适显示。解决的途径有设置多个坐标轴(Y轴),每个参数根据实际需要进行关联。当同时需要绘制的参数项目(对应曲线数目)较少时,这种方式可以取得比较满意的效果;当曲线数目较多且各自的表达范围差异很大时,需要的坐标轴(Y轴)也会急剧增多,而过多的Y轴会占据较大的图形表达区域,显著降低曲线图形的观察效果。另一种方法是只设置一个Y轴,对所有的参数进行归一化处理:根据各个参数的表达范围,对其进行合理的缩放变换,使得所有参与绘制曲线的参数范围统一到同一个表达区域,然后将所有的参数项目关联到唯一的纵坐标轴,该坐标轴的表示范围为归一化的表达区域。归一化变换公式如下:(1)设参数的实际物理范围为(MIN,MAX),归一化处理的目标表达区域为(a,b),则(1)式中偏移量和缩放因子求解如下:离散量只有0和1两种状态,多通道的离散量需要经过相应的变换和平移后,才能与模拟量混合显示在同一坐标轴(归一化)下。设c[i][j]为离散通道i的第j个元素(0或1),单条离散量曲线占据(b-a)/10的纵向表达空间,其中曲线绘制占据(b-a)/20的空间,相邻两条离散量曲线之间间隔(b-a)/20的距离。因此,第i通道的离散量变换公式为:(4)3.2.4图形化显示经归一化转换之后的数据分别按模拟量与离散量存储在2个二维数组中,将其合并成一个数组后直接赋值给图形Graph控件即可完成曲线绘制,并触发Graph值改变事件。在Graph值改变事件响应中,进行下列操作:给每条曲线添加名称标注;设置曲线的颜色、线条宽度;通过设置标尺索引Index属性将标尺置于中间位置,并获取标尺处全部参数的值信息,刷新数值显示列表框。3.2.5其他功能该模块是通过事件结构响应用户的相关操作,包括图形缩放、移动标尺、更改曲线显示属性、软件系统设置以及保存图形当前数据等,事件源包括点击控件、标尺移动、快捷菜单以及用户菜单等。Graph控件自带图形缩放按钮,缩放后触发图形坐标轴(X轴)范围改变事件,在该事件处理程序中更新标尺的Index属性,并通过事件转发的方式触发标尺移动事件,继而实现刷新数值显示列表框的目的。软件系统设置通过用户菜单弹出设置窗口,设置内容有(1)创建、编辑/修改项目配置文件,图2是创建配置文件界面;(2)设置读取文件的类型、起始位置、读取长度,以及取数间隔等,这对于处理文件的数据规模较大,而计算机内存不足的情况十分有用,可以实现分段查看数据,并减少读取文件的时间。保存图形当前数据的作用是获取当前图形显示范围内(X轴的坐标范围)全部参数数据,并保存为txt文本或者Excel格式文件,以供后续处理。

4使用验证

图3是打开某Excel格式数据文件的实际效果。回放软件能识别、读取这两种格式的数据文件,绘制用户关心的数据曲线,并添加标注予以区别。更改配置文件即可实现任意数据文件(txt或Excel格式)的回放。5结语介绍了基于LabVIEW的通用数据回放软件的设计与开发,考虑到使用过程中回放软件与用户交互性强的需求,开发过程中充分利用LabVIEW数据流编程特点,仅采用事件结构实现了全部的用户事件响应。回放软件通用性强,配置简单,图形绘制效果好,并方便用户观察数据,具备很好的推广价值。


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 陀螺匠OA办公系统源码 PHP + Vue 前后端分离 完整可商用
  • 陀螺匠OA办公系统源码 PHP + Vue 前后端分离 完整可商用
  • 项目介绍《陀螺匠》是一套采用Laravel9框架结合Swoole高性能框架与Vue.js前端技术栈构建的AI+低代码双引擎智能办公系统。陀螺匠深度融合了AI智能体以及低代码开发平台,系统简约,易于功能扩展,方便二次开发。旨在为企业提供一站式、数智化转型的全方位解决方案,助力企业高效运营与智能决策。源码说明源码说明:项目代码100%开源,基于AGPL-3.0,支持免费商用!技术栈:系统基于Laravel9+Swoole+Vue.
  • 软件教程
  • 来源:CRMEB
  • 编辑:CRMEB
  • 时间:2026-03-27 15:33
  • 阅读:393
  • open claw最近很火,如何理性看待?
  • open claw最近很火,如何理性看待?
  • openclaw是2026年初科技圈最火爆的现象级话题。它不仅仅是又一个AI产品,更被百川智能的王小川誉为与ChatGPT诞生同等重要的里程碑——标志着AI从”只会说”的对话者,进化到了”能够做”的行动者。对于这股全民”养虾”热潮,我的观察是:它代表了一次人机关系的革命性跃迁,但同时也是一场充满风险与泡沫的狂欢,其真正的价值需要在喧嚣褪去、安全与成本的挑战被克服后才能显现。下
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-17 11:06
  • 阅读:432
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序有什么区别
  • 原生小程序和封装的小程序是两种不同的开发模式,主要区别在于开发方式、性能表现、代码维护以及跨平台能力。为了让你更清晰地理解,我们可以把“原生”比作用钢筋水泥直接盖楼,而“封装”则是用预制板或套件来组装楼。以下是详细的对比分析:1.定义与本质原生小程序:定义: 直接使用微信官方提供的开发工具、语法和API进行开发。语言: 使用微信自己定义的一套技术栈(WXML(微信标记语言)做结构、WXSS(微信样式表)做样式、JS
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-03-06 11:54
  • 阅读:666
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • 基于NetCore(Razor Page)开发的Cms建站系统MIT协议
  • FytSoaCms一款基于NetCore2.2/3.1(RazorPage)功能强大的Cms建站系统,支持前后端分离。简介:模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。FytSoa是一套基于NetCore+SqlS
  • 开发工具
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 22:21
  • 阅读:592
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • 基于JAVA开发的企业级平台微信公众号管理系统SmartWx
  • SmartWx微信公众号管理系统是一个完整的微信公众号web操作版,直接编译即可运行。让用户不再用关心微信的底层接口,直接使用页面进行操作,简单方便。包括服务器绑定、文本管理、图文管理、菜单管理、粉丝管理、群发消息等。技术框架开发语言:JAVA数据库:MYSQLJAVA开发框架:SpringMVC+Spring+Mybatis缓存框架:j2cache前端开发框架:Layui+JQuery+html前台模板引擎:art-templat
  • 源码教程
  • 来源:gitee
  • 编辑:源码码网
  • 时间:2026-01-24 21:53
  • 阅读:601
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部