微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于高档数控系统的实时多任务实现

基于高档数控系统的实时多任务实现

时间:09-27 来源:互联网 点击:

是弱实时性任务,主线程承担的是实时突发性任务。因此根据系统任务实时性强弱不同,可为各个线程设置相应的优先级来确保实时性。主线程与进程的优先级相同,通信线程的优先级高于主线程,而译码线程的优先级高于主线程低于通信线程。

  在线程优先级设置中,通信线程的优先级最高,这使得通信线程在需要CPU时间片等资源时,能够顺利的抢占其他线程的资源,保证上下位机的通信顺畅,使下位机在加工时能够平稳的实现进程,并且使下位机在出现异常情况时能及时通知上位机。由于通信这一动作是依照某种频率进行的,因此通信线程不会一直占用CPU资源,从而不会因为它的优先级高使其他线程无法运行。

  具体实现原理架构如图1所示。

  

  2.2 系统线程的具体实现

  Delphi提供了许多与多线程编程相关的组件,其中最重要的是Tthread类,本文就是利用它来实现多线程编程。该类封装了大多数与线程相关的方法,使用Tthread类大大简化了多线程程序的开发步骤。Tthread类是一个抽象类,不可以直接创建它的实例,但是可以创建它的派生类。创建方法在Delphi菜单中依次选择"File"→"New"→"Other"→"New",选择"Thread Object"项,在对话框中输入新的线程类的名称,确认后即创建了一个新的线程类:

  

  其中:"private"及"protected"用来定义变量和程序函数,"procedure Execute;override;"是线程函数,用来编写线程的执行部分。同时Delphi还提供了各种函数用来运行和终止线程等。创建了线程的派生类后可以生成该类的对象,来表示应用程序的执行线程。各个线程创建好后将NC的解释程序、通信程序等放在各自线程函数内,再创建线程的对象,设置几个线程就生成几个对象,在对象内编写打开或终止线程等函数来控制线程的运行。

  3 结语

  基于Windows平台的高档数控实时操作系统的开发,实现了不仅能向Windows平台添加实时功能,而且使这些实时功能具有很好的可扩展性。本课题下步的目标是将此实时系统的设计实现在Windows XPEmbedded平台上,使其具备高档数控系统需要的嵌入式设备的特性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top