谷 国文
(广东省曲仁技工学校-韶光市-5I2149)
摘 要 文章以广东曲仁技工学校开发的数控仿 真软件为例 ,详细地
叙述了开发数控仿 真软件时如何实现实时多任务管理的一般过程。
关毽词 数控仿真 任 务优先级 时间片
在数控仿真软件的开发过程中 .要使所开发的
软件在运行过 程中与数 控机床实际 的工 况基本 相
同,难度较 大的一点就是如何实现实时多任务管理 .
下面姒我校开发 的数控仿真软件为例进行较为详细
的技术说明
1 数控仿真系统中多任务及其
状态
数控仿真系统是一个实时控制系统 ,在某一个
时间 段 内要 同时 完 成一 个 或 多个 任 务 .一 般包 括 :位
置控制任务 、插补任 务、输人任务 、轴位置采集任务 、
机床 MST任 务、译码解释任务 刀补任务 、动态显示
任务和菜单管理任务等 各项任务在执行中均是具
有间断性的 ,这也就决定 丁每项任务可能具有多种
状 志 。一 般 而言 .我 们 把 其 分 为如 下 3种状 态 .即就
绪状态 、执行状态 、等待 状态.这 3种状忐存在着如
图 1所示 的状 态 演变 关 系 :
图 1 任务基本状态演变 图
睬 r造 3种基本状态以外 ,还有一种特殊的状
志即挂起状态 ,举例而言 ,如在仿真加工过程 中出现
异常情况(如急停 ),则 系统需把正在执行或发有执
行的任务挂起,使之处于静止状 态,即对正在执行的
任务暂停执行;对就绪的任务暂 时不能接受调度;对
等待状态的任务 .即使引起阻塞的事件消失也不能
被调度 . 便即时发现其报警的原囡
2 任务控制的基本工具——任
务控制块
在数控仿 真系统 中为了准确地描述和控制各个
任务的运行 ,系统 为每个任务定 义了一个 数据结
构——任 务控 制块 (TCB)作为任 务控制的基车工
具 。一般情况下系统定义和创建一个任务时就必须
为这 个任 务设 置一 个 TCB
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
,用 于 对该 任 务进 行 控
制 和管理 .任务完成后 由系统收回其 TCB,该任务便
消亡。下面是我校开发的数控仿真软件中用 C语言
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
的一个任 务控制块 :
typedcf silllci【
char who; 任务标识符
char ststue; 任务现行状态
char overflow
_
fla~ 任 务 的溢 出标 志
long ss【l00]; 现场保留区
char far program
_ polnter; 任 务程序指针
char far data
_ pointer, 任务数据指针
char piror; 任务优先级
char sourse[200]; 任 务 I/0资源
task next
_
task;
】task;
task task
_ who[task_num];
在一个多任务系统 中通常有许 多 代 B,其数 日
根据系统的功能而定 ,为 丁对它们进行有 效的管理 .
可采用链接方式。把具有相同状态的 TCB用其中的
链接字链接成一个队列 ,这样就 可形成就绪队列和
等待队列等,对其 中的就绪队列接任务的优先 级排
列 ,将优先级高的 TCB排在前面。另外也根据 等待
状态任务的 TCB排列 成等待 0操作 、等待分 配内
存等队列 ,以便对任务的进 一步操作 。
3 任务调度的方式
在数控仿真系统中多任务的调度应具有突 出的
“实时”特征 ,为了满 足这一要求我 们可采用优先级
维普资讯 http://www.cqvip.com
加时间片轮转 的方式进行任务的调度。
(1)任务优先级的设置
我们根据工程特点对数控仿真系统各项任务的
具体要求 ,把数控仿真系统 中的各项任务按优先级
的顺 序进行了以下的排列 :A(位置控制任务 )、B(插
补任务 )、C(输^任务)、D(轴位置采集 任务)、E(机
床 MST任务 )、F(译码 解释任务 )、G(刀补任 务)、H
(动态显示任务)和 I(菜单管理 任务 ),其 中 A、B、D
E、H 为定时任务 ,A任 务的优 先级最高 ,I任务的优
先级最低。
(2)时间片轮转法
时间片的具体 含义就是系统将所有的就绪任 务
排列成一个队列 ,把 CPU分配给队列中的首任务 、
并
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
它执行一定的时间 ,那么此时阃段就称 之为
时间片。当时间片完成时系统产 生一个时钟 中断 ,剥
夺该任务的执行 ,重新进行下一个任务的调度 ,这 种
方 法就称 之 为时 间 片轮转 法 。
(3)具体调度的过程
在数控仿真系统中如何能使多项任务按照以
两种方式的组合来进行调度呢?这就需要一个统 一
的调度核心,这一核心决定哪个任务获得 C PII,井 监
控各任务的状态。根据优先圾加 时间片轮转 的方式 ,
对任务实行管理 ,数控仿真系统 中各任务 只有通过
调度核心才能运行或停止运行 这一棱心是由一个
保 护 现场
l
保护协处理器数据
i
各定 时任 务计 时
l
转 向调 度程 序
图 2 时程中断服务程序框 图
1 设置堆栈 I
二二二二 二二
i 取就绪队列
二二二二_上三三
j 读任务状志
<厂 蔷薏萏五_、>
二二二工[二
l 恢复断点
——=======] ————
l 进人任务
ll
l取队列中 F一任务{
———————[=======一
围 3 调 度程 序框 图
时钟中斯服务程序和一个任务调度程序组成 ,下面
是这两个程序设计时的程序框图 :
系统启动进行任务调度时,首先进^位置控制
任务(A),由于数控仿真系统轮廓控制的要求 ,必须
保证 4ms内完成 向对伺服系统的轴信息的传递 ,所
以在时间片未到之前,就须返 回到调度核心的任务
调度程序中运行插 补任务(B);此 时若 时问片到 ,则
挂起正在执行的插补任务(B),进^ 时钟中断处理程
序 ;完成任务的定时后 ,再返回到任 务调度程序 重新
调度 ;当再次转向位置控制任务(A)并执行完后 ,返
回到调度核心的任务调度程序 ,恢复插补任 务的斯
点 ,继续插补任务(B);如果时间片未到 之前完成
插 补任务(B).则返 同到调度程序 ,此时若键盘输^
任务有 效,卫转向键盘扫描任务(C),依此类推 ,逐 个
执行。
具体的调度过程如图 4所示
度 植 一
图 4 多任 务调 度 示意 图
说明:图中实线表示儿调度核心进^任务或任务任 十时
间片 内 澄有运 行 完 时返 回调 度棱 心
圄中虚鼓表示任务在时间片内运行完后返回调度柱心
4 小 结
通过以上这 种多任务管理方式 ,有效地解决了
实时控制的难题 我校数控仿真系统在投^运行阿
年 多的 时 间里 基 本上 没有 出现 因任 务 阻塞 而 死 机 的
情况 。口
参 考 文献
l叶伯生 计算机数控 系统原理 编程与操作 武汉:毕中
理工 大学 出版 社 ,1999
2 毕承 思 现 代数 控机 床 .北 京 :机 械 工业 出 版社 199I
3 顾 冠 群 万 德 钧.机电 一体 化设 计手 册 杭 州 :fT 辛}学
技 术 出版社 .1996
福百丽丽 = I8
维普资讯 http://www.cqvip.com