一、嵌入式软件开发方式
绝大多数的Linux或软件开发都是以native方式进行的,即本机开发、调试,本机的方式二这种方式通常不适合于嵌入式系统的软件开发,囚为对于嵌入式系统的开发,没有足资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用交又编译调试的方式。简单的说,交叉编译就是在一个平台上生成另一个平台上的可执行代码,如在x86的YC机上生成ARM平台的可执行代码。
交又编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板开发时使用宿主机上的交叉编译,汇编及连接工具形成可执行的二进制代码,(这种可执行并不能在宿主机上执行、而只能在目标板上执行、3然后把可执行文件下载到目标机上运行交又开发技术己成为嵌入式软件开发的主要方式。其开发步骤如下,在宿主机平台上面编写程序代码;)使宿主机与目标机连接,如使用交叉网线;使用交叉编译器等工具编译、连接应用程序,生成可执行代码:目标机挂载如(mount)宿主机的方式f或将可执行代码下载到目标机,:开发人员使用交又调试器进行调试:如果程序调试没有发现异常,则转至第(10)步:调试程序时发现错误,则利用交叉调试器定位错误:修改错误代码:重复(3)-(9)步;将目标机程序固化至目标机上。
二、数控系统软件任务研究
控软件的功能大致可分为两种甲一种是控制功能,另一种是管理功能。其中,管理功能包括信息的输入功能、输出输入输出的处理功能、显示功能和诊断功能,控制功能包括译码功能、刀具补偿功能、速度控制功能、和位置控制功能。
从任务的特征来奢,与通用实时系统相比甲数控系统有以下特点:
数控系统是一个混合任务系统,其任务按是否具有实时性要求和周期性要求可分为:实时周期性任务、实时突发性任务和非实时任务。实时周期性任务是指严格以定长时间间隔定时触发,井且在规定的时间内必须完成处理的任务‘在数控系统中主要指加工过程中的插补控制、位置控制、数据采样等需快速响应的机床逻辑状态:实时突发性任务的发生是时间的随机函数,要求有很高的实时性,它包括机床紧急停止、系统故障中断等:非实时性任务是指实时性要求很低的任务1如:人机界面监控,这类任务对千机床运行和加工质量的影响较小,其主要作用是让操作者了解机床运行状况,增强机床的易操作性。
任务之间具有相关性。数控系统的实时任务除了自身的时限要求以外,任务之间通常也不是完全独立的,一般存在时序约束、资源约束等约束关系。
系统在某一确定时刻的并发任务数量不多,与通用实时操作系统不同,数控系统的功能单一、因此调度程序几乎不需要处理较大数量的并发任务。
三、需求分析
数控控制系统通过良好的人机交互界面,完成显示工作状态、操作人员进行参数设定等任务,主要有以下几个方面的综合合要求。
系统界面要求:图形用户界面可以实时显示加工状态、当前时间、开机时间、加工时间、各个轴的坐标位置,正在运行的关键G代码程序段等信息;
系统功能要求:操作人员可以在符合国际标准的条件下无需了解嵌入式数拄系统的专用编程代码,直接使用符合国际标准的G代码和h4代码,即可编制数控程序;
系统的运行要求:操作人员可以根据需要点击触摸屏和键盘或机床面板按钮.随时监控数控系统的工作状态:还可以通过参数设置实现对电机的控制,如电机的启停,正反转等等;
异常处理要求:在正常生产条件下,每天运行16小时,数控系统的无故障率P(t)≥90%。这要求其MTBF值数控系统的平均无故障时间,是衡量可靠性的重要指标)大于3万时;在硬件不受损坏的情况下,系统软件要有较强的容错能力。
未来可能提出的扩展要求:如能实现远程的联网控制、故障自诊断等、加工仿真、重要数据的备份、中英文界面切换等。
把上述提出的直观需求转化为具体的软件功能需求,即为:
完成电机的启动,制动和换向控制,实现加工过程中的主轴、近给速度实时1}整‘实规六轴的高精度联动,并通过插补1完成工件的加工、磨削;在能够满足一定精度的前提下.实现自由曲线的粗插补取精插补:
图形用户界面要求:实现参数的图形菜单输入,加工过程的仿真,并实时显示加工图形和各轴坐标值,用户可以通过触摸屏和键盘进行参数设置.实现对电机得的控制:实现1司服信号、开关量信号、和辅助信号的宏指令控制,且符合G代码和M代码功能定义。
实现各功能电路的PI,C控制.包括机床面板功能实现1主轴的起停、自动润渭控制以及过载、超载、碰撞、掉电等紧急情况的处理。
为了方便用户操作,还应提供操作提示和帮助文档‘同时,系统具有一定的拉千扰能力,即使受到干扰使系统控制失灵或程序运行异常时.也能够从错误或故障中恢复,保证系统的正常工作。
从以上功能需求分析得知,一个功能满足六轴数控磨削系统基本需要的系统,必须包括以下几个模块:电机控制、图形界面、译码、PLC、CAN通讯、硬件驱动等。