基于AT89S52的GSK 980TA数控程序传输器

时间:2022-10-23 02:25:03

基于AT89S52的GSK 980TA数控程序传输器

摘 要:从实际生产需要出发,通过对电脑与广数系统980TA之前的串行通讯进行深入的研究与分析,结合自身的电子制作基础,从零开始研发,设计并制作了一个数控程序传输器,并投入到实际生产应用。

关键词:AT89S52;GSK 980TA系统;程序传输器

1 需求分析

东风柳汽专用件车间,是我实习所在的车间,主要负责生产公司的各类非标总成及零件。车间里有六台数控车床,使用了广州数控设备有限公司生产的GSK980TA数控系统。该系统只能存储63个程序,由于车间生产的零件较多,机床内部的存储空间远远无法满足要求。车间之前的做法是当程序存储空间不足时,就删掉一些最近不用的程序,然后手工键入新的程序。费时费力,且无法保证准确性。经常有因为程序错误导致零件报废的情况发生。

因此需要改变这一方式,使用传输程序代替手工键入程序。

2 可行性分析

为了解决这一问题,我上网查找了很多资料,并详细透彻的研读了数控系统的说明书。根据系统说明,该系统只支持与电脑RS232通信,交换程序、参数等。既然可以使用笔记本电脑与机床通信实现程序传输,那么就可以设计一个通讯器做为电脑与机床之间的移动电子版,与U盘功能类似,只不过这里使用的232通信罢了。

3 设计要求

既然要设计通讯器,那么通讯器应该具有以下功能,以满足需求

(1)手持式通讯器,锂电池供电,带充电、保护、升压模块;

(2)有向电脑发送、从电脑接收、向机床发送、从机床接收四种功能;

(3)带背光显示屏,能显示通讯状态与程序号,可存储多个程序。

4 方案论证

4.1 要制作通讯器,首先要实现电脑与机床之间的程序传输

首先安装数控系统的传输软件“凯恩帝串口通信3.0版”,这个软件是兼容软件,窗口化操作,比原厂软件的DOS界面要友好很多。然后根据系统说明书“第四篇安装连接 ・ 第二章接口信号定义及连接”的“图 2-21 系统与PC 机的连接”制作了一根用于电脑与机床之间传输程序的通信电缆。然后运行通信软件,根据GSK980TA系统说明书的第三篇之第十一章“通讯”,可知数控系统默认的通信格式为:波特率:2400,停止位:2位,数据长度:7位,校验方式:偶校验。

准备工作完成后,可以开始实验通讯。通讯不像U盘拷文件那么简单,需要特定的按键与操作顺序才能完成,同时还需要关注数控系统内的参数设置,具体操作参考系统说明书“第三篇操作说明 ・ 第十一章通讯”。

经过实践,机床与电脑之间的通信顺利实现,程序可以在机床与电脑之间自由传输。

4.2 破解通讯协议

通讯上面的实验,程序实现了顺利的传输,可是整个传输过程到底是怎么实现的呢?这个时候就破解通信协议,因为所有的资料、网上的论坛都没有公开这个通信协议。如何破解呢,答案当然是监听通信过程,然后用通讯器模仿通信对象的另一方。监听的方法有两种:硬件监听与软件监听。

硬件监听是使用另外一台机器,机器上安装有两个串口硬件,仅使用串口的接收RXD信号,这两个信号分别接到电脑与数控系统通信线的TXD与RXD线上。这样就可以在另一台电脑的串口助手上清楚的看到两台机器间的通信了。这种监听方法是硬件级的,肯定可以监听到数据,且不会被通信着的设备发现,但实现方法比较复杂。

第二种监听方法是软件监听,从电脑端入手,使用串口监听软件,监控电脑串口上的数据流。这种方法最简单,只要安装软件就可以了。监听软件有很多,而且有的通信软件内部有防监听功能,具体怎么实现不详,在这里,我选择了Portmon, Portmon是一个用于监控系统串口与并动的工具。它不但可以监控本地机的串口与并口,而且可以通过TCP/IP协议监控其它计算机。

然后安装好该软件,开始监听。首先监听的是电脑向数控系统传输程序的流程,传输的的程序很简单,只是一个程序号O1234,监听并分析数据流后,总结出了电脑向机床发送程序的通讯流程:

(1)机床会先向电脑发送一个特征字11H,代表电脑可以发送了;

(2)此时电脑开始向机床发送数据流:25H 20H 0AH 3AH 31H 32H 33H 34H 0AH 25H 25H 25H。开头与结束的25H是电脑附加的,为内容开头与结束特征字,中间的内容为程序实体内容。

4.2.3 最后机床向电脑发送一个HEX码:13H。代表接收成功。

然后我又监控了很多种通信过程,两种通信模式:机床发送给电脑,机床从电脑接收,不同的程序内容:各种程序号,只有程序号的,有程序号和程序内容的。终于总结出了机床与电脑通信的规律,而且在这里只是需要制作一个通讯器,不需要对中间的内容进行详细的解析,只需要对开头和结尾的几个字节进行分析就行了,其它内容都是原版不动的存储起来就行了。

5 设计并制造通讯器

5.1 通讯器的功能框图如下

5.2 通讯器主要元件选型

核心零件――单片机选择了AT89S52,原因很简单,这个是我平时搞电子常用的单片机,目前我比较拿手的也是这个单片机,为了快速的完成这个通讯器,在这里没有考虑其它的单片机。

存储器――ISSC65256。由于AT89S52只有8k字节的片上Flash,且单片机无法自编程,加上片上只无集成了256字节RAM。要存储数控系统的程序,这显然是不够了,于是我选择了ISSC62565这个外部并行总线的32KRAM,这个芯片我在大学的时候用过,很适合AT89S52,虽然与单片机的联线比较多,但使用起来很简单,存储速度也比单片机快多了,程序处理也很简单。

RS232串行通信接品电路,在这里无疑是选用MAX232芯片。我设计的这个模块还有一个特色,就是支持交叉与直连转换。串行通信都要求一方的TX信号线接另一方的RX信号线,否则无法通信。在这里我使用了一个6毫米的双刀双掷转换开关,如果无法通信,可以通过开关转换,以保证通信成功,而不用更换通信线。

剩下的就是其它的外转电路:RS232转TTL电路及元件,1602字符型显示屏及电路,按键电路、锂电池升压及充电控制电路(在这里选择了现成的一体化模块)。在这里使用了很大众化的电路板设计软件:Altium Designer Sumer 06。

5.3 程序调试

由于这个单片机的资源实在是有限,我依旧只能使用汇编语言来设计程序,程序比较难读,但不得不佩服汇编的高效率。程序运行得很好,在这里摘录了一段通讯器从机床接收程序的子程序TAFA。程序内容如下:

TAFA: CLR TI ;清发送中断标志,防止上次影响

CLR RI ;清接收中断标志,防止上次影响

MOV DPTR,#LINE9 ;显示"TA Kai Shi FA"

LCALL DISPA1

MOV DPL,70H;重新载入程序存储首地址

MOV DPH,71H

JNB RI,$ ;等待计算机发送程序

CLR RI

MOV A,SBUF ;把接收缓冲器的内容送到累加器

CJNE A,#12H,TAFA;检测发过来的内容是否以12开头

JNB RI,$ ;等待计算机发送程序,不存储12这个开关

CLR RI

MOV A,SBUF;把接收缓冲器的内容送到累加器25H

MOVX @DPTR,A;存储接收来的内容

INC DPTR ;指向下一地址

TAFA1: JNB RI,$ ;接收内容

CLR RI

MOV A,SBUF

MOVX @DPTR,A ;存储接收来的内容

INC DPTR ;指向下一地址

CJNE A,#0A5H,TAFA1;收到25H则认为程序内容结束。

TAFA2: JNB RI,$ ;再接收一个25H

CLR RI

MOV A,SBUF ;把接收缓冲器的内容送到累加器25H

CJNE A,#14H,TAFA ;收到14H则认为程序内容结束,不存储14H

LCALL XUHAO ;调用分离并显示程序号的子程序

MOV DPTR,#LINE13;显示"TA FA Wan "

LCALL DISPA1

RET

6 通讯器应用效果

截止至目前,通讯器已经投入实际生产应用半年有余,生产班组反馈良好,每次传输程序都能正确完成,数控班班长电脑内的程序库也一天天的完善起来。现在已经很少看到有人面机床的十寸显示屏上用按键输入程序了。可以说,这个通讯器的制作还是相当成功的。

7 结束语

新一代的数控系统都已经意识到了串口传输的不便,纷纷集成了新型的传输接口及协议,比如USB接口、CF卡接口、以太网接口等。但对于公司已有的机床设备来说,不可能因为一个程序传输的不便而轻易的更换整个数控系统。数控系统在整个机床的寿命周期里一般是不更换的。这里所制作的数控机床通讯器,虽然不是非常高科技的制作,甚至由于AT89S52这颗CPU显得有些落伍。但通讯器还是解决了老系统程序传输这个难题,提高了车间的生产效率,降低了因程序错误引起的废品率。

参考文献:

[1]GSK980TA车床用数控系统使用手册[M].广州数控设备有限公司出版,2005(05).

[2]陈明荧.8051 单片机课程设计实训教程[M].清华大学出版社.

作者简介:朱土荣(1984-),男,壮族,广西人,本科,助理工程师,从事设备电气工作,东风柳州汽车有限公司车架车间设备科电气设备工程师。

上一篇:配网检修与巡线中GPS的应用探析 下一篇:ACS6000的维护