CNC系统是一个专用的实时多任务计算机系统,在它的控制软件中,融汇了当今计算机软件技术中的许多先进技术,其中多任务并行处理、前后台软件结构和中断型软件结构三个特点又最为突出。
(1)CNC装置的多任务并行处理
CNC系统软件一般包括管理软件和控制软件两大部分。管理软件包括输入、I/O处理、显示、诊断等,而系统控制软件包括译码、刀具补偿、速度处理、插补、位置补偿等。在许多情况下,CNC的管理和控制工作必须同时进行,即所谓的并行处理。例如:加工控制时必须同步显示系统的有关状态,位置控制与I/O控制同步处理,并始终伴随着故障诊断功能;控制本身的插补、位置控制、预处理之间的并行处理。图3-9给出任务并行处理图,图中双向箭头表示两个模块之间有并行处理关系。
图3-9 任务并行处理图
(2)前后台型软件结构
前后台型软件结构适合于采用集中控制的单处理器CNC系统,在这种软件结构中,CNC系统软件由前台程序和后台程序组成。前台程序为实时中断程序,承担了几乎全部的实时功能,这些功能都与机床动作直接相关,如位置控制、插补、辅助功能处理、监控、面板扫描及输出等;后台程序主要用来完成准备工作和管理工作,包括输入、译码、插补准备及管理等,通常称为背景程序。背景程序是一个循环运行程序,在其运行过程中实时中断程序不断插入,前后台程序相互配合完成加工任务。如图3-10所示,程序启动后,运行完初始化程序即进入背景程序环,同时开放定时中断,每隔一固定时间间隔(如10.24ms)发生一次中断,执行一次中断服务程序。就这样,中断程序和背景程序有条不紊地协同工作。
图3-10 前后台型软件结构
前后台型软件在运行过程中的调度管理功能由背景程序完成,见图3-11,其中的框图是一个经过简化的程序框图。系统初始化后等待起动按钮的按下。起动按钮按下后,对第一个程序段译码进行预处理,完成轨迹计算和速度计算,得到插补所需要的各种数据,如刀具中心轨迹的起点和终点坐标、刀具中心的位移量、圆弧插补时圆心的各坐标分量等,并将所得到的数据送插补缓冲存储区保存。若有辅助功能代码(M、S、T),则将其送入系统工作寄存器保存。接下来,将插补缓冲存储区的内容送至插补工作存储区,系统工作寄存器中的辅助功能代码送至系统标志单元,以供使用。完成交换后设置标志(数据交换结束标志、开始插补标志),标志尚未设置之时,尽管定时中断照常发生,但并不执行插补及辅助信息处理等功能,仅执行一些例行的扫描、监控等功能。只有在标志设置之后,实时中断程序才能进行插补、伺服输出、辅助功能处理,同时开始对下一段程序进行译码、预处理。系统必须保证在当前程序插补过程中完成下段程序的译码和预处理,否则将会出现加工中停刀的现象。由上述可见,背景程序是通过设置标志来达到对实时中断程序的管理和控制的。
自设立两个标志,到程序段插补完成这段时间,CNC系统工作最为繁忙。在这段时间里,中断程序进行本程序段的插补及伺服输出,同时背景程序要完成下一程序段的译码和预处理。亦即在一个插补周期内,实时中断程序占用一部分时间,其余的时间留给背景程序。插补、伺服输出与译码、预处理分时共享(占用)CPU,以完成多任务并行处理,这就是所谓的资源分时共享。
通常,下一程序段的译码预处理时间要比本程序段的插补运行时间短,因此在背景程序中还有一个等待插补完成的循环,在等待过程中不断进行CRT显示。本程序段插补加工结束,但整个零件加工未结束,则系统开始新的循环。整个零件加工结束则停机。
定时中断服务程序是系统的核心,除了进行插补和位置控制外,还要完成面板扫描、机床逻辑控制及实时诊断等任务。定时中断服务程序的框图如图3-12所示。
图3-11 背景程序的调度管理功能
图3-12 定时中断服务程序框图
在定时中断服务程序中,首先进行位置控制。对前一插补周期中坐标轴的实际位移增量进行采样,再根据前一插补周期插补得到的位置增量(经过齿隙补偿)算出当前的跟随误差,进而得到进给速度指令,驱动电动机运动。接下来对主控制面板和辅助控制面板进行扫描,设置面板控制状态的系统标志。
机床逻辑处理包括调用PLC程序执行M、S、T辅助功能及机床逻辑状态监控;处理控制面板的输入信息,对诸如起动、停止、改变工作方式、手动操作、进给率调节作出响应;进行各种故障的诊断处理,如超程、超温、熔丝熔断、阅读机出错、急停、辅助功能执行状态等。
当插补条件得到满足时,执行插补程序,算出位置增量,作为下一插补周期的位置增量数据。面板输出指扫描和修正控制面板的显示,为操作者指明系统的当前状态。(www.daowen.com)
图3-13是一个CNC系统的前后台型软件总体框图。该软件设置三种中断:可屏蔽10.24ms实时时钟中断、光电阅读机中断和键盘中断。其中光电阅读机中断优先级最高,10.24ms定时时钟中断次之,键盘中断最低。10.24ms中断定时发生,而光电阅读机中断在起动阅读机后发生,键盘中断在键盘方式下发生。
CNC系统接通电源或复位后,首先运行初始化程序,然后设置有关标志和参数,设置中断向量,开放10.24ms定时中断。后台程序启动后,先进行MCU(机床控制单元)总清,清零件缓冲区、键盘MDI缓冲区、暂存区、插补参数区等,并使系统进入初始控制状态。系统设有四种工作方式,即自动、单段、键盘和手动方式,其中自动、单段方式在加工中采用;键盘方式主要处理各种键盘命令,如编辑、输入/输出数据、设定参数等;手动方式主要处理点动、回原点等。按方式选择开关(当10.24ms中断程序扫描到面板上方式选择开关状态的变化时)即可进入相应的方式服务程序中,各方式服务程序的出口又返回到方式选择程序。
图3-13 前后台型软件总体框图
(3)中断型软件结构
中断型软件结构没有前后台之分,除了初始化程序外,根据各控制模块实时的要求不同,把控制程序安排成不同级别的中断服务程序,整个软件是一个大的多重中断系统,系统的管理功能主要通过各级中断服务程序之间的通信来实现。表3-1将控制程序分成为8级中断程序,其中7级中断级别最高,0级中断级别最低。位置控制被安排在级别较高的中断程序中,其原因是刀具运动的实时性要求最高,CNC装置必须提供及时的服务。CRT显示级别最低,在不发生其他中断的情况下才进行显示。
表3-1 数控系统中断型软件结构
为了进行系统管理,系统采取的中断程序间的通信方式有以下几种:
①设置软件中断表3-1中第1、2、4级中断设置成软件中断,第6级中断设置成硬件中断,由时钟定时发生,每4ms中断1次。这样每发生两次第6级中断请求发生1次第4级中断(第4级每8ms发生1次)。第6级中断每发生4次,设置1次1级,2级中断请求。这样便将第1级、第2级、第4级、第6级中断联系起来。
②中断服务程序自身的链接系统第1级中断分为13个口,每一个口对应于口状态字的一位,每一位(每一个口)对应处理一个任务,即第1级中断包括13个子任务。在执行第1级中断各口的处理时,可以设置口状态字的其他位的请求,如图3-14所示。如在8号口的处理程序中,可将3号口置1,这样8号口程序一旦执行完,即刻转入3号口处理。
图3-14 第1级中断请求
③设置标志标志是各程序之间相互通信的得力工具。例如,第4级中断主要完成插补功能,每8ms中断一次。译码、刀具半径补偿等在第1级中断中进行。在第1级中断服务程序中,进行完译码和刀具半径补偿后即刻设置标志。是否开放插补中断程序取决于该标志的设置。在未设置译码、刀具半径补偿完成标志时,CNC装置跳过插补服务程序而继续往下执行。
(4)常用的软件设计技术
在加工中,CNC装置需要做多项工作,甚至要求在同一时间间隔完成两项或两项以上的工作。为此,在CNC装置软件设计中,通常采用资源分时共享和资源重叠的流水线处理技术。
对于单微处理器的CNC装置,主要采用对CPU的分时共享(占用)来解决多任务的并行处理,其关键是如何分配占用CPU的时间。一般多采用循环轮流与中断优先相结合的方法来解决各任务对CPU的合理占用,亦即采用前后台型的软件结构形式。
流水线处理指在一段时间间隔内处理两个或多个任务,即时间重叠。显然,流水线处理要求同时处理各任务时,所需的时间应相等。但实际上,CNC装置处理各任务所需的时间是各不相同的。因此采用流水线处理时,取最长的任务处理时间作为流水处理的时间间隔。这样一来,在处理时间较短的任务时,处理完成后需进入等待状态。需要指出的是,这种方法对于多微处理器CNC装置才具有意义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。