CNC系统的软件结构决定于系统采用的中断结构。在常规的CNC系统中,已有的结构模式有中断型结构和前后台型两种结构模式。
中断型软件结构的特点是除了初始化程序之外,整个系统软件的各种功能模块分别安排在不同级别的中断服务程序中,整个软件就是一个大的中断系统。其管理的功能主要通过各级中断服务程序之间的相互通讯来解决。
一般在中断型结构模式的CNC软件体系中,控制CRT显示的模块为低级中断(0级中断),只要系统中没有其他中断级别请求,总是执行0级中断,即系统进行CRT显示。其他程序模块,如译码处理、刀具中心轨迹计算、键盘控制、I/O信号处理、插补运算、终点判别、伺服系统位置控制等处理,分别具有不同的中断优先级别。开机后,系统程序首先进入初始化程序,进行初始化状态的设置、ROM检查等工作。初始化后,系统转入0级中断CRT显示处理。此后系统就进入各种中断的处理,整个系统的管理是通过每个中断服务程序之间的通信方式来实现的。
表4-1 FANUC-BESK 7CM CNC系统的各级中断功能
中断级别 | 主要功能 | 中断源 |
0 | 控制CRT显示 | 硬件 |
1 | 译码、刀具中心轨迹计算,显示器控制 | 软件,16ms定时 |
2 | 键盘监控,I/O信号处理,穿孔机控制 | 软件,16ms定时 |
3 | 操作面板和电传机处理 | 硬件 |
4 | 插补运算、终点判别和转段处理 | 软件,8ms定时 |
5 | 纸带阅读机读纸带处理 | 硬件 |
6 | 伺服系统位置控制处理 | 4ms实时钟 |
7 | 系统测试 | 硬件 |
例如FANUC-BESK 7CM CNC系统是一个典型的中断型软件结构。整个系统的各个功能模块被分为八级不同优先级的中断服务程序,如表4-1所示。其中伺服系统位置控制被安排成很高的级别,因为机床的刀具运动实时性很强。CRT显示被安排的级别最低,即0级,其中断请求是通过硬件接线始终保持存在。只要0级以上的中断服务程序均未发生的情况下,就进行CRT显示。1级中断相当于后台程序的功能,进行插补前的准备工作。1级中断有13种功能,对应着口状态字中的13个位,每位对应于一个处理任务。在进入1级中断服务时,先依次查询口状态字的0~12位的状态,再转入相应的中断服务(表4-2)。其处理过程见图4-12。口状态字的置位有两种情况:一是由其他中断根据需要置1级中断请求的同时置相应的口状态字;二是在执行1级中断的某个口子处理时,置口状态字的另一位。当某一口的处理结束后,程序将口状态字的对应位清除。
图4-12 1级中断各口处理转换框图
2级中断服务程序的主要工作是对数控面板上的各种工作方式和I/O信号处理。3级中断则是对用户选用的外部操作面板和电传机的处理。
4级中断最主要的功能是完成插补运算。7CM系统中采用了“时间分割法”(数据采样法)插补。此方法经过CNC插补计算输出的是一个插补周期T(8ms)的F指令值,这是一个粗插补进给量,而精插补进给量则是由伺服系统的硬件与软件来完成的。一次插补处理分为速度计算、插补计算、终点判别和进给量变换四个阶段。
5级中断服务程序主要对纸带阅读机读入的孔信号进行处理。这种处理基本上可以分为输入代码的有效性判别、代码处理和结束处理三个阶段。
6级中断主要完成位置控制、4ms定时计时和存储器奇偶校验工作。
7级中断实际上是工程师的系统调试工作,非使用机床的正式工作。
中断请求的发生,除了第6级中断是由4ms时钟发生之外,其余的中断均靠别的中断设置,即依靠各中断程序之间的相互通讯来解决。例如第6级中断程序中每两次设置一次第4级中断请求(8ms);每四次设置一次第1、2级中断请求。插补的第4级中断在插补完一个程序段后,要从缓冲器中取出一段并作刀具半径补偿,这时就置第1级中断请求,并把4号口置1。
表4-2 FANUC-BESK 7CM CNC系统1级中断的13种功能
口状态字 | 对应口的功能 |
0 | 显示处理 |
1 | 公英制转换 |
2 | 部分初始化 |
3 | 从存储区(MP、PC或SP区)读一段数控程序到BS区 |
4 | 轮廓轨迹转换成刀具中心轨迹 |
5 | “再启动”处理 |
6 | “再启动”开关无效时,刀具回到断点“启动”处理 |
7 | 按“启动”按钮时,要读一段程序到BS区的预处理 |
8 | 连续加工时,要读一段程序到BS区的预处理 |
9 | 纸带阅读机反绕或存储器指针返回首址的处理 |
A | 启动纸带阅读机使纸带正常进给一步 |
B | 置M、S、T指令标志及G96速度换算 |
C | 置纸带反绕标志 |