标题：DNC
引言
目前，DNC系统的研究尚存在以下有待解决的技术问题：①DNC系统体系结构的开放性不强。国内大部分DNC系统局限于单一供应商的制造设备，平台之间可移植性差，不同应用程序互操作能力有待提高，不利于系统集成；②DNC系统通信结构多为点对点式，或采用局域网加点对点式，不能很好地解决通信竞争问题；③DND系统与NCP和CAD的接口功能还很弱；④DNC系统控制软件可重用性不强，需要进行面向对象设计和实现。本文提出了基于CORBA(通用对象请求代理结构)的车间层控制系统中DNC系统，给上述问题以很好的解答，并实现了软件的编制及联机调式。
结构
DNC系统是基于CORBA车间层控制系统的一个功能单元，现在的企业面对的是一个多变的需求环境，因而车间层控制系统面对的加工任务也是多变的。这种变化包括生产零件的品种、类型、规格、产量和交货期等多个因素的变化以及加工工艺路线随生产任务的不同而变化等。这就需要一个在时间和空间上都开放的车间层控制系统体系结构，以运行于不同硬件环境的异构计算机系统中，同时又能适应新技术的发展，容纳新设备的增加。
在基于CORBA的车间层控制系统中，构造车间信息集成和共享的公共平台是核心问题之一，我们采用基于客户/服务器结构的分布式控制平台(如Orbix)，既可以将传统的递阶控制结构变换成更适合信息集成的分布或控制结构，又可适应不同产品制造过程(离散制造或连续制造)中统一的生产管理和组织要求。
车间层控制系统总体结构分为三层：底层为系统支持层，由分布式计算环境和异构网络集成系统两个子层构成，提供底层的计算机系统、网络系统和数据系统等系统级功能；中间层为开放式分布处理层，提供统一的集成通信服务，由开放式分布处理平台和应用程序接口组成，最上层为信息集成层，支持多客户/服务器的分布式多数据库集成系统，将现有的应用和数据信息集成到系统中。为实现控制结构的分布、数据库的分布以及系统功能的分布，提出的车间层控制系统软件采用基于CORBA规范的分布式对象体系结构。
CORBA规范主要特点是实现软件总线结构。所谓软件总线的功能，就是起到类似于计算机系统硬件总线的作用，只要将应用模块按总线规范作成软插件，插入总线即可实现集成运行。实现软件总线的核心系统称为ORB(对象请求代理器)，它不仅支持标准的OMG对象模型，还具有分布进程管理和通信管理功能。此外，CORBA定义了IDL(Interface Definition Language)语言，以描述软件总线上的插销。IDL提供了对成员系统的封装和成员系统之间隔离，任何成员系统作为一个对象，通过IDL对其接口参数进行定义和说明，就可接到ORB上，为其它系统提供服务或向其它系统提出请求，达到即插即用效果。
车间层控制系统划分为许多独立的功能单元，每个功能单元对应于一个包含功能接口定义和实体的抽象对象，每类对象的接口由属性和操作组成，由IDL定义的其它功能单元可以透明访问的服务以调用该对象的私有数据，具体功能的实现被封装在实体里。我们将每类对象按照功能划分成若干个子对象，将其设计成为可以直接插在CORBA软件总线上的对象插件。这些对象插件按照各层客户/服务器结构组成整个平台系统。这种结构可以带来长远的利益，既能迅速增加对新的DBMS的应用、增加新的用户界面，又能升级支持各种新功能。
地位功能
地位DNC系统作为车间层控制系统的一个功能单元。功能DNC系统功能包括①NC程序及数据的传递，以某种通信协议(如Philip532等)实现通信功能；②机床状态采集和上报；③根据工序计划，自动分配NC程序及数据到相应机床；④刀具数据的分配与传递。
DNC系统软件的功能模型，其中NC数据管理的主要功能是对数控数据进行管理，主要有数控数据的显示、插入、修改、删除、更新、锁定(不允许更改)和打印等操作；NC数据执行的主要功能有：数控数据在计算机和机床之间的传送、删除机床上的数控数据、启动机床上的数控程序、随时从机床设备获得工作状态信息并存入数据库，作为运行数据采集模块评价加工过程的根据；DNC通讯接口通过DNC协议和数据链路协议建立单元控制系统和CNC的连接。
体系结构
基于CORBA的DNC系统软件的实现平台建立在车间层控制系统平台的基础上。我们将DNC系统体系结构划分为三层的客户/服务器结构，以将表示逻辑、业务逻辑和数据处理逻辑明确划分开来。为此，表示层用来表示信息和收集数据，此处为由VB实现的可移植的DNC人机接口；业务层响应用户(或其它的业务服务)发来的请求，执行某种业务任务，此处为由VC++来实现DNC应有程序及NC数据管理应用程序；数据层包括数据的定义、维修、访问和更新以及管理，并响应业务服务的数据请求，此处为经IDL功能接口定义封装的NC局部数据库(Access)服务器。这些层并不一定与网络上的具体物理位置相对应，它们只是概念上的层，借助这些概念可以开发出健壮的、基于组件的应用程序。
使用图3所示模型，可以把应用程序的需求分解成明确定义的服务。在定义了服务之后，需要进一步创建具体的物理组件来实现它们。根据性能和维护的需求、工作量、网络带宽以及其它因素，可以在网络上灵活地部署这些组件。
数据模型
DNC系统软件中涉及到数据实体包含四类：①与制造设备硬件相关的数据实体(如机床等)；②与人机通讯相关的数据实体(如通讯协议实体和串口通讯实体)；③数控数据实体(如NC程序号、刀具号、工序号)；④输入操作指令或派工单实体。采用面向对象方法将上述实体抽象成为类，可分为能力单元类、NC机床类、NC控制器类、通讯协议类、终端服务器类、串口通讯类、NC程序类等。
DNC应用程序中的对象从这些类中继承下来，每个对象的方法即该对象的成员函数根据相应的功能需求来定义。下面以NC机床类的定义为例：
∥ncmach.h -NC Machine Class definations
∥NC Machines are part processors.For this class,a part is loaded,
∥a NC file is downloaded to the device,and the machine is started.
class MACHINE－TOOL{
char* CurrentNCFile; ∥currently loaded NC file
int FixtureStatus; ∥fixture status
public:
MACHINE－TOOL();
char* getCurrentNCFile();
void setCurrentNCFile(char?F);
Int getFixtureStatus();
void setFixtureStatus(int S);
virtual int processPart(char? PartName);
virtual int downloadNCFile(char?File);
virtual int stopMachine();
virtual in graspPart();
virtual int releasePart();
}；
配置结构
基于CORBA的车间层控制系统需要两种层次的互连。第一层是利用计算机局域网技术和协议软件把由异构计算机组成的车间层控制器、设备控制器等互连起来，第二层是在这一互连的基础上，实现各节点、各被控的异构制造设备(如加工中心、机器人、PLC等)之间的信息交互，这种交互通过制造信息规范(MMS)实现。作为车间层控制系统的一个重要组成部分，本文DNC系统的物理配置基本结构如下图所示，主计算机通过网络介质(具有独立IP地址的终端服务器)分别连接多台CNC系统实现NC程序的装卸、刀具数据的传递、操作命令的下达和状态信息的反馈。这是一种通过局域网连接起来的通信结构，它具有包括物理层、数据链路层、传输层及应用层等的四层结构，其中数据链路层采用LSV2通讯协议，传输层采用DNC协议(如SINUMERIK或PHILIPS协议)。
实际应用
电信设备号段
中国移动DNC:134~139,159
中国联通DNC:130~132(GSM)
中国电信DNC:133(C网),189
6.美国民主党全国大会（Democratic National Convention，DNC）