标题 | 计算机网络自动检测控制系统软件开发设计 |
范文 | 吕星宇 摘 要: 针对计算机网络自动检测控制系统的远程检测诊断需求,提出并设计了单服务器数据处理、多客户端数据采集的网络化自动检测系统。系统依据软件组件间的数据传输原理及基于DataSocket的技术方法,在LabVIEW环境中给出了基于多线程技术的服务器端和客户端的实现方法。最后通过波形文件的测量对系统进行实验,实验结果表明设计的检测系统是切实可行的。 关键词: 自动检试; DataSocket技术; C/S 模型; 计算机网络化; 多线程技术 中图分类号: TN911?34; TG202 文献标识码: A 文章编号: 1004?373X(2017)01?0099?05 Abstract: Aiming at the requirement of the computer network automatic detection and control system for remote detection and diagnosis, a network automatic detection system with single server data processing and multiple clients data acquisition is proposed and designed. According to the data transmission principle among the software components and the technologies based on DataSocket, the multithreading technology based implementation method on the server side and client side is presented in LabVIEW environment. The experiment of the system was carried out by the measurement of the waveform file. The experimental results show that the detection system is feasible. Keywords: automatic test; DataSocket technology; C/S model; computer network; multithreading technology 0 引 言 随着虚拟仪器技术及计算机网络通信技术的快速发展,计算机网络自动检测系统已成为发展趋势。本文在对DataSocket技术进行研究的基础上,设计了便于服务器和网络进行实时数据交换的通信模块。同时运用软件工程的设计思想,以LabVIEW为平台开发了操作简便、界面友好的客户端程序。实现了对装备的远程测试诊断,从而提高了测试效率,降低了测试成本,对各领域通信保障能力的提高具有重要意义。 1 系统的总体方案设计 1.1 系统的总体结构 本文采用如图1所示的组网方式构建网络化自动检测系统,不同的用户在各自地域利用检测设备对被测对象进行数据采集,并通过网络连接请求服务器进行数据分析并返回分析结果。 每一个自动检测的实现都需要整个系统协同工作,各主要功能单元的分工如下: 设备用户端:主要负责用户接口; 服务器端:从用户端接收用户的请求信息并对信息进行处理,得出处理结果,并返回给客户端; 检测单元:是实现检测功能的关键环节,接受设备用户端的控制,与被测设备通过适当的接口相连接,采集输入信号并输出激励信号; 网络通信:服务器端和设备用户端都须支持同样的网络协议,以便能在整个网络环境中进行通信; 数据库:主要用于存储设备信息、用户信息及检测记录等。服务器在进行用户管理时,会对用户信息表进行更新。 1.2 自动检测系统的硬件平台 自动检测系统的硬件平台主要由检测控制器、检测仪器资源、开关系统、信号接口装置和检测总线五部分组成,具体如图2所示。 基于VXI和PXI的总线检测系统的检测能力大大增强(尤其是对现代多输入多输出数字电路的检测能力[1]),同时检测范围也得到了很大的拓展。 检测系统硬件平台的主体是一台由多种NI模块集成的基于PXI总线的机箱式检测设备。通过此设备提供所有被测单元需要的激励,被测单元产生的所有响应数据也都通过该设备来采集[2?3]。 系统的具体结构如图3所示,除检测设备的主体部分外,还设计了一个设备公用接口装置。 1.3 通信模式及关键技术设计 由于本系统中用户设备端对控制检测设备进行直接操作,且服务器和客户端都需要运行软件完成相关功能,因此采用网络应用中常见的基于桌面应用的C/S通信模式[4]。在C/S模式中,服务器端的进程为客户端的虚拟仪器应用进程提供服务,多台计算机执行不同的功能,实现不同的服务器与用户角色,借助网络环境可实现数据的远程检测及处理。 DataSocket是NI公司提供的一个基于TCP/IP协议的网上实时数据交换开发工具,支持本地文件的I/O操作、HTTP和FTP文件传输和实时数据共享,并提供了统一的API函数。LabVIEW不能直接对数据库进行访问,但其提供了丰富的外部程序接口[5]。由于Windows已经包含了ADO组件,所以通過ADO组件与ODBC连接,就能够访问任何支持ODBC的数据库。在使用LabSQL之前需在Windows操作系统中的ODBC数据源中创建一个DSN,数据库与LabSQL之间的连接也是建立在DSN基础上的。 2 系统软件工作流程及功能分析 2.1 系统软件工作流程分析 计算机网络自动检测系统对应用软件的要求主要有可靠性、实时性、安全性、有效性、开放性、可维护性几方面。为保证上述性能,设计的计算机网络化自动检测系统由检测设备、检测用户端和远程服务器组成。在进行检测时,用户通过主控机控制检测设备完成相应的检测操作,检测数据通过网络连接传送到远程服务器进行处理分析,整个系统的主要工作流程图如图4所示。 系统所需的功能模块应该包括:运行于客户端的检测模块、实现服务器和客户端通信的网络模块以及服务器端为用户请求提供服务的运算模块。 2.2 系统软件模块功能分析 根据系统功能需求特点,对软件功能模块进行划分,具体如图5所示。 系统管理模块包括操作管理、检测诊断程序管理、检测任务管理、操作人员管理和设备管理,具体功能如下: 操作管理:接收用户的远程登录请求命令并进行分析诊断,然后调用不同的响应程序执行相应的请求命令; 检测诊断程序管理:管理本系统的所有检测分析诊断程序; 检测任务管理:管理每一项检测任务中的检测记录和分析诊断结果,并保存到相应数据库中; 操作人员管理:用于管理操作人员信息; 设备管理:记录每个能与服务器连接的设备用户端检测设备的配置状况,设备端被废除后要删除设备端信息,设备端检测单元进行配置变更时也要及时在服务器中更新设备的相关信息。 分析诊断模块能够提供故障诊断的在线支持,专家系统支持,并实现故障定位及隔离。 网络通信模块包括通信连接、数据发送和数据接收,各部分的功能如下: 通信连接:建立通信连接,为数据传输提供通信通道; 数据发送:将缓冲区内等待发送的数据传送到远端接收端口; 数据接收:将远端发送来的数据接收到相应缓冲区,以供进一步分析处理。 检测资源模块将ATE中仪器的性能、控制方法存储到器件模型文件中,将适配器的描述存储到适配器模型文件中,将配置信息存储到配置模型文件中。用户可以对器件模型文件、适配器模型文件及配置模型文件进行修改,并对适配器模型文件进行处理,将适配器模型文件中的信息和前一步中信息的处理结果进行综合,从而连线数据库。完成系统本身的检测、校验。 检测执行模块包括激励信号配置和检测控制,各部分的功能如下: 激励信号配置:根据检测任务需求,在软件平台上进行各检测设备的激励信号配置; 检测控制:控制各个检测系统及其所有的资源,根据输入的激励信号采集输出的响应信号,完成检测任务。 3 系统的软件设计 3.1 数据库的设计 在本系统中需存储大量的信息,为便于存储检索,本文通过设计的数据库VItest对网络化虚拟仪器检测系统信息进行管理。主要的表格有用户信息表、设备信息表、服务程序列表。其中用户数据表的形式如表1所示。 在增加或删除用户,或用户登录退出时,系统都会对表1进行维护。增加新用户时,由系统管理员在表中增加一个新用户记录,在新用户登录时,就会检查表中是否有相应的记录。 3.2 系统组件间通信的实现 DataSocket支持多种数据传输协议,本系统采用的是DSTP协议。由于不同协议采用的URL不同,所以DataSocket可通过URL判断协议类型。 本系统中收发两端的每一个数据项的通信都是相互独立的,设计原理相似,因此只对某一数据项的设计进行分析。由于LabVIEW中提供了DataSocket编程的很多VI,用户可以调用这些VI直接完成对数据项的读、写操作[6]。 3.3 客户端程序设计 3.3.1 多线程技术及动态载入VI 基于自动检测系统的需求实现和功能特点,客户端的程序设计采用多线程技术[7]。本系统中,激励信号的输入、采集以及数据的通信等都需要同时进行。系统客户端的程序流程如图6所示。 由于系统规模较大,一个面板很难显示所有的内容,需要设计简洁的多面板人机界面。为了减少内存的占用并提高系统的运行效率,利用 LabVIEW的SubPanel方法节点实现各功能VI的动态载入。 本系统不同功能模块都有相应的显示界面,为了实现各功能界面的切换,在LabVIEW中可通过SubPanel实现该功能,SubPanel能够在一个VI的前面板中包含其他VI的前面板[8]。 3.3.2 各功能模块的设计 激励信号配置VI模块设计:系统为用户提供了便捷、直观的信号配置面板,用戶可以在控制面板上单击某个按钮或改变数值即可改变输入的激励信号参数。本VI模块采用”事件”结构和条件结构设计程序。 响应信号采集VI模块设计:该VI模块共有五个独立的程序模块分别进行静态数据采集程序,电压、电流测量的程序,动态数据采集的程序,模拟信号测量的程序,信号采集的程序。 用户登录VI模块设计:用户信息存储于数据库中,用户登录时通过访问用户信息数据库对用户身份进行验证,用户登录VI为独立的功能模块,输出布尔类型信号,用户通过验证则输出真,并启动自动检测系统。 用户管理VI模块设计:用户管理可以进行”密码修改”、”删除用户”、”增加用户”等操作,程序设计则采用条件结构。 3.4 服务器程序设计 3.4.1 多线程设计 一般处理多任务有两种方式:循环处理和并发处理。本文中要求可以同时处理多个用户请求,并且要求响应的速度快,执行的效率高,因此采用并发处理方式。VI服务器采用多线程机制实现并发,同时完成用户管理,设备管理等功能。VI服务器中的主要线程有:初始化VI服务器,监控用户客户端的连接;处理用户请求线程; 设备管理线程;服务程序管理线程。 不同线程间,是通过事件触发来控制多线程之间同步有序的工作,线程之间的通信采用内存的方式交换参数。服务器端程序流程如图7所示。 3.4.2 多线程实现 监听用户的连接线程,主要完成以下几方面的功能:初始化系统; 建立DataSocket连接,等待用户连接;检验客户身份;根据用户请求类型分配相应处理线程。 本系统中服务器能为每一个用户请求分配处理用户请求的线程,从而能同时为多个客户端服务。 4 系统软件检测检验 以波形文件的测量分析为例对设计的检测系统进行实验。两个客户端分别将采集到的模拟波形发送到服务器端,服务器端分析出波形信号的振幅、最高电平和最低电平、脉冲时间间隔、频率周期、周期均方根等,并将结果分别回送至客户端。 4.1 配置与操作 检测平台需在服务器端设计一个用于波形测量分析的服务程序WaveTest.vi,并通过服务器端的服务程序管理功能添加到系统中。在客户端A运用到 “模拟输入”、模拟输出”、“信号配置”三个VI模块完成信号的产生与采集,将波形的分析结果在客户端的“结果发布”模块中显示。客户端B通过产生一路模拟信号发送到服务器端,并接收服务器端的分析结果。检测客户端A涉及的硬件模块有:用于向被测单元提供模拟输入信号的D/A模块,用于波形信号采集的示波器模块及用于信号转接的矩阵开关模块。由于试验条件限制,没有使用检测对象与适配板接口相连,而是在适配板端口将提供模拟信号的端口直接与波形信号采集的端口相连,期间利用矩阵开关进行一次信号的转接。信号的流向如图8所示。 在客户端A完成检测硬件连接等外部工作之后,可根据登录检测系统完成检测任务,客户端的操作流程如图9所示。 4.2 分析结果 客户端A根据以上操作,在客户端“模拟输入”模块配置如图10所示的模拟信号,由于该信号没有输入任何被测设备而直接被“模拟输出”模块采集并且传送至服务器,因此服务器端调用的“波形测量分析”服务程序即为对该波形的分析,分析结果可从客户端的“结果发布”模块窗口读取,具体如图11所示。客户端B的输入和结果同端口A类似,说明系统是有效可行的。 5 结 论 本文通过网络技术实现了用户与检测设备的远程通信,能够对装备进行远程检测诊断,按照C/S模式设计并实现了由客户端和VI服务器组成的基于计算机网络的自动检测系统,着重研究了软件中的组件间的数据传输原理和实现方法,实现了在设备端进行数据采集并发送至远端服务器进行分析处理的功能。但还无法完全保证数据传输的实时性和准确性,还需在后续的工作中继续研究。 参考文献 [1] 于劲松,李行善.下一代自动测试系统体系结构与关键技术[J].计算机测量与控制,2005,13(1):1?3. [2] National Instruments. Specifications for the NI PXI/PCI?6541/6542 help [R]. America: National Instruments, 2007. [3] 沙晓光,陈国顺,王格芳.基于C/S与B/S混合结构的测试诊断网络研究[J].计算机测量与控制,2005,13(5):401?402. [4] 毛頓,郭庆平.LabVIEW中用DataSocket技术实现网络化应用[J].现代电子技术,2002,25(3):70?71. [5] MICHAEL J, CALVERT D K L.TCP/IP Sockets编程[M].北京:清华大学出版社,2009:263?301. [6] 林立杰,耿涛.面向多种总线测试设备的软件设计[J].现代电子技术,2015,38(3):85?86. [7] 李勇,吕永卫.基于网络远程测试诊断系统的研究[J].计算机测量与控制,2005,13(10):1040?1043. [8] 陈亮亮,孔祥艳,程甜甜,等.基于体系结构和面向构件的虚拟仪器开发方法[J].仪器仪表学报,2007,28(4):263?266. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。