嵌入式技术迅速发展,已经被广泛地应用于各行各业。将嵌入式技术和数控技术结合起来产生了很多理论和应用成果。但是,随着机床加工零件复杂程度越来越大,建立嵌入式数控系统一致的体系架构越来越迫切。没有体系结构提供通用的方法指导,将各式各样的软硬件模块集成到数控系统中将是非常繁重且容易出错的工作。嵌入式数控系统体系结构就是要为各个模块提供集成规则和接口规范,通过这些集成规则和接口规范,不同的开发者能够构建出通用的模块。利用通用的模块和通用的集成规则,可以构建不同的嵌入式数控系统,由数控系统集成到工控站,由工控站再到工控网络乃至更复杂的系统。嵌入式数控体系结构能够提高系统的灵活性、可靠性、安全性和开放性。美国国家技术标准化组织(NIST)就致力于为各种机械控制系统建立一种参考体系结构[1]。本文研究了嵌入式数控系统的硬件体系结构和软件体系结构,并结合所做工作,介绍了这种体系结构的一种实例。
嵌入式数控系统硬件体系结构
嵌入式数控系统硬件体系结构如图1所示。
图1 嵌入式数控系统硬件体系结构
嵌入式数控系统必须包含一个可编程计算部件,也可以包含多个,构成多CPU系统。嵌入式处理器或控制器种类很多,比较常用的有ARM、嵌入式X86、MCU等,处理器是整个系统运算和控制中心,它的架构越来越趋向于采用RISC指令集Harvard架构。可编程计算部件,若干年前还是单指处理器或微控制器,而现在却增加了如FPGA等其它可编程计算资源。
数控系统要和操作人员交互,必须有一个显示硬件,可以是CRT显示器,但是一般嵌入式处理器中集成LCD控制器,它提供与DSTN(Dual-Layer Super Twist Nematic,双扫描扭曲向列液晶屏)或TFT(Thin Film Transistor,薄膜晶体管液晶屏)显示器的接口,通过这个接口可以直接驱动液晶显示屏。
随着USB移动存储设备使用的推广,平台通过USB主控制器实现对USB设备的支持和控制。处理器中也可能集成了USB客户端控制器,方便实现USB客户端接口,一般通过这个接口进行上位机与平台间的应用软件调试。
串口用来实现上下位机通信,在有些伺服驱动装置中也提供串口连接,因此,也可以通过串口与驱动连接。
外部存储器总线接口支持各种外部存储器:SDRAM、RAM和闪存储器,内存一般选用SDRAM,闪存是一类非易失性存储器,在电源关闭后仍能保持片内信息,这里用来存储数控系统程序及配制数据。
进给轴接口是数控系统和进给伺服系统的桥梁。就现阶段经常使用的伺服控制系统而言,进给控制接口一般有串行式接口、脉冲式接口、模拟式接口等等。
主轴控制接口连接数控系统与主轴驱动单元,它包含两个部分:主轴速度控制输出和主轴编码器输入。
在数控系统内集成的PLC属于内置式,它有设计灵活、结构紧凑、针对性强等特点,主要完成主轴转速的S代码、刀具功能的T代码以及控制主轴正反转与启停、主轴换档、冷却液开关、卡盘松紧等M代码。
传感器接口用来检测机床位置信息,实现各种控制算法的计算输入。
现代制造工程的发展要求数控系统间应该能够通过网络互连,传递命令和数据信息,并行完成数控任务。因此加入以太网模块,以便在需要时实现数控系统的联网。
上述各功能模块通过标准总线连接,实行统一的总线接口规范。该体系结构中有些功能模块不是每一个嵌入式数控系统都必须的,可根据具体要求裁减。
嵌入式数控系统软件体系结构
嵌入式数控系统软件体系结构如图2所示:
图2 嵌入式数控系统软件体系结构
嵌入式数控系统软件体系结构分为系统平台和应用软件两大部分。上层应用软件分数控应用程序接口(NCAPI)和操作界面组件两个层次,以分别实现对机床厂和用户这两个层次的开放。
底层模块除了PLC之外的部分是不对外开放的,非系统开发者可以通过NCAPI使用底层的功能。底层模块完成插补任务(粗插补,微直线段精插补,单段, 跳段, 并行程序段处理);PLC任务(报警处理,MST处理,急停和复位处理,虚拟轴驱动程序,刀具寿命管理,突发事件处理);位置控制任务(齿隙补偿, 螺距补偿,极限位置控制,位置输出);伺服任务(控制伺服输出、输入)以及公用数据区管理(系统中所有资源的控制信息管理)。因此必须具有多任务的处理能力,即;任务建立;撤消;调度;唤醒;阻塞;挂起;激活;延时的处理能力;创建信号量;释放信号量;取信号量值的能力。
上层软件负责零件程序的编辑、解释,参数的设置,PLC的状态显示,MDI及故障显示、加工轨迹、加工程序行的显示等,通过共享内存、FIFO和中断与底层模块进数据交换。上层软件模块包括:解释器模块,MDI运行模块,程序编辑模块,自动加工模块,参数编辑模块,PLC显示模块,故障诊断模块等等。
数控应用软件开发接口(NCAPI)是为针对不同的机床和不同的要求而提供的通用接口函数,在此之上可以方便地开发出具体的数控系统,如华中I型铣床数控系统,世纪星车床数控系统等。NCAPI与原华中I型提供的API接口保持一致。统一的API保证系统的可移植性和模块的互换性;系统开发集成环境中的配置功能可以通过配置不同的软件模块实现系统性能的伸缩性,系统性能的伸缩性则通过更换系统硬件得以保证。
应用实例
按照上述嵌入式体系结构的层次划分,本文开发了基于嵌入式PC和LINUX操作系统的嵌入式数控系统。
CPU采用嵌入式PC单元,通过PC104总线嵌入到数控主板中。在数控主板上,继承了开关量接口电路,MCP、MDI键盘接口电路,进给轴接口电路以及主轴接口电路。各接口电路由核心器件FPGA芯片集中控制。为满足CNC装置对开放性的要求,数控主板采用双FPGA设计。一个FPGA芯片负责控制开关量接口电路,MCP、MDI键盘接口电路,主轴接口电路,串行口伺服驱动装置接口电路;另一个FPGA芯片负责控制脉冲量伺服驱动装置或步进电机驱动装置接口电路,模拟量伺服驱动装置接口电路。两个FPGA芯片通过PC/104总线嵌入式PC机控制。利用FPGA芯片的灵活性,在不改变硬件电路的情况下,通过改变FPGA芯片的固件,以及两个FPGA芯片灵活搭配,可以构造出不同配置的数控装置。
操作系统是通过改造Linux内核使其成为实时操作系统。具体方法是:在Linux操作系统中嵌入一个硬件抽象层,接管所有中断和对硬件的操作。由于Linux采用整体式的模块化结构,数控系统任务中需要实时响应的任务做成数控实时模块,嵌入到Linux内核中,这些任务包括:伺服监控、PLC、位置控制等周期任务和插补这个非周期任务,刀补、译码和网络基本功能打包成数控应用程序接口。#p#分页标题#e#
在实时Linux软件平台的基础上,应用软件平台包含的离散点I/O控制API、传感器API、位置控制器API等接口为通用API接口。应用程序层包含的过程控制、人机界面及系统集成与配置支撑环境三部分只需要用实时Linux操作系统相关系统API替换相应的模块通信接口即可,上层应用模块可以不做修改。同时,应用软件平台具备良好的开放性,用户可自定义API来扩充系统功能支持,本文在应用平台层自定义了一个数控图形库API,用来支持数控系统的图形显示功能。
结语
本文提出的这种开放的嵌入式数控系统体系结构,在硬件上,标准的总线屏蔽了各功能部件差异,不同功能的数控硬件通过标准的信号规范来定义。在软件上,嵌入式实时操作系统为数控应用软件提供了系统接口,屏蔽硬件细节,提供实时、可靠、多任务的运行环境。软件体系结构总体上分层,使得体系结构清晰明了;层内按功能模块化,尽量减少模块耦合,使得软件复用性很好,有利于数控系统功能裁减和系统维护。既保证了硬件平台的开放性和稳定性,也使得软件移植和设计更加方便。
转载请注明出处。