0 引 言机床的数控系统实际上是一台专用的工业控制计算机 ,在其内部固化了关于串行口的通讯软件。多数带有异步串行通讯接口的NC机床 ,采用标准的通讯协议和传输控制方式 ,以便于与个人计算机的连接与通讯。TH—DNCⅢ型NC机床虽然具有异步通讯适配器 ,但其通讯软件的设计却是非通用型的 ,具有特殊性。它随机配备的通讯软件DNC .EXE是一个DOS平台的可执行文件 ,功能简陋 ,内容陈旧 ,无错误处理功能 ,操作不便。因此 ,分析并改进这个软件是开发NC车床集成软件的需要。本文着重介绍了DNC .EXE文件的反汇编及源程序的分析 ,总结了该通讯软件的主要功能 ,关键技术及特点。文中阐述的关键技术对于开发PC机与其它NC机床的通讯软件 ,乃至一切提供UART接口设备的通讯程序设计均有重要的参考价值。1 对DNC .EXE可执行文件的反汇编及分析 为了弄清楚PC机与TH—DNCⅢ型NC机床的通讯协议和传输规程 (由NC机床的数控系统固化软件新定义的 )所选择的研究方案论证如下 :方案 1 反汇编DNC .EXE文件目前市场上提供多种反汇编软件例如 :E2C .EXE可将 .EXE可执行文件反汇编成Pseudo -c程序 ,即伪C语言程序 ,生成的源程序代码雍长 ,且仅能在屏幕上阅读 ,无法打印。鉴于DNC .EXE文件不大 ,利用debug进行反汇编 ,生成简洁的DNC .ASM80X86汇编语言文件 ,有利于分析研究。方案 2 利用硬件电路进行信息“捕获”设计以单片机为核心部件的捕获电路 ,截取TH—DNCⅢ型NC系统的通讯数据 ,然后分析其通讯机制 ,此方法比方案 1难度及工作量更大。此外 ,还有多种可供选择的方案 ,例如 ,直接读取TH—DNCⅢ型数控机床的NC系统 ,找到固化软件芯片 ,将软件读出后再分析。此方法可能要损坏设备 ,而且通讯软件仅是固化软件的一部分 ,难度和工作量也不小。分析工作的可行途径是方案 1 ,对DNC .EXE用debug进行反汇编 ,生成DNC .ASM直接地址表示的 80X86汇编指令程序。反汇编后生成的 80X86汇编语言源程序DNC .ASM由主程序和几十个子程序组成。这完全是一个底层控制软件 ,通过DOS功能调用同硬件打交道 ,诸如 ,磁盘文件的打开 关闭 ,文件的读 写 ,UART82 5 0异步通讯接口芯片各寄存器的设置及控制等。通过对DNC .ASM源程序的详细分析研究 ,总结出DNC .ASM软件的主要功能模块有 :·主模块系统操作主界面及错误处理。·初始化模块主要完成三个方面的功能 : 82 5 0初始化设置发送 接收缓冲区设置全局变量及初值·接收模块PC机从TH -DNC数控机床接收NC代码程序。·发送模块PC机向TH -DNC数控机床发送NC代码程序。2 关键技术指标及特点通过上述的分析 ,对该通讯软件的关键技术指标及特点归纳如下。2 .1 通讯规程①数据传输格式用lscuinit子程序对 82 5 0各寄存器初始化设置通讯参数 ,定义的数据传输格式为 :起始位 :1位数据位 :7位 ASCⅡ码奇偶校验 :奇校验停止位 :1位波特率 :96 0 0b s串行口 :com1②通讯控制符和报文格式通讯控制符和报文格式为 :控制字符ASCⅡ码功能% 2 5HNC代码结束标志SUB 1AH传输过程结束标志 由此可得PC机与TH -DNCⅢ型NC机床之间传送数据的报文格式为 :数据 (
NC代码 ) %SUB所传送的NC代码程序中的空格符由软件自动去除 ,一行NC代码结束时 ,仅发换行符 (LF)不发回车符 (CR)。2 .2 传输规程数据传输控制方法通常有两种 ,即流控制 (软件流控制和硬件流控制 )和反馈控制。DNC .ASM软件采用的数据传输方式为后者。这一点通过对发送模块和接收模块的分析得出。下面以发送模块的流程分析为例来说明这个问题。PC机向数控机床发送一个NC代码程序文件的流程图1所示。该程序模块的功能是打开一个NC程序文件 (以 NC为后缀 ) ,从文件中读 1 0 2 4字节存入内存缓冲区lreadbuf中 ,然后调用lsend -c子程序 ,将lreadbuf中的字符通过 82 5 0的com1口 (3F8H)发送给TH -DNC机床的数控系统。每次从文件中读 1 0 2 4字节进行发送 ,直到遇见传送结束标志SUB(即AL =1AH) ,关闭文件 ,返回主模块。关于传输规程可以通过发送模块中的关键子程序lsend -c得出。该子程序的功能是将内存缓冲区lreadbuf中的字符 (≤ 1 0 2 4个字符 )通过 82 5 0传送给TH -DNC的NC系统。每次发送一个字符 ,每发一个字符的过程是 ,从lreadbuf中读一字符送到AL ,通过AL送 82 5 0的发送保持寄存器(由ltransmit子程序完成 ) ,当对方的接收寄存器处于就绪状态 ,可以接收时 ,将此字符一方面存入接收缓冲区 ,另一方面通过接口芯片的发送保持寄存器 ,再将此字符返回给PC机 ,只有当PC机收到返回的字符时 (由lreceive子程序接收 )此次发送才是一次成功的发送。这是一种典型的反馈传送的传输控制方式。图 1 发送模块流程大多数国产与进口的数控机床其通讯软件均不采用此种传输控制方式 ,而采用软件流控制。软件流控制传输控制方式是较为流行的 ,因而具有通用性 ,便于与个人计算机连接通讯 ,也便于利用系统提供的通讯API函数编写通讯程序。DNC .ASM通讯软件所采用的这种特殊的传输控制方式是由TH -DNCⅢ型机床的NC系统中固化软件定义的 ,因此 ,编写PC机的用户通讯程序也只能遵循这一规程3 结束语在上述分析的基础上我们利用VC+ + 重新设计了该机床的通讯软件。利用通讯控件MScomm编写串口通讯程序的方案相对简洁、轻松 ,鉴于DNC .ASM通讯程序的传输规程采用反馈控制 ,无法采用MScomm控件通过设置属性来实现 .我们的解决方案是采用事件驱动方式和多线程技术 ,在可以利用通讯API函数的地方均采用系统提供的函数去设计 ,而数据的传送操作采用直接控制台I O函数outp() ,-inp()来实现。所设计软件界面美观 ,方便操作 ,错误处理能力强 ,不仅可以嵌入集成软件系统的输出模块 ,而且可以作为独立的通讯程序付诸实际应用TH-DNCⅢ数控机床通讯软件研究@陈志华$沈阳航空工业学院自动化系!辽宁沈阳110034
@张超$沈阳航空工业学院自动化系!辽宁沈阳110034
@李跃中$沈阳航空工业学院自动化系!辽宁沈阳110034
@苏达仁$沈阳航空工业学院自动化系!辽宁沈阳110034
串行通讯;;反汇编;;传输控制本文对PC机与TH—DNCⅢ型数控机床配备的通讯软件DNC .EXE进行了反汇编及分析研究,总结了该通讯软件的基本功能及关键技术<1>邱公伟可编程控制器网络通信及应用
北京:清华大学出版社,2000
<2>张昆藏微型计算机接口技术北京:清华大学出版社1991
<3>刘瑜Windows环境下串行通讯程序设计北京:计算机应用研究院,1999
<4><美>MarkNelson串行通讯开发指南北京:中国水力水电出版社2000也只能遵循这一规程3 结束语在上述分析的基础上我们利用VC+ + 重新设计了该机床的通讯软件。利用通讯控件MScomm编写串口通讯程序的方案相对简洁、轻松 ,鉴于DNC .ASM通讯程序的传输规程采用反馈控制 ,无法采用MScomm控件通过设置属性来实现 .我们的解决方案是采用事件驱动方式和多线程技术 ,在可以利用通讯API函数的地方均采用系统提供的函数去设计 ,而数据的传送操作采用直接控制台I O函数outp() ,-inp()来实现。所设计软件界面美观 ,方便操作 ,错误处理能力强 ,不仅可以嵌入集成软件系统的输出模块 ,而且可以作为独立的通讯程序付诸实际应用TH-DNCⅢ数控机床通讯软件研究@陈志华$沈阳航空工业学院自动化系!辽宁沈阳110034
@张超$沈阳航空工业学院自动化系!辽宁沈阳110034
@李跃中$沈阳航空工业学院自动化系!辽宁沈阳110034
@苏达仁$沈阳航空工业学院自动化系!辽宁沈阳110034串行通讯;;反汇编;;传输控制本文对PC机与TH—DNCⅢ型数控机床配备的通讯软件DNC .EXE进行了反汇编及分析研究,总结了该通讯软件的基本功能及关键技术<1>邱公伟可编程控制器网络通信及应用北京:清华大学出版社,2000
<2>张昆藏微型计算机接口技术北京:清华大学出版社1991
<3>刘瑜Windows环境下串行通讯程序设计北京:计算机应用研究院,1999
<4><美>MarkNelson串行通讯开发指南北京:中国水力水电出版社2000
More reviews about the TH-DNCⅢ数控机床通讯软件研究