2.3 计数机数字控制装置的软件结构
CNC系统是由软件和硬件组成,硬件为软件的运行提供了支持环境。同一般计算机系统一样,由于软件和硬件在逻辑上是等价的,所以在CNC系统中,由硬件完成的工作原则上也可由软件来完成。但是硬件和软件各有不同的特点。硬件处理速度较快,专用性强,但造价较高,软件设计灵活,适应性强,但处理速度较慢。CNC是实时控制系统,实时性要求最高的任务就是插补和位控,即在一个采样周期内必须完成控制策略的计算,而且还要留出一定的时间去做其他的事。CNC系统的插补既可由硬件来实现也可由软件来实现,到底采用软件实现还是硬件实现由多种因素决定,这些因素主要是专用计算机的运算速度、所要求的控制精度、插补算法的运算时间,以及性能价格比等。
2.3.1 CNC装置的软件组成
如图2-9为CNC装置的软件构成,它的系统软件必须完成管理和控制两大任务,系统的管理软件主要包括输入、I/O处理、通信、显示和诊断等程序。系统的控制部分包括译码、刀具补偿、速度控制、插补和位置控制、开关量控制等软件。
图2-9 CNC装置的软件构成
2.3.2 CNC系统软件的工作过程
(1)输入
CNC系统中的零件加工程序,一般都是通过键盘、磁盘、纸带阅读机或通信等方式输入的。在软件设计中,这些输入方式大都采用中断方式来完成,且每一种输入法均有一个相对应的中断服务程序,无论哪一种输入方法,其存储过程总是要经过零件程序的输入,然后将输入的零件程序存放到缓冲器中,再经缓冲器到达零件程序存储器。
(2)译码
译码处理以一个程序段为单位对零件程序进行处理,把其中的各种零件轮廓信息(如起点、终点、直线或圆弧等)、加工速度信息(F代码)和其他辅助信息(M、S、T代码等)按照一定的语法规则解释成计算机能够识别的数据形式,并以一定的数据格式存放在指定的内存单元。在译码过程中,还要完成对程序段的语法检查,若发现语法错误便立即报警。
(3)数据处理
数据处理即预计算,通常包括刀具长度补偿、刀具半径补偿、反间隙补偿、丝杠螺距补偿、过象限及进给方向判断、进给速度换算、加减速控制及机床辅助功能处理等。
(4)插补
插补的任务是在一条给定起点、终点和形状的曲线上进行“数据点的密化”。根据规划的进给速度和曲线形状,计算一个插补周期中各坐标轴进给的长度。数控系统的插补精度直接影响工件的加工精度,而插补速度决定了工件的表面光洁度和加工速度。所以插补是一项精度要求较高、实时性很强的运算。通常插补是由粗插补和精插补组成,精插补的插补周期一般取伺服系统的采样周期,而粗插补的插补周期是精插补的插补周期的若干倍。
(5)位置控制
位置控制的主要任务是在伺服系统的每个采样周期内,将精插补计算出的理论位置与实际反馈位置进行比较,其差值作为伺服调节的输入,经伺服驱动器控制伺服电动机。在位置控制中通常还要完成位置回路的增益调整、各坐标的螺距误差补偿和反向间隙补偿,以提高机床的定位精度。
(6)管理与诊断
CNC系统的管理软件主要包括CPU管理和外设管理。如前后台程序的合理安排与协调工作,中断服务程序之间的相互通信,控制面板与操作面板上各种信息的监控等。
诊断程序可以防止故障的发生或扩大,而且在故障出现后,可以帮助用户迅速查明故障的类型和部位。在设计诊断程序时,诊断程序可以在系统运行过程中进行检查与诊断,也可以作为服务程序在系统运行前或故障发生停机后进行诊断。
2.3.3 计算机数字控制系统的软件结构特点
CNC系统是一个专用的实时多任务系统,在其控制软件设计中,采用了许多现今计算机软件设计的先进思想和技术。其中多任务并行处理,前后台软件结构和中断型软件结构三个特点又最为突出。
(1)多任务并行处理
数控加工时,CNC装置要完成许多任务。在多数情况下,管理和控制的某些工作必须同时进行。例如,为使操作人员能及时了解CNC装置的工作状态,管理软件中的显示模块,必须与控制软件同时运行。当在插补加工运行时,管理软件中的零件程序输入模块必须与控制软件同时运行。而当控制软件运行时,其本身的一些处理模块也必须同时运行,例如,为了保证加工过程的连续性,即刀具在各程序段之间不停刀,译码、刀具补偿和速度处理模块必须与插补模块同时运行,而插补程序又必须与位置控制程序同时进行。
并行处理是指计算机在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作。并行处理的优点是提高了运行速度。
并行处理分为“时间重叠”并行处理方法和“资源共享”并行处理方法。资源共享是根据“分时共享”的原则,使多个用户按时间顺序使用同一套设备。时间重叠是根据流水线处理技术,使多个处理过程在时间上相互错开,轮流使用同一套设备的几个部分。
图2-10表示了并行任务处理。图中双箭头表示两个模块之间存在并行处理关系。
图2-10 任务的并行处理
(2)前后台型软件结构
CNC系统软件最常用的结构有两种:一是前后台型结构,二是中断型结构。
前后台型软件结构适合于采用集中控制的单微处理器CNC装置。在这种软件结构中,前台程序是一个实时中断服务程序,承担了几乎全部的实时功能,实现与机床动作直接相关的功能,如插补、位置控制、机床相关逻辑和监控等。后台程序是一个循环执行程序,一些实时性要求不高的功能,如输入译码、数据处理等插补准备工作和管理程序等均由后台程序承担,又称背景程序。
在背景程序循环运行的过程中,前台的实时中断程序不断定时插入,二者密切配合,共同完成零件加工任务。如图2-11所示,程序一经启动,经过一段初始化程序后便进入背景程序循环。同时开放定时中断,每隔一定时间间隔发生一次中断,执行一次实时中断服务程序,执行完毕后返回背景程序,如此循环往复,共同完成数控的全部功能。
图2-11 前后台型结构
(3)中断型软件结构
中断型软件结构没有前后台之分,其特点是除了初始化程序之外,整个系统软件的各种任务模块分别安排在不同级别的中断程序中,整个软件就是一个大的中断系统。其管理的功能主要通过各级中断服务程序之间的相互通信来解决。
各中断主要功能见表2-1,中断优先级共8级,0级最低,7级最高,除了第4级为硬件中断完成报警功能外,其余均为软件中断。
表2-1 各级中断的主要功能
① 0级中断程序 即为被初始化程序。电源接通后,首先进入此程序。初始化主要完成以下工作:一是对RAM中作为工作寄存器的单元设置初始状态,二是为数控加工正常进行而设置一些所需的初始状态。
② 1级中断程序 是主控程序,即背景程序。当没有其他中断时,1级程序始终循环运行。主要完成:CRT显示控制;ROM奇偶校验。
③ 2级中断程序 它主要是对系统所处的各种工作方式的处理。这些工作方式有:自动方式,系统在这种工作下可以连续控制刀具进行零件轮廓加工和进行译码和插补准备处理;MDI方式,系统在这种工作方式下除了可以手动输入各种参数和偏移数据外,还可以手动输入一个程序段的零件程序,并单段执行它;其他方式包括点动方式(STEP),手动连续进给(JOG)方式或手轮方式。
④ 3级中断服务程序 主要完成:I/O映像处理,用于PLC开关量信号的控制;键盘扫描和处理;M、S、T处理。将辅助功能,如主轴正、反转(M03、M04),切削液的开、关(M08,M09),主轴转速(S指令),换刀(M06及T指令)等控制信号输出,以控制机床的动作。
⑤ 5级中断服务程序 每8ms就执行一次,主要完成插补运算、坐标位置修正、间隙补偿和加减速控制。插补运算包括直线和圆弧插补、手动定位插补、自动定位和暂停插补。每个程序段插补完成以后要进行工作存储区的交换,如果插补设备没有把数据准备好,则暂时不交换,不作插补运算。
⑥ 6级中断服务程序 它主要为2级和3级的16ms中断定时。这是一种软件定时方法,通过这种定时,可以实现2级和3级的16ms定时中断,并使其相隔8ms。而且当2级或3级中断还没有返回时,不再发出中断请求信号。
⑦ 7级中断服务程序 当纸带通过光电阅读机输入时,光电阅读机每读到纸带上的一排孔,立即向CNC系统发一个中断请求信号,要求处理所读到的一个字符。7级中断服务程序的主要任务就是处理光电阅读机所读入的这一个字符。通常是把它放入纸带缓冲存储区,然后再送到零件程序(CMOS)区。
以上是一个典型的单处理器数控系统的软件结构,该系统的位置控制由硬件处理。当位置控制用软件来处理时,则位置控制程序应安排在插补程序同一级或更高级的中断服务程序中。
在多微处理器系统中,软件将以上控制任务分配到各个处理器,流水作业并行处理。处理器之间的协调仍可用中断的方式,只是有的中断源变为由其他处理器申请的外部中断。