基于C#的典型活动部件测控软件的设计与开发
为了验证典型活动部件在高低温真空模拟环境中的转动特性及运行寿命,分析了典型活动部件测试系统的工作原理与组成部分,并提出了测控软件测试系统要完成的任务,基于模块化与层次化设计思想,建立了测控软件开发的框架结构,利用.NET技术、多线程技术与数据库技术,借助C#语言开发了典型活动部件测控软件,实现了典型活动部件系统的实时通信、数据采集与存储,实时曲线显示、动态加载、历史数据查询等功能。最后,以防尘密封圈测试为例,验证了该方法的可行性和有效性。
0 引言(Introduction)
近年来,随着现代工业的飞速发展以及计算机在工业领域的广泛普及,对工业测试系统的自动化和信息集成化提出越来越高的要求。而测控软件作为工业测试系统的核心部分,是工业计算机完成对整个测试系统操作的管理命令集,以及用户掌握系统工作状况的最直接手段,其质量直接影响到系统的安全性和控制效果,从而影响到整个测试系统的稳定性和产品性能[1]。因此,所设计开发的测控软件应该具有实时性、可靠性、通用性、可维护性、易于操作等特点。
月面巡视探测器移动分系统和结构、机构分系统的驱动机构、传动装置由驱动电机、传感器、防尘密封圈、齿轮副、轴承、谐波减速器等多种典型活动部件组成,为验证活动部件在复杂月面环境下的转动特性和运行寿命,需要进行模拟极限高低温、超低真空环境下活动组、部件的性能与寿命测试。测试信息需要包括摩擦阻尼力矩及曲线、测量扭矩及曲线、测量转速及曲线、加载力矩及曲线、温度及曲线、转数与累积运行时间、测试数据实时存储和输出、运行状态提示、运行出错报警等。
针对典型活动部件测试系统的研制要求,本文在模块化与层次化的设计思想上,采用.NET技术、多线程技术与ADO数据库技术[2],开发了基于C#的典型活动部件测控软件,不仅实现了对该测试系统的实时通信、数据采集、数据存储、实时曲线显示、动态加载、数据输出、历史数据查询等功能,还对通用测控软件的设计开发以及工业测试系统的测量控制具有很重要的指导意义。
1 典型活动部件测试系统的工作原理与组成(Working principle and composition of typical moving components)
1.1 工作原理
典型活动部件测试系统主要是为了验证典型活动部件的转动特性以及运行寿命,在高低温真空模拟环境下进行活动部件的无源、有源及寿命测试。在测试过程中,测控软件通过MODBUS协议发送各种控制信号和指令给PLC,进行被测部件的驱动或加载以及电机转速与转向的设定,进而将高精度传感器采集被测件的扭矩、转速及转角信号存储在PLC中,然后测控软件将从PLC中读取的数据进行显示、保存和导出,来完成整个测试流程。
1.2 组成
典型活动部件测试系统主要由高低温真空模拟环境(真空罐)、驱动部分、传感器、加载部分、数据采集、PLC控制部分、工控机、测控软件等组成,如图1所示。
其中,测控软件作为该测试系统中的核心部分,应当具有美观友好的人机界面,信息查询灵活方便,数据存储安全可靠,极大限度地实现易维护性和易操作性等特点[3]。因此,需研制一套测控软件来完成测试系统所要求的以下任务:
(1)选择测试产品(防尘密封圈、谐波减速器、无刷直流电机、步进电机、活动部件)及相应的系统配置。
(2)实时曲线(测量摩擦阻尼力矩或测量扭矩及曲线、测量转速及曲线、加载力矩及曲线、温度及曲线)的动态显示。
(3)实时测量数据(累计运行时间、测量扭矩、测量转速、电机转速、累计圈数、累计转角、加载力矩、温度)的显示、保存及输出。
(4)运行状态的监测(运行状态、系统故障监测及报警)。
2 测控软件的设计与实现(Design and Development of Measurement & Control Software)
2.1 设计思想与方法
测控软件的设计采用模块化与层次化的思想,各模块间以及层次间通过接口与协议交互,使得设计的整体逻辑比较容易理解,这样便于软件的结构分析、设计、编程与目标实现,极大地提高了程序的重用性、灵活性、可扩展性和可维护性[3]。
.NET作为微软最新一代的开发工具,是生成、部署和运行应用程序的平台,以及解决规模应用程序的部署和操作难的问题。采用.NET技术可以简化开发过程,可提供交互性的编程语言,易于与其他应用程序实现交互操作[4]。
多线程是指Windows系统支持一个进程中执行多个线程的能力。在软件编写中,由于需要完成具有不同功能的多个线程,而采用多线程技术,可以使多个线程同时执行,在一段时间内完成更多的任务,这样可以大大提高CPU的利用率以及程序的运行速度和性能。
数据库是按照数据结构来组织、存储和管理数据的仓库。应用数据库技术,可以减少数据的冗余度,节省数据的存储空间,以及使数据具有较高的独立性和易扩展性,实现数据资源的充分共享。
2.2 软件的设计框架
根据典型活动部件的需求分析以及软件的设计思想与方法,开发设计了如图2所示的测控软件框架。
其中,设计的各个模块分别执行不同的任务,易于优化和扩展,也在一定程度上保持良好的性能,具体分析如下:
(1)通讯模块:通过设置相应的串口与MODBUS协议,实现测控软件与下位机PLC的通讯。
(2)零点测试模块:由于传感器存在零漂现象,故在测试前需采用此模块矫正传感器的零点误差。此外,该模块还可以在不启动电机的情况下进行手动测试,来测试系统的性能。
(3)产品信息、历史数据与帮助文档查看模块:可以方便直观地查看测试产品的信息以及相应的系统配置,根据测试的产品以及测试日期时间等来查看历史数据,以及以HTML帮助文档的形式查看软件的设计流程及使用说明。
(4)运行状态监测模块:具有模块化结构和强大的自诊断功能,方便对系统故障的分析和诊断。
(5)系统操作模块:通过动态的设定电机的转速和加载力矩的大小来达到测试效果。
(6)实时曲线显示及测量值显示模块:可以实时动态显示测试进程及当前测量值的大小,其中曲线能够显示当前趋势和一段时间内的历史过程。
(7)数据存储、显示与输出模块:通过连接Access数据库,实现数据的存储显示。然后将测量数据以Excel格式输出到磁盘上。
2.3 软件的实现
该测控软件运行在装有Windows XP操作系统的工控机上,选用Microsoft Visual Studio 2010(VS2010)和Access2007作为开发平台,采用的编程语言为C#高级语言。最后将开发设计的测控软件使用 Visual Studio Installer 创建分发给用户的安装程序包,用户可通过向导来运行安装文件和执行安装步骤,以安装应用程序。以下是测控软件实现的一些关键技术:
(1)串口通讯
采用MODBUS协议,可以完成串口、输入输出模块地址、通讯参数、输入输出通道等信息的设置以及对串口的设置,进而实现测控软件与下位机之间指令与数据的传送。
(2)实时曲线的绘制
ZedGraph是一个用C#编写的开源图形组件,用于绘制任意数据集的二维线型、条型、饼型图表,支持各种.NET版本。它以简洁、方便、功能强大和开源等特点而成为程序开发中广泛使用的图表控件。通过调用ZedGraph控件实现测量数据的动态图形化显示。
(3)多线程的实现
由于该软件的线程包括:主框架线程,数据采集线程,数据库的线程,图形显示线程等。为避免多个线程同时访问统一块内存,可采用线程池。线程池可以同时运行多个任务,还可以使用框架类。对于线程同步的情况来说,它可以限制某一时刻只允许一个线程访问资源。这种情况相当于给线程实现了锁机制,可用lock关键字保证代码的安全运行。
3 实验结果与分析(Experimental result and analysis)
以下以防尘密封圈测试为例来说明测控软件的实现流程。软件的运行界面如图3所示。
根据测试系统的测试原理,PLC通过串行口传送由传感器采集的数据,测控软件实现数据的实时监控和管理。该软件通过调用组件,实现数据显示的图形化;通过Access数据库实现数据的存储、显示与输出功能。实验结果表明,基于C#的测控软件在满足界面美观、各项功能运行稳定的同时,并能够很好的实现测试系统的测试要求。
4 结论(Conclusion)
本文依据典型活动部件测试的测试要求以及软件的需求分析,提出了基于C#的测控软件设计开发,实现了对测试系统的实时通信、数据采集与存储,实时曲线显示、动态加载、历史数据查询等功能。该软件运行稳定,且实时性较好,具有很好的实用价值。此外,典型活动部件的测试系统类似于单关节机器人控制系统,从而对多关节机器人控制系统的设计与开发具有很好的指导意义。
作者:王蕾 贾利军 付中涛 来源:农机使用与维修 2016年7期
上一篇:软件工程开发的现状及发展的探讨
下一篇:嵌入式软件开发中UML的应用探讨