DNC数据传输及通信协议
DNC是机械加工制造类离散自动化系统的基础,虽然在计算机技术高度发展的今天,机床控制系统(CNC)的进步己经动摇了传统的、以串行接口为基础的DNC系统的地位,但是由于机械设备的使用寿命较长,以及控制技术相对于计算机和网络技术的滞后,传统意义上的以传送NC程序为主要目的的DNC技术仍然有相当的需求。尤其是对于那些加工程序更换频繁,程序复杂、加工时间长的机械加工车间,如模具工厂,DNC则是必须的选择。
协议是数据通信的语言规范,DNC作为一种控制方式,其上位机与下位机之间的数据通信当然需要采用一种通信的规范。由于DNC系统的通信网络主要由加工机床的控制系统(CNC)组成,系统设计者必须根据控制系统所支持的协议来配置网络,所以DNC系统的设计者通常并没有太多的选择权。现代的数控机床已经开始使用工业以太网作为数控系统的DNC接口(通常支持TCP/IP),可以将机床直接纳入工厂的车间网络,使DNC的概念发生了改变,系统的设计变得更为简单,同时也大大扩展了机床作为底层设备的功能和性能。但是对于仍在使用的大量的较早生产的数控机床(包括现在制造的很多功能相对简单的机床),由于通常只有串行数据通信接口,对于DNC系统设计者和DNC软件设计者来说,了解机床的通信协议仍然是十分必要的。
机床(这里当然是指机床的控制系统,如CNC,下同)一般都支持XON/XOFF式的通信协议,即本文讨论的B协议,也有一些可以支持较为复杂的,采用分组方式的停止等待ARQ协议,如所谓A协议(Fanuc和Okuma),或者3964R(Siemens)等。由于A协议相对比较复杂,本文暂不作讨论。
1 B协议的协议方式
B协议(如果可以称为一种协议的话),是一种非常简单的,主要面向流量控制的通信控制方法,它使用ASCII控制码作为控制命令,主要的控制命令包括:
DC1(11H) 启动数据传送;
DC2(12H) 传送参数;
DC3(93H) 停止数据传送;
DC4(14H) 参数传送完了。
B协议采用不分组的报文传送方式传送数据文件,通常是NC代码,而利用DC1和DC3命令来控制数据的流量,DC1-DC4都是ASCII的控制字符,但是在数控系统中一般使用上面的指定编码,相当于偶校验的ASCII或者ISO码,而与数控系统采用的码制(ISO或EIA)无关,但也有一些机床使用原始的ASCII编码,即DC3的编码仍然为13H。
在DNC在滴入式(Dripping)的传输中,由于机床的缓存器(Buffer)的容量往往十分有限,作为服务方的主机(Host,通常为PC),在收到机床传来的命令后,必须能够在规定的时间内做出响应。DC1与DC3的控制时序如图1所示。
图1 B协议的控制时序
通信由机床发起,向主机(PC)发出DC1命令,主机一般应在t1时间内予以响应,即发送出机床需要的加工数据(程序)。时间限制t1根据机床和设定的不同,一般为1~几千秒。
在机床的缓存器将满时,机床将向主机发出DC3命令,主机应即刻停止传送,但考虑到可能的延迟,一般机床仍允许主机在DC3之后发送少于n的字符数,根据机床和设定的不同,n值一般在1-100之间。PC一方必须严格按照这一规定执行,否则可能会引起机床的缓存器溢出(Buffer Overflow),产生报警.
主机方面在读到程序的结尾(通常为字符"%")时,自动结束程序的传送,根据设定,机床方面可能发回一个DC3作为响应或完全没有回答。
有一些机床,但不是所有的机床,能够支持程序的上传,而在上传的过程与下载完全不同。其时序如图2所示。
图2 B协议数据上传过程
由于主机系统通常具有比机床高得多的处理速度,而且没有所谓滴入式的传输问题,对于一般的RS-232C的传输速度,并不需要进行流量的控制,所以数据的上传是完全由机床方面控制的。
2 传送错误的处理
由于车间现场所处的比较恶劣的环境条件,数据通信不可避免的会出现干扰和噪声,从而有可能造成传输的错误,虽然对错误的检测和处理并不是B协议的一部分,但对于协议的执行过程却非常重要。
由于一般采用不分组的报文传送方式,B协议对于通信错误的检测和更正能力十分有限,一旦出现了错误,即必须重传全部程序,这也是这种协议的一个不足的地方。
对错误的检验包括字符的检验和程序段的检验两种,按照纸带时代的传统,仍然称为横向校验(Tape Horizontal Check, TH)和纵向校验(Tape Vertical Check, TV)。
TH校验即一般的奇偶校验,使用字符的最高位(MSB)作为校验位,校验出错误的能力虽然有限,但却简单实用,一般的机床都支持这种校验。
TV校验为对整个程序段(Block,即一般意义上的一行)上各个字符进行模二加法运算,而以其和作为校验字,即校验和(Check Sum)。很多但并非全部机床控制设备支持这种校验方式,根据机床和设定的不同,校验和的计算可能包括行结尾的回车换行或不包括。
在机床发现错误之后,一般会产生错误报警并复位。主机方面在接收到机床发来的报警之后一般应当重传整个程序。
虽然有一些数控设备可以支持按照程序段的不定长分组处理[2],但由于并不支持分组的出错再传输,所以也仅有校验程度上的意义。
3 程序文件的指定
DNC中的一个经常遇到的问题是加工程序的指定,很多机床支持操作面板上对远程文件名的输入指定,可以使DNC的操作比较简化。但是对于相当多的不能在操作面板上指定文件名的控制系统,程序文件名的指定就必须借助外部的设备,如机床终端来实现。
B协议中定义了机床指定文件传送的过程,如图3。
图3 数据文件名指定和文件传输过程
数据文件上传时也可以采用类似的过程进行指定文件名的数据文件传送。
4 机床报警与复位的处理
DNC B协议定义了机床报警与复位情况下的通知方式。它使用ASCII控制字符SYN(96H)和NAK(95H)分别表示系统的复位和报警。
机床在发生复位或者报警,都首先发出DC3停止程序的传送,然后发出相应的指示字符表示状态的改变。对于DNC系统来说,无论接收到报警或者复位的信息,一般都需要重置程序文件。
由于机床一般不能支持断点再传,所以有时这些信息对系统管理者来说意义不大。可以通过机床的设定指定系统使用或不使用这两个信息。报警的过程如图4所示,复位的过程与之类似。
图4 机床报警过程
5 结束语
B协议是使用最广泛的DNC协议,虽然其协议结构非常简单,但由于几乎所有的数控系统都支持这种数据通信方式,了解其协议结构和具体的要求,对系统设计者和开发者仍然具有重要的意义。