摘要:本文开发出一套小型计算机数控系统。在硬件上,由上位机和下位机两部分构成。上位机采用PC机或工控机,主要实现与用户交互.,完成数据处理。下位机采用MCS-51单片机系统,主要实现通讯及强实时信号的处理。下位机控制软件使用了嵌入式实时操作系统μC/OS-II进行开放式数控系统的开发。软件设计部分,上位机采用Visual Basic为开发工具,下位机采用C51、51汇编。
1 引言
随着科技的进步,数字控制技术、数控系统得到飞速发展。机床的计算机数控系统就是这些机电一体化技术代表性的系统。计算机数控系统是由计算机承担数控中的命令发生器与控制器的数控系统。计算机接收的位置运动的指令,将其生成各坐标轴的位置命令并实时输出给各坐标轴的控制器,控制器按控制策略控制各轴伺服系统,使驱动器驱动执行机构,带动机器的各坐标轴按给定命令运动。
2 微型计算机数控系统总体介绍
微型数控(CNC)系统的硬件分成了两大部分,PC 机部分和一块用MCS-51 单片机开发的硬件电路板,这两部分是使用串行口RS-232 连接起来的。(本文下面提到的上位机、下位机分别指PC 机、单片机系统)上位机上的软件负责实现本系统的用户操作界面、零件加工程序的输入、译码、速度计算等功能,形成一组供下位机插补计算用的数据信息。下位机除了处理一些实时性强的机床信号外,主要任务就是根据上位机指令执行机床控制和插补运算,输出机床的控制信号。微型数控系统的简单结构如图1。
3 上位机软件设计
3.1 上位机软件总体设计框图
上位机软件的开发是使用运行在Windows 操作系统下的VisualBasic 工具完成的,选用VisualBasic 是因为它的简单易用,而且对于本系统的开发具有足够强大的功能。上位机软件的结构如图2。
从图 2 中可以清楚地看出上位机软件的基本功能。首先,上位机软件提供了一个零件加工程序的编辑窗口,按照系统预先设定的语法编写零件加工程序,然后编译,如果没有错误提示的话,编译的程序就可以送到下位机开始加工了;如果程序中有语法错误,则系统会给出提示,帮助修改。其次,上位机模拟机床控制面板的主要功能按键,通过鼠标点击这些按键完成相应的机床控制,如机床的启动、停止,主轴X、Y 方向的位置调整等等。另外,上位机接收并显示来自下位机的信息。
3.2 译码
译码的功能是将输入的零件加工程序翻译成本系统能识别的信息。不同的系统有不同的数据格式。一般用户输入的数控加工程序采用ISO 标准码编制,译码就是把用户标准的数控加工程序转换为本系统能识别的数据格式。
零件加工程序输入之后,点击“Compile”按钮将开始进入译码模块。译码模块主要由两个嵌套的循环来实现,外循环针对零件加工程序的所有数据段,处理一个数据段执行循环;内循环针对一个数据段(把一个数据段看成是山若干个用空格分开的字符串组成)包含的各个字符串,处理一个字符串执行循环。因为对于一个数据段,译码模块用循环处理,所以译码模块首先计算零件加工程序中总共有多少个数据段,并用变量记录这个数,作为循环控制的条件。然后进入循环,对每个数据段进行处理。首先取个数据段,再读取个字特串的个字符,接下来是一个Switch 语句判断读到的是个什么字符。根据零件加工程序编写的语法规范,循环执行,直到所有数据段处理完毕。形成译码结果,保存在一个字符数组当中。为零件加工的开始做好了准备。整个译码处理过程思路清晰,结构简单,而且以后可以很方便的扩展数控编程功能,只要在Switch 语句中添加Case 项就可以实现。
3.3 异步串行通信
本系统采用了 RS-232 异步串行通信从上位机向下位机输入数据。在设计PC-MCU 通信协议时,PC 是主控者,单片机主要是被动接收PC 发来的数据等内容。PC 发送给单片机的内容有三种,一种是机床控制命令,一种是用于插补的数据,还有一种端口测试命令。单片机发送给PC 机的主要是机床状态信息、端口测试返回和数据正确接收的确认帧。
本通信协议的设计思想是基于帧传输方式。即向 RS-232 串口发送命令信号、数据信号时,是一帧一帧传送的。为了数据可靠传输,传送每帧数据时进行数据累加和校验,如果传送出错,要求重新传送。连续传送三次错误,系统就退出通信并提示串口传送失败。
3.4 数控加工程序编写
本系统要求零件加工程序的编写采用ISO 标准代码,并结合上位机软件作了些约定:
1.输入格式的约定,要求每个数据段中不同代码部分之间用空格隔开,每一段用“#”作为结束标志符。结束符和代码之间也用空格隔开。
2.在零件加工程序中允许出现的字符是:G、M、S、T、F、X、Y、I、K、#以及数字,正负号,小数点等。
3.G、M 后只能跟两位数字,其它字母后的数字不限。
4.每段中允许有不同组的G 码,M 码,若属于同一组则出错。
5.整个零件加工程序以“END”,作为结束段。
下面有一个小程序作为例子来说明这些约定,供参考。
G00 X010 Y000#
G01 X026 Y010#
G01 X010 Y014#
G03 X013 Y-13 113 K00 #
G01 X000 Y000#
End
由于使用的是标准代码,至于各条语句的具体含义在此不多介绍。
4 下位机设计
4.1 下位机硬件设计
下位机硬件结构采用 MCS-51 单片机作为处理机,由于控制软件采用了代码公开的实时嵌入式操作系统μC/OS-Ⅱ,所需代码空间至少在8K 字节以上,所需数据空间也超过了该系 列CPU 内部所能提供的数量,所以必须扩展外部存储空间,考虑到以后系统扩展,目前使用了一个32K 字节的EPROM 和一个8K 字节的RAM 作为系统运行的存储空间。代码公开的实时嵌入式操作系统。μC/OS-Ⅱ可以移植到许多的微处理器上,前提是该处理器必须要有堆栈指针,有CPU 内部寄存器入、出栈指令。μC/OS-Ⅱ是为嵌入式应用而设计的,很适合用在这种小型的系统中。
由于单片机内部的存储器不能满足实际需要,因此需要从外部进行扩展,配置外部存储器,包括程序存储器EPROM 和数据存储器RAM。本系统根据实际软件需要,并考虑到系统今 后的扩展,采用了32KEPROM27C256 作为系统外部程序存储器,采用8K 静态RAM6264 作为外部数据存储器。采用静态RAM 设计时,无需外部刷新电路,因此与CPU 的接口简单。
考虑到微型数控系统与机床的信息交换,只有一个八位端口是不够用的,因此要进行系统I/O 扩展。选用了可编程控制的外围并行接口8255A。由于外围I/O 芯片与外部数据存储空间是统一编址的,它不仅占用数据存储器的地址单元,而且使用数据存储器的读写控制指令和读写指令,这就要求硬件设计中要考虑数据存储器与外围I/O 芯片的地址译码。
RS232 串行通信接口选择简单的应用接法,只用了三根线,即串行接收RXD、串行发送TXD 和接地线GND。将“串行发送”和“串行接收”交叉连接,地线直接相连,其余信号线都不用。用软件来实现通信的“握手”、空闲检测等功能。选用了MAX232 串口通信信号转换芯片来实现RS232 与TTL 的电平转换和正负逻辑电平的转换。
4.2 系统抗干扰设计
形成干扰的因素有三个:干扰源、传播路径和敏感器件。成为干扰源的都是一些电压或电流变化比较快的器件或信号;传播路径是指从干扰源传播到敏感器件的通路或媒介;敏感器件是容易被干扰的器件,如A/D、D/A 转换器,数字IC 等。抗干扰设计的原则是抑制干扰源,切断传播路径,增强敏感器件的抗干扰能力。采取的主要措施是电路板上每个 IC 并接一个0.01μF 高频电容,以减少IC 对电源的影响。电容的引线要尽量短。布线时避免90 度折线,减少高频噪音发射。尽量使晶振和单片机的引脚靠近,晶振外壳接地。布线时尽量加粗电源线和地线,可降低耦合噪音。单片机闲置的I/O 口接地或接电源。另外选择好的电源,对减少干扰很有帮助。
4.3 下位机软件设计
本系统使用μC/OS-Ⅱ实时嵌入式操作系统开发单片机控制软件。其软件流程如下:
1.系统初始化
下位机上电或是复位以后,系统将从程序代码空间的首地址0x0000 开始执行,如果用C语言编写MCS-51 程序的话,就是从Main()函数的开始处执行。程序首先执行整个单片机系统的软硬件初始化,包括操作系统的初始化和硬件定时器、串口等初始化。示意图如4。
2.创建任务
初始化完成之后,下位机就进入到了正常工作阶段了。这个时候内存中有了开始创建的4个任务,分别是任务serialOperate,解析接收到的上位机命令;任务interpolation,插补计算,输出控制信号;任务misc 处理M 码及其他空闲任务OSTaskIdle。起初由于没有接收到上位机的各种命令,系统处于就绪等待状态。这个时候,μC/OS-Ⅱ中优先级别的默认任务-空闲任务OSTaskIdle()得到了运行。空闲任务不作任何有意义的工作。
3.中断处理
当上位机通过串口向下位机发送工作指令时,下位机产生串口中断接收信息,等接收到一个完整的帧之后,串口中断服务程序将从Serylnt()中通过语句OSSemPost(seRecSem)发出信号量seRecSem。这个时候正在等待这这个信号量的任务serialOperate 接收到信号量它将在中断服务程序退出之后恢复运行。
5 本文作者创新点
本文的主要目的是进行计算机数控系统的研究,并且进行微型数控系统的实际开发工作。这是一个综合、复杂的机电一体化系统。上位机数控系统软件的开发,采用了Windows作为开发平台,VisualBasic 作为开发工具,主要是考虑到Windows 良好的用户界面以及其广泛的应用,操作人员只要使用过Windows 操作系统就能很容易操作该软件。本系统上位机和下位机的通信采用了串行RS-232 接口,这种串行通信接口使用简单,编程容易,而且上、下位机的硬件都能支持。下位机控制软件采用了μC/OS-Ⅱ多任务实时操作系统,该实时操作系统的使用改变了传统数控系统的软件开发流程。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。