APP下载

C/S架构的电火花线切割系统设计

2021-08-26张粤东张永俊黄志刚

电加工与模具 2021年4期
关键词:电火花实时性线程

何 斌,王 锋,张粤东,张永俊,黄志刚

(广东工业大学机电工程学院,广州市非传统制造技术及装备重点实验室,广东广州 510006)

嵌入式系统适用于高精密数控系统的软件运行环境,其驱动、控制、显示一体的集成化系统是未来的发展方向。WinCE是常见的嵌入式系统,拥有可定制性强、体积小、稳定性好、实时性好等优点,在工业控制方面应用广泛[1]。但是嵌入式系统本身的特点使其处理器性能和存储内存有限,对于大量数据计算而言存在局限性。C/S(客户端/服务器)架构是指基于服务器和客户端的概念,利用一个服务器对多个用户的客户端软件进行管理的架构模式。基于C/S架构,将WinCE系统作为客户端软件的运行环境,能满足高端数控系统的要求;将Linux系统作为服务器操作系统,虽然其界面不友好,但该系统作为以内核为核心的系统,有助于发挥服务器的计算和数据管理能力。利用C/S架构能有效地结合上述两个系统的优点。

目前国内针对电火花线切割系统的研究大多数基于单机运行。陈浩[2]基于Linux系统对电火花线切割系统做了研究,开发了图形、参数处理、插补计算一体化的电火花线切割集成软件;沈桂旭[3]利用开源LibreCAD开发了CAM功能,并提出适用于处理大数据量实体搜索的记忆搜索算法,提高了DXF文件排序效率,实现了基于Linux系统的电火花线切割CAD/CAM软件开发;肖凯[4]开发了基于安卓系统的线切割系统,实现了基于手势的绘图方式,其绘图方式相比于传统的线切割系统拥有更好的交互体验。

上述基于嵌入式电火花线切割系统的研究取得了不错的成果,能满足当前市场对电火花线切割系统的需求。但随着AI技术的发展,研究者发现AI理论的预测性可改善电加工过程的不确定性,从而衍生出相关的自适应控制、专家系统、神经网络、深度学习、机器学习等应用研究。美国DPTechnology公司[5]基于嵌入式技术开发的ESPRIT软件,利用专家系统、人工神经网络模型等对电火花线切割加工过程建立输入、输出关系,提高运动控制精度;Sanchez等[6]搭建深度学习框架,对工件厚度的变化实时检测,实现变厚度加工过程中的参数调整,提高了变厚度零件加工的精度;Devarasiddappa等[7]提出了PBMOO-TLBO方法,加快了深度学习训练模型的收敛速度,有助于预测最佳加工工艺参数。AI理论在电火花线切割加工上的应用能在一定程度提高加工精度,但在其工艺参数预测的过程中需通过大量模型训练运算,以单机模式运行的嵌入式电火花线切割系统难以同时适应实际加工实时性和高性能计算需求。

基于以上观点,本文采用C/S架构构建了嵌入式电火花线切割系统,解决了可同时满足实时性、高性能计算需求的硬件的高成本问题。在设计时,本文以服务器为核心,利用了分层管理的思想,采用一个服务器对多个客户端的模型,分别利用WinCE系统和Linux系统的优点,对电火花线切割系统进行整体设计,将客户端用于实现电火花线切割加工的实时性控制,将服务器用于高并发性的逻辑处理,实现加工工艺参数回传,同时可根据需求进行功能扩展,展现了C/S架构良好的层次性及系统的可扩展性[8],有利于充分发掘加工工艺数据的价值,符合当前线切割技术的发展趋势。

1 服务器设计

Linux系统的界面交互性相对较差,不适用于新手,但该系统作为服务器拥有良好的生态环境。将Linux系统作为服务器具有以下优点:

(1)支持性:当前深度学习、机器学习框架以及相关工具软件对Linux系统的支持性较好,有助于快速搭建环境。

(2)稳定性:Linux系统相对于Windows系统的体积小、整体更轻便、运行速度和稳定性更高。

(3)开源性:Linux系统完全开放源代码,可根据开发者需求,实现开发者自主开发和功能定制。

服务器是运行在Linux系统上的后台处理程序,可根据客户端的请求选择相应的逻辑进行处理,其主要的特点是高并发性、时效性,对于多个客户端的请求信息能够有效、快速地处理。服务器的主要逻辑见图1。

服务器通过主线程实现对多个客户端的监听,主要实现定时器、数据库访问、逻辑解析、日志输出四大功能。定时器功能主要用于计时,其作用有两个:一是每隔一定时间启动深度学习、机器学习的参数计算之类的框架并重置计时,实现训练模型数据更新;二是将当前连接的客户端按照操作时间以链表形式排列,当连接较多、服务器负载较大时,先清理最长时间未操作的客户端,降低服务器的负载。数据库访问功能主要用于访问数据库,包括访问个人用户信息和加工参数的添加、删除、查找、修改等操作。逻辑解析功能是根据客户端的请求,针对当前客户端的请求内容分配相应的线程,执行对客户端的响应。日志输出功能主要针对服务器运行过程或程序调试过程中出现的错误或当前的运行状态,快速定位当前的运行状态或错误。

1.1 并发性设计

并发性是服务器在稳定状态下容纳客户端访问数量的指标。提高并发性对于提高服务器稳定性具有必要性。

客户端通常在大多数时间处于加工运行状态,在CAM处理时才会对服务器进行数据请求。根据客户端这一特性,选择合适的并发处理模型对于系统的稳定性至关重要。Epoll+线程池模式是常见的高并发处理模型,结合了Epoll的I(输入)/O(输出)复用和线程池的“以需定求”特性,可提高程序的并发性[9]。客户端通过主线程实现监听,利用Epoll的事件驱动特性,当某个电火花线切割客户端有请求信息时,通过事件方式告知主线程,主线程将其控制权交由线程池,线程池通过逻辑解析分发到已创建的线程进行处理。服务器采用高效的半同步半反应堆并发模型,其逻辑见图2。

图2 并发模型图

在该并发模型下,主线程采用异步线程,只负责监听是否有客户端连接。当有新的连接时,主线程将管理权交给工作线程,由工作线程实现数据的传输和回传,同时将Socket注册到内核,实现工作线程的多客户端连接,这样子线程可处理多个电火花线切割机床客户端的请求信息。

1.2 定时器设计

定时器一主要用来对深度学习、机器学习等训练模型数据的更新计时,对每台客户端机床使用号码进行标记。采用循环队列将客户端机床的标记号加入队列中,定时器指针每隔一定时间指向循环队列的下一个位置;每当定时器指针切换指向位置时,根据当前标记号启动相应机床号对应的深度学习、机器学习等训练模型,这样可以依次实现针对客户端训练模型的数据定时更新。使用这种方式,可使服务器在低负载的情况下实现稳定运行,避免多个模型同时训练带来的高负载、服务器不稳定的情况,同时降低了对服务器硬件性能的要求。定时器一的处理模式见图3。

图3 定时器一功能图

定时器二主要用于定时清理一些长时间处于连接状态但不进行数据请求的客户端,以减轻服务器负载。采用编号形式对客户端进行标记,利用链表将所有客户端的标记号进行链接,每当服务器收到某个客户端的信息时,就将机床标记号从当前位置删除并链接到链表的头部,实现前后位置的标记号链接,使处于链表尾部客户端标记号对应最长时间未进行操作的机床,当服务器负载较大时,就对其进行及时清理,以便于减轻服务器负载。定时器二的逻辑示意见图4。

图4 定时器二功能图

1.3 数据库连接

数据库是整个系统的核心。选择合适的数据库连接方式对提高服务器的响应性能和稳定性至关重要。

电火花线切割客户端经常会进行上传、查找数据以及利用服务器实现加工工艺预测等操作。数据库频繁地建立和释放连接,会增加服务器资源的占用,因此通过建立数据库连接池,对数据库的连接和释放进行管理,重复使用已建立的数据库连接、解决频繁建立连接的缺点,从而提高系统性能[10]。当连接池中已有当前请求连接,数据库直接将其分配给连接线程使用;当连接池中无连接,则新建连接给连接线程使用。相关逻辑见图5。

图5 数据库连接池逻辑图

1.4 客户端与服务器端通信

客户端与服务器端的通信要求其流量小、实时性高,同时要求其长时间运行稳定。

客户端和服务器端采用TCP/IP网络传输协议实现双向通信。TCP协议是可靠的传输协议,具有数据错误校正、负载小等特点[11]。在网络传输过程中,数据包决定传输流量,对传输效率产生直接影响。Json是轻量级的文本数据交换格式,采用压缩格式同时易于读写。将工艺数据包通过Json进行压缩后传输,其传输流量小,使数据传输过程高效。

2 客户端设计

客户端的本质是WinCE系统上可独立运行的电火花线切割系统,其设计除了需考虑线切割的功能完善,同时还需考虑用户的体验。将WinCE系统作为客户端的运行环境有以下优点:

(1)实时性:实时性是对规定时间内操作系统反应能力的评价指标,与系统本身的处理机制有关。提高系统的实时性,有助于提高运动控制系统的定位、运动精度。WinCE系统是基于任务优先级的处理方式,是实时性操作系统,利用嵌套式的中断方式使操作系统优先运行当前执行的命令。

(2)可定制性:WinCE系统可根据开发者需求定制最小系统。以最小的系统运行有助于减少硬件资源占用、提高系统运行的稳定性。

(3)友好交互性:WinCE系统支持GDI、GDI+、Opengl ES等多种图形库,为用户提供友好的图形体验;同时支持触摸屏和鼠标,为用户提供多种界面操作方式,方便用户快速上手。

2.1 CAD设计

CAD部分主要用于绘制电火花线切割加工零件的外形轮廓,以及进行编辑、修改等操作,是进行零件外形建模的首要手段,其设计方案直接影响用户体验和整体的程序代码量。

提高代码的利用率是降低程序整体代码量的主要手段。对于电火花线切割加工而言,通常以一条轨迹表示平面加工、以两条轨迹表示锥度加工,其基本图元主要是点、直线、圆弧。图元如是不规则曲线,则以圆弧进行拟合。利用C++语言的继承特性,将图元类的设计抽象化,利用子类继承父类,从而使子类在不额外扩展的基础上就可使用父类的特性。

设计图元绘制的实体类,是将图元的标注、捕捉信息、代码输出等信息进行声明并定义。设计点类、直线类、圆弧类等继承实体绘图类,则所有的图元都可利用实体类的变量实现标注、捕捉等功能。子类对父类进行补充,可实现对父类功能的扩展,这样可实现最大程度的代码复用。类的设计如图6所示,箭头的指向代表类的继承关系。

图6 CAD绘图类结构图

2.2 CAM设计

CAM是实现电火花线切割自动编程的关键,其数据处理方式将会对加工的精度、效率产生直接的影响。

CAM主要对CAD绘制的图元数据进行加工前的预处理,以便能更好地应用于加工过程。按照功能,CAM分为轨迹存取、轨迹偏移、轨迹排序、轨迹仿真、代码输出等几个方面,用于处理和生成电极丝的加工路径信息。同时,客户端不断监听服务器的回传信息,将接收的信息通过逻辑解析应用于CAM功能的参数设置,有助于选择最合适的零件加工参数,从而提高零件的加工精度。CAM的主要功能见图7。

图7 CAM功能模块图

2.3 客户端请求与响应

WinCE系统的线程分为界面线程和工作线程。二者的主要区别在于:界面线程有自己的消息循环机制,而工作线程没有。客户端接收多条服务器信息,这些信息大多数为加工参数信息且数量不会很多,采用多线程编程即可提高其响应速度同时满足性能要求。只要客户端处于连接状态,就一直监听是否有服务器回传信息,如果接收的信息需对界面操作,则需创建界面线程,否则会阻塞当前程序的运行;如果与界面无关,则使用工作线程进行相应的逻辑处理。相关逻辑见图8。

图8 客户端逻辑处理

2.4 客户端数据包

客户端发送数据包的大小是网络传输流量大小的决定因素。采用分层解析的方式对客户端数据进行设计,上一层是下一层的抽象描述,这样有助于不用标记参数名就可对发送的参数打包,其主要分层信息见图9。

图9 数据包内容图

按照一组数组的顺序定义对收发数据包的内容进行定义,且数组的每一位用于标记传输的数据内容。在客户端和服务器使用相同的定义方式,这样在发送数据时无需标记每个数据是表示什么内容,减少了数据标记的内存占用,有助于提高数据传输效率。相关的表示方法见图10。

图10 数据包定义图

3 结束语

本文分析了电火花线切割系统的发展趋势,并利用C/S架构设计了适用于智能制造的嵌入式电火花线切割系统,分别从不同角度分析了WinCE系统和Linux系统分别作为客户端和服务器端的优越性,并从功能和性能方面对其进行了分析与设计。研究认为,采用C/S架构模式有助于降低整体系统的硬件成本,对于集成化制造、制造工厂的管理模式具有一定的借鉴意义。

猜你喜欢

电火花实时性线程
基于规则实时性的端云动态分配方法研究
论电火花表面熔覆技术
一种控温式重力驱动电火花液循环系统研制
基于虚拟局域网的智能变电站通信网络实时性仿真
聚晶立方氮化硼复合片电火花线切割高效切割研究
烧结NdFeB永磁材料电火花线切割高效低损切割研究
航空电子AFDX与AVB传输实时性抗干扰对比
浅谈linux多线程协作
一种车载Profibus总线系统的实时性分析
Linux线程实现技术研究