A类DNC协议
一、引言
DNC是Direct Numerical Control或Distributed Numerical Control的简称,意为直接数字控制或分布数字控制。它指的是将若干台数控设备直接连接在一台中央计算机上,由中央计算机负责NC程序的管理和传送。当时的研究目的主要是为了解决早期数控设备(NC)因使用纸带输入数控加工程序而引起的一系列问题和早期数控设备的高计算成本等问题。随着数控机床(CNC)技术的不断发展,数控系统的存贮容量和计算速度都大为提高,DNC的含义由简单的直接数字控制发展到分布式数字控制。它不但具有直接数字控制的所有功能,而且具有系统信息收集、系统状态监视以及系统控制等功能。
DNC是CAD与机床加工之间的桥梁,它使用一台通用的个人计算机(PC),通过RS-232接口来和机床通信,又通过局域网络(LAN)来和CAD/CAM系统交换信息,通过DNC你可以坐在办公室里把CAM作的NC程序送到机床。
加工程序(NC代码)通过通信网络传输到机床。一般的机床都备有DNC接口,现代的机床大部分都是局域网络的接口,而较早的机床大都是安装有RS-232C标准的串行通信接口作为数据传输的输入和输出接口。
从DNC计算机到机床之间使用RS-232标准进行串行的数据通信,数据的联系可根据机床的不同而采用不同的DNC协议,DNC目前可支持OKUMA的A、B协议(使用文件名或不使用文件名),以及大部分机床所使用的采用DC信号进行数据控制的协议(同OKUMA的B协议)。
二、串行通信
此软件的设计是基于RS-232串行通信端口实现NC文件的传输,RS-232端口是每部计算机上的必要配件,通常含有COM1与COM2两个通道,现在的计算机均以9Pin的接头接出所有RS-232通信端口。
●在数据的传输过程中,需要对数据的流动进行控制。首先,在机床上备有缓冲数据
的缓冲区,传送到机床时,数据首先存放在机床的缓冲区,然后机床调用传输过来的程序进行加工。由于机床的缓冲区大小有限,一般不能保证全部程序直接传送到机床,而需要一部分一部分的传送,这就是所谓滴入方式(Drop in)。
●传输协议有利用硬件实现的协议和利用软件实现的协议两种。硬件的协议一般使用
RS-232协议所提供的握手控制线(Handshaking)实现。
●软件协议使用软件进行流量的控制(握手)。常用的XON/XOFF就是一种简单的控
制协议。
●使用在机床数据传输的协议一般有A协议和B协议。B协议实际上就是XON/XOFF
协议,几乎所有的机床都支持这种简单,有效的协议。
●但是B协议实际上并不是一种真正意义的通信协议,它只是利用软件的命令简单地
实现了流量的控制,和硬件方式的握手比较类似。
●而A协议才是真正意义上的通信协议,它包括了完整的数据打包,流控制,握手,
错误检测与处理方案。
(1)通信参数
计算机和机床要进行数据传输,要遵守一定的通信规则,这个通信规则就是端口的设置参数。
包括以下几个部分:
数据的传送速度:传输双方的传送速度必须一致,才能保证数据的正常读取,这里采用9600bps。
起始位和停止位:由于接收端不知道发送端何时会传送数据过来,所以发送端准备要开始传送数据时,会在所传送的字符前面加上高电位的起始位后面加上低电位的停止位.
校验位:分为奇偶校验,即保持1的数目为奇数或偶数,本次设计未用到校验位。
(2)A协议的数据格式
其中:
CS 为2个字节的校验和(Check Sum),即为不包括CS本身的所有数据字符的半加和的1个字节的16进制数,而以两个字符的方式传送。
CMD 为3个字节的控制命令,依信息的内容不同而异;
DA TA 为传输的数据,其长度不定,数据一般使用ISO标准编码的字符传送,较早的机床也有使用EIA码甚至EBCDIC码;
E 为结束符,1个字节。通常使用控制字符ETX(03H),或者CR(0DH)。
三、A协议的命令
命令有计算机传输给机床的命令和机床传送给计算机的命令两种,由于DNC是一种主从式的传送方式,计算机实际上相当于数据的服务器,而机床是控制的主体(客户端)。1) NC-->HOST
(1) SYN = 初始化指令(Synchronize)
电源接入时,给HOST的初始化指令,HOST以SYN回答后即进行初始化。
这个命令没有数据部分。
(2) RDY = 初始化结束(Ready)
NC在接受到HOST的SYN后,即对NC的缓冲区进行初始化,在一定时间后发
出此命令,报告NC的初始化完成;如HOST已经初始化完成,则以RDY,未完
成以SYN作为响应。
(3) RST = NC复位通知(Reset)
在NC被复位时由机床发出。
在收到这个命令后,HOST(计算机)以ARS命令应答。
(4) ALM = NC报警通知(Alarm)
在NC报警时由机床发出,HOST以AAL命令作为应答。
(5) SAT = NC状态报告(Status)
在计算机与机床通信的闲暇时间,为了保证数据链路的畅通,机床将不断地向计算机传送这个状态报告,计算机将以SET(在没有处理指令,或者说系统正常时),或者以CLB(在机床的缓冲区没有清理干净的情况下)予以回答。
命令中的数据字段为54-72字节的状态报告,数据(状态)的意义见协议文本。
(6) GTD = NC 程序数据请求(Get NC Tape Data)
机床发出的传送请求命令;
计算机应当使用DA T命令,并在其后附以程序的文本进行响应。在程序传送完成时,则以EOD命令表示。如果计算机没有准备好,则向机床发送WAT命令请机床等待。
(7) RTY = 再传送请求(Retry)
在计算机向机床发送数据时,机床方面如果检查到了传送错误,机床则向计算机发送这个命令,要求计算机重新发送前一次发送的数据。
数据字段为一个字节的再传送理由,其意义为:
1:校验和错误;
2:奇偶校验错误
(8) RTD = NC程序的反向传送请求(Reverse NC Tape Data)
暂略;
(9) DAT = NC程序传送(Data of NC Tape)
传送数控程序,数据字段即为程序的文本,但程序字段的长度不能超过4000个字
(10) WAT = 等待(Wait)
在收到GTD命令之后,如果计算机或者机床未准备好,就像机床或者计算机发出本命令,等待的时间由协议时间Tw所规定。
发送方(机床或者计算机)在等待Tw时间之后,将再次发出GTD命令。
这个命令没有数据字段。
(11) EOD = NC程序发送完成(End of Data)
发送方在发送完全部程序之后,向对方发送这个命令,表示数据传送完成。
(12) ARS = 计算机对机床复位信号的响应(Acknowledge Reset)
计算机对机床的复位表示了解的命令,这个命令没有数据字段。
(13) AAL = 计算机对机床报警报告的响应(Acknowledge Alarm)
这是计算机对机床报警报告的响应,表示了解。没有数据字段。
(14) CLB = 清除数据缓冲区命令(Clear Buffer)
在计算机收到机床发来的SAT命令之后,如果想对机床方面的缓冲区进行清空,则向机床发出这个命令。没有数据字段。