基于交换式以太网的网络化数控系统研究

来源:互联网

点击:1301

A+ A-

所属频道:新闻中心

关键词:换式以太网 网络化 数控系统

    1 引言

      数控系统必须满足网络化的要求,数控设备的形态已逐步发展为整个企业网络中的一个能进行感知、处理、传输并自动执行的节点,本文的研究就起源于交换式以太网技术应用于数控系统中所面临的实际问题。当交换式以太网的拓扑结构和交换机的情况已经确定时,除了各端节点的通信带宽分配策略,在实际的网络系统设计中,另一个影响系统性能的因素就是主节点(如主控单元、核心服务器)上各通信任务的协调。在应用层面,数据的产生和通信的发起是随机的,所以在这一层面也需要考虑多个通信任务对信道的共享问题,另外各类任务之间也存在对主节点计算资源的共享问题。本文以工业控制中的一个典型应用网络数控服务系统为对象,有针对地对实时系统设计与实现过程中各通信任务之间以及通信任务与其他任务之间的协调设计问题进行分析。

    2 系统结构

      网络数控服务系统体系结构如图1所示。每个机床配备有少量的、必须的、功能简单且单一的控制器,如运动控制、伺服驱动、PLC等,它们通过现场总线、网络构成了机床的基本数控单元(但非完整系统),这些基本数控单元通过交换式以太网与功能丰富、提供更强处理能力的数控服务系统相连,从而获得机床加工所需的完整数控功能。对机床的操作,由远程数控客户端(专用客户端或通用浏览器)通过交换式以太网连接到数控服务系统进行。

      整个系统主要包括如下几个控制模块:

      (1)面向多控制对象的数控服务系统(NC service system, NCSS),负责多台机床的数控操作管理和业务处理。该模块与显示与输入设备相连,负责人机交互;实现加工代码的编辑、编译以及文件管理;通过以太网与运动控制单元交互,传达加工信息及用户指令;对被控对象动作状态进行跟踪显示;与远程控制终端及企业、全球数字制造系统相连,实现整个数控系统的网络化开发、调试、运行、管理、监控和诊断等。

      (2)显示及键盘输入装置,实现现场人机交互显示,数据与操作命令的输入,加工状态的显示等功能。

      (3)运动控制单元(motion controller, MC),实现插补、刀补及间隙补偿等运算;将位置/速度控制命令发送到位置/速度伺服控制器;与嵌入式PLC相连。

      (4)嵌入式PLC,完成数控系统的各种逻辑控制,实现通用PLC功能。

      (5)位置/速度伺服控制器,对加工轴进行位置和速度控制。

      (6)数控客户端(NC client),用于远程控制与监测的专用控制终端软件。

      (7)嵌入式Web服务器(Embedded web server, EWS),其集成在数控服务系统内。除了数控客户端外,用户可通过Web浏览器实现远程控制与监测,即Web浏览器作为远程控制的通用终端软件。

    3 通信任务的协调

      在一个数控网络中,网络数控服务系统起着控制和管理核心的作用,它是网络环境下多用户和多控制对象的桥梁,但同时,作为通信枢纽,它与网络中其他节点交互频繁,容易成为通信的瓶颈。因此,网络数控服务系统上通信任务的协调设计是十分重要的。

      网络数控服务系统结构如图3所示,其中,软件部分主要包括嵌入式软件运行环境和NC操作与管理系统。系统采用μC/OS-II嵌入式操作系统,而μC/OS-II本身不提供文件系统、网络协议栈以及图形用户界面等,因此本文移植了lwIP协议栈,开发了简单的文件系统和图形用户界面以提供更好的服务。

      NC操作与管理系统的主要工作原理如下:用户-NCSS通信模块用于实现所有与外部的、基于网络的交互,为了提供基于浏览器的数据交互,用户-NCSS通信任务内可添加EWS。用户-NCSS通信模块接收来自远程客户端的指令或数据信息,从接收到的信息中读取设备标识字段,根据该信息向相应设备的处理任务发送操作允许信号量,进而转入对相应数控设备的处理操作。用户-NCSS通信模块还负责对收到的数据进行区分,以区分是数据还是命令,并区分是哪种类型的命令,分别发送至不同的消息队列,并由这些消息队列传输到相应的任务或者中断进行后续处理。如果收到的是NC代码,则交由文件管理模块进行处理,它将NC代码以文本的形式保存到存储设备中以备调用。若从远程客户端上收到相应的文件处理命令,用户-NCSS通信任务把该命令发送至文件处理命令消息队列,相应的数据处理模块被唤醒,它读取命令并提取相应NC代码文件进行处理。数据处理模块主要实现了NC代码文件的管理,NC代码的编辑、编译,把NC代码的功能参数传送给运动控制单元,并实现现场人机交互。NC代码解释器已经作为一个单独的模块实现,在数据处理任务中,只需调用解释模块提供的相应功能函数(如格式检查函数、解释函数等)即可。对于刚刚从文件系统中提取出来的NC代码文本,需要调用解释模块提供的代码分割函数,将代码文本以程序段为单位分割成若干字符串,并将这些字符串存入预先定义好的字符串处理结构体中,再根据程序段号形成链表。而后,数据处理任务将查询数据处理消息队列,等待接下来的用户指令。控制指令处理模块主要是传达加工过程中用户介入的控制指令,比如紧停、暂停、继续、点动、回零、状态跟踪和监控等,相应的,该任务通过查询控制命令消息队列来执行对应的各种操作。消息队列可以接收来自多方的指令,既可以通过NCSS进行现场指令输入,也可以通过网络(浏览器、专用客户端)来发送指令。NCSS-MC监听模块用于接收来自运动控制单元的回馈信息。对于NC代码执行命令,相应的数据处理模块将配合NCSS-MC监听模块,采用应答式的传送方式,将NC代码以程序段为单位传送给相应的运动控制单元。设备动作期间,状态跟踪与反馈模块将数控设备的动作情况、状态信息实时反馈给远端用户。

      展示了单个客户端数控服务系统单个基本数控单元之间业务流的基本情况,其中业务流1和2分别指用户在客户端或现场发出的数据和指令;业务流3和4分别为NCSS向基本数控单元转发的处理后的数据和指令;业务流5为NCSS在收到监控指令后,向基本数控单元发出的定时索要被控对象状态信息的指令;业务流6为基本数控单元向NCSS定时回馈的状态信息和请求信息;业务流7为NCSS向现场用户实时反馈的被控对象状态信息;业务流8为NCSS为现场用户提供的其他操作与管理信息;业务流9为NCSS向远程客户端用户实时反馈的被控对象状态信息;业务流10为NCSS向远程客户端用户提供的其他操作与管理信息。根据业务流的基本情况,下面将介绍(图2、3)中所示各通信任务的协调。

      用户-NCSS通信任务主要是实现接收用户数据和指令并将其分类存储的网络服务器端程序。用户和NCSS的交互主要有三种类型的信息:NC代码,操作指令,以及向用户回显的机床状态信息。由于这三类信息结构比较类似,故采用同一消息结构体对其进行封装,并通过适当的位来加以区别。该任务在接收循环内的recv系统之前调用了select系统,此时任务阻塞在该系统上直到超时或者预设定的某个I/O条件(如套接口上有数据可读)得到满足,此时可以进行相应的I/O操作(如读数据)并能立即得到结果,select系统能同时判断多个套接口的多种状态,而recv系统也是基于阻塞模式工作的,所以两个系统之间就有机会设置全局标志位来协调各通信任务。

    (审核编辑: 智汇张瑜)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。