基于高档数控的实时多任务实现
0 引言
实时性是数控系统一项重要的性能指标。
通信在IPC(Industrial Personal Computer)与运动控制器构成的开放式数控系统开发平台上,虽然这种主从式结构,确保了运动控制指令在运动控制器内高速、实时的被执行,但在PC平台上,仍需要完成诸如实时显示、预处理计算、系统状态监控等许多任务。为了保证系统的实时性能,拟采用多线程技术,通过多任务并行处理的方式,提高系统实时性。
1 进程与线程以及多线程技术
Windows操作系统既支持多进程,又支持多线程。一个进程就是应用程序的一个实例,一次执行过程也就是调入内存准备执行的程序,包括当前执行的应用程序的执行代码和程序执行相关的一些环境信息。每个进程拥有整台计算机的资源,无须知道其他进程在计算机中的信息。通常每个进程至少有一个线程在执行所属地址空间中的代码,该线程称为主线程,如果该主线程运行结束,系统将自动清除进程及其他地址空间。
线程是进程内部执行的路径,是操作系统分配CPU时间的基本实体,是程序运行的最小单位。每个进程都由主线程开始进行应用程序的执行。线程由一个堆栈、CPU寄存器的状态和系统调用列表中的一个人口组成。每个进程可以包含一个以上的线程,这些线程可以同时独立地执行进程地址空间中的代码,共享进程中的所有资源。
Windows系统分配处理器时间的最小单位是线程,系统不停地在各个线程之间切换。在PC机中,同一时间只有一个线程在运行。通常系统为每个线程划分的时间片很小(ms级别),这样快速系统的实时性就有了保障。
要实现多线程编程,可建立辅助线程(Worker Thread)和用户界面线程(User Interface Thread)。辅助线程主要用来执行数控程序、坐标显示、动态仿真和数据预处理;用户界面线程用来处理用户的输入,响应用户产生的事件和消息。
2 实时多任务的实现
数控系统软件具有实时性和多任务两大特点。数控系统中要管理和控制的任务很多,如当数控系统正处于加工控制状态时,为了保证加工的连续性,在各个程序段之间不停顿,各数控加工程序段的预处理、插补计算、位置控制和各种辅助控制任务都要及时进行;为了使操作人员及时了解和干预数控系统的工作状态,系统在执行加工任务的同时还应该及时进行一些人机交互工作,即显示加工状态、接收操作人员通过操作面板输入的各种改变系统状态的控制信号等。为了及时检查和预报软、硬件的各种故障,系统在运行控制程序和人机交互程序同时还要及时运行诊断程序;此外,系统还可能被要求及时完成通信等其他任务。可见,理想的数控程序,应具有实时多任务的处理能力。
相关文章
- 2024-06-12基于数值耦合方法的缸体内噪声的透射分析
- 2024-08-06蜗杆检查仪中的误差修正技术研究
- 2024-02-21HT-7五道HCN激光干涉仪光学元件的设计
- 2024-04-03照度计校准装置的改造
- 2024-08-12主轴回转轴线间垂直度的测量
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。