1、基于 Java 的高频疲劳试验机监测软件的设计 陶森林 李晖 苗中华 徐舟舟 韩科力 上海大学机电工程与自动化学院 现代农业科技股份有限公司 摘 要: 介绍了一种基于 Java 的高频疲劳试验机监测软件的设计方案。通过 TCP/IP 协议建立 Socket 对象进行数据的通信, 安全、可靠地接收下位机传输的数据, 并且界面采用网格布局管理器进行设计。经试验仿真测试, 该系统具有极高的可靠性和操作方便的优点, 对国内高频疲劳试验机监测软件的进一步研发具有借鉴意义。关键词: TCP/IP; Socket; 下位机; 网格布局; 仿真; 收稿日期:2017.5.5基金:国家重点研发计划项目 (201
2、6YFD0701401) Design of Monitoring Software of High Frequency Fatigue Test SystemAbstract: This paper proposes design of the measurement and control software of high frequency fatigue test system based on a Java language.TCP/IP protocol to establish the Socket object for data communication, it secure
3、ly and reliably receives the data transmitted by the lower computer.The interface is designed using a grid layout manager.Keyword: TCP/IP; Socket; the lower computer; grid layout; simulation; Received: 2017.5.5高频疲劳试验机监测软件是实验人员与监测系统进行人机交互的平台, 目前国内外市场上对试验系统监测软件方面比较匮乏, 监测软件系统除了能够在试验中进行执行机构的运动控制和数据及时采集处
4、理外, 还要界面更加直观、人性化、易于操作、灵活性高、抗干扰能力强、系统稳定性高等等。另外。随着操作系统的类型增加和处理器位数的变化, 可移植性成为一个亮点。不同的环境、不同的操作平台需要不同的程序, 如果在用过去在 32 位处理器上编写的程序, 则会出现兼容性问题, 结果出错, 更为严重的是机器崩塌。因此, 本文设计了基于 Java 的高频疲劳试验监测系统软件, 以解决这些难题。1 系统结构本系统的整体结构框图如图 1 所示, 监测系统软件结合这 6 个模块的功能完成高频疲劳的检测, 主要用于各种金属, 非金属及符合材料试样的拉伸、压缩、弯曲、剪切、剥离、撕裂等力学性能试验, 可求出试验最大
5、力、抗拉强度、压缩强度、弹性模量、断裂延伸率、屈服强度等参数, 适用于各行业力学实验室和质量检验部门的材料力学特性试验。下面主要介绍软件界面管理、数据采集、数据管理模块的设计。图 1 系统整体结构框图 下载原图2 软件设计2.1 软件界面模块设计软件界面管理主要包括曲线呈现、数据显示、控制模块和数据处理模块。该模块使用 Java Swing 开发工具, JFrame 框架窗体, 采取网格布局管理器, 然后逐步向各个 Panel 添加内容。创建一个 Main Frame 对象继承 Jframe 类。一般曲线的呈现方式有两种, 一种是平移式, 另一种是压缩式。由于压缩式最大量程刻度随着数据的增大而
6、增大, 整个图像压缩针对实际坐标系呈现需求, 还需要考虑呈现过程中坐标刻度间隔的校正问题, 如果采用特定间隔值当显示的数据值越来越大时, 会导致坐标系刻度的堆积显示, 所以有必要对坐标系的刻度间隔值进行算法矫正。因此本文采取平移式呈现。平移式是在显示区域特定间隔大小来表示特定的值范围, 当接近最大量程刻度时采用平移方式, 图像向低刻度方向平移, 剔除低刻度区域补上高刻度区域但刻度间隔不变。首先需要创建曲线呈现的绘图区, 然后将绘图区的颜色刷成灰色, 横坐标的线用浅绿色, 纵坐标的线用红色, 全部设置成虚线, 通过函数 c=new XYChart ( (screen Size.width 觹 7
7、6/100) , screen Size.height-300, 0x EEEEEE, 0x EEEEEE, 0) 建立 XY 轴, 将绘图区域设置为自适应式, c.set Plot Area (55, 20, (screen Size.width 觹 76/100) -70, screen Size.height-300-60, 0x8B8B83, -1, -1, c.dash Line Color (0x CD0000, Chart.Dot Line) 将X、Y 轴设置成虚线, 颜色分别为浅绿色、红色。曲线绘制的大致流程图如图2。图 2 曲线绘制流程图 下载原图2.2 数据采集模块设计数据
8、采集模块主要负责跟下位机进行实时的数据传递, 在数据传递的过程中, 本系统需要满足两方面的要求:第一、需要能够进行实时采集数据;第二、同步在线处理庞大的数据量。在满足这两个要求的同时, 在采集的过程对精度和速度的要求也是非常的高。为了避免单线程造成数据的滞后, 选用多线程技术。在进行实时数据采集的过程中, 存在着各种的噪音和干扰, 很难避免误差的消除, 只能尽可能减小误差的影响。为了尽可能减少误差, 一个监测系统单纯使用硬件去除和抑制误差和干扰是不够的, 仍然需要从软件方面考虑。本文选取滑动平均滤波算法进行滤波, 实现数据快速、准确的采集。通过函数 m Bufoutbufout Sub=mea
9、n (win Array) 调用取平均值函数, System.arraycopy (bufadd, bufadd.length-m Window Size+1, m Temp, 0, m Window Size-1) ;return m Bufout;返回滤波完成的数据。在数据采集的过程中, 为了保证数据的安全性、整体性、可靠性, 选取 TCP/IP协议通信。在监测软件与控制系统建立连接的过程中, 需要建立三次握手, 完成数据传输后在断开连接的过程中, 需要建立四次挥手。在通信过程中, 通过函数 Socket s=new Socket (ipadress, port) 建立 socket 通道
10、, ipadress 下位机 IP 地址, port 下位机的端口号。本文通信协议规定上位机每隔 1ms 给下位机发送一帧指令, 下位机接收到指令, 然后给上位机返回一帧数据, 这样做的目的更方便控制数据的频率, 但是也导致了数据传输的效率降低。为了加快传输的效率, 本文采用双通道模式, 上位机既可以作为 Client Socket, 也可以作为 ServerSocket, 也就是说, 一条通道上位机作为 Client Socket, 主动和作为 Server 的下位机连接, 来建立通信, 通过函数 Input Stream Input=s.get Input Stream () 定义一个输入
11、流对象, while ( (len=Input.read (buf) ) 选=-1) 循环读数据, 将数据加入缓存区;另一条通道上位机作为 Server Socket, 主动和作为 Client 的下位机连接, Buffered Writer writer=new Buffered Writer (new OutputStream Writer (s.get Output Stream () ) ) 定义并实例化一个输出流对象, writer.write (WRITE_MES) 将数据发送给服务器, writer.flush () 清空输出流, 并将缓存区的数据强制送出;两个通道互不影响, 各
12、自负责自己的数据, 加快了发送、接收数据的高效性, 提高了通信传输速度, 避免了数据等待时间。2.3 数据管理模块设计由于实验过程中涉及到很多数据, 比如:材料类型、抗压强度、试验温度、面积、上屈服点等等。为了保证数据的完整性和安全性, 采取 JDBC 技术与数据库相连, 将数据存放到数据库中。数据库实现数据共享、减少数据的冗余度、数据的独立性、数据实现集中控制和数据一致性和可维护性。针对目前市场一些主流的数据库 Oracle、DB2、My SQL、SQLServer 的特点, 结合本系统的特点, 选取My SQL 作为系统的数据库。图 3 My SQL 数据库初始化操作流程 下载原图在应用程
13、序使用 My SQL 时, 首先需要进行的是数据库连接, 连接完毕以后, 在数据到来后, 直接进行数据库写入修改等操作。由于实验过程数据量庞大, 单独一条数据一条数据地插入, 会严重影响存储数据的效率, 本文采取先将数据放到缓存区, 达到 100 条数据时, 批量插入数据库中, 这样大大提高了速率。初始化操作流程如图 3, 完整操作流程如图 4。图 4 My SQL 数据库完整操作流程 下载原图由于采集到的数据只是力、位移等等, 因此需要对数据进行分析。数据分析试验按照国标金属弯曲力学性能试验方法 (YB/T 5349-2014) , 在室温 1035下进行, 用试验机软硬件模拟数据测试板材试
14、样三点弯曲的弹性直线斜率和抗弯强度测定。三点弯曲试验装置为图 5 所示。其中, F 为所施加的弯曲力, Ls 为跨距, f 为挠度。图 5 三点弯曲试验示意图 下载原图弹性直线斜率 mE的测定:抗弯强度 Rbb的测定:实验数据处理:实验数据及计算结果存入表 1, 绘制弯曲力-挠度曲线 (F-f 曲线) 。表 1 原始记录数据表 下载原表 3 实验结果图 6 Windows 环境下测试完成时界面 下载原图高频试验机监测软件测试的结果如下:对已采集到的试验力和变形进行算术分析, 仿真分析中, 实际前段是材料的弹性形变阶段, 所以数据在滤波后基本呈现线性关系, 当材料变形超出弹性形变后试验力和变形呈现抛物线形, 直至材料断裂, 测试结束, 运行结果如图 6 所示。参考文献1陈育萌.基于 VI 的高频疲劳试验及系统分析软件集成技术的研究D.杭州:浙江工业大学, 2009 2胡玲笑, 高红俐, 余超, 等.高频疲劳试验静载载荷控制建模及仿真实现J.机械制造, 2010, 48 (10) :80-83 3李跃光, 姬战国.国内高频疲劳试验机的技术现状及其发展J.试验技术与试验机, 2006, 46 (1) :1-4 4林松.工业控制中实时数据库系统的设计与实现D.福州:福州大学, 2006 5石沙.基于 Qt 的跨平台视频监控客户端的设计与实现D.西安:西安电子科技大学, 2013