合工大数控3.3软件结构技术总结.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 计算机数控装置的概述 3.2 数控装置的硬件结构 3.3 数控装置的软件结构 3.4 译码的软件设计基础 3.5 插补原理 3.6 补偿功能 3.7 故障诊断功能和可编程控制器;3.3 数控装置的软件结构;3.3 数控装置的软件结构;3.3 数控装置的软件结构;一 CNC装置软硬件的分工;二 CNC装置软件结构的特点;1 多任务性和并行处理技术;1 多任务性和并行处理技术; 解决各任务占用CPU时间的 分配原则。 其一是各任务何时占CPU。即 任务的优先级分配问题。 其二是各任务占用CPU的时间 长度,即时间片的分配问题。;CNC系统各任务分时共享CPU的时间分配图;各任务在运 行中占用CPU 时间示意图;2)多任务调度技术实现并行处理 (2)并发处理和流水处理: 对多CPU装置而言 方法:任务关联程度不高的放在一个CPU 中让其同时执行为并发处理;任务关联程 度高采用流水处理。 ;2)多任务调度技术实现并行处理 (2)并发处理和流水处理: 流水处理技术是利用重复的资源(CPU),将 一个大的任务分成若干个子任务(任务的分法与 资源重复的多少有关),这些子任务是彼此关系 的,然后按一定的顺序安排每个资源执行一个 子任务,就象在一条生产线上分不同工序加工 零件的流水作业一样。;CNC装置在自动加工工作方式时,其数 据转换过程由4个子过程组成: 零件程序输入 插补淮备(包括译码、刀具补偿和速度 处理) 插补 位置控制; 在任何时刻(流水处理除开始和结束外)均有两个或两个以 上的任务在同时执行。 流水处理的关键是时间重叠,是以资源重复的代价(多个CPU) 换得时间上的重叠,或者说以空间复杂性的代价换得时间上的 快速性。;2 实时性和优先抢占机制;实时突发性任务:随机性和突发性任务,有很强的实时性要求。如急停、机械限位、硬件故障、机床PLC中断、操作中断等。 实时周期性任务:具有精确时间间隔的任务。如插补运算、位置控制等 弱实时性任务:非实时性的任务。如:CRT显示、零件程序的编辑、加工状态和加工轨迹的动态显示、译码、刀补等。;2 实时性和优先抢占机制;三 CNC装置软件结构模式;1 前后台??结构模式;后台程序在运行过程中,不断地定时被前台实时中断 程序打断;前后相互配合来完成零件的加工任务。;2 中断型结构模式; 实时操作系统(RTOS)是操作系统的一 个重要分支.它除了具有通用操作系统的功 能外,还具有任务管理、多种实时任务调度 机制(如优先级抢占调度、时间片轮转调度 等)、任务间的通信机制(如邮箱、消息队 列、信号灯等)等功能。优点: 1)弱化功能模块间的耦合关系; 2)系统的开放性和可维护性好; 3)减少系统开发的工作量。;四 基于DOS的CNC系统软件结构;2 NCBASE功能;五 其他基于实时操作系统的结构模式;void main( void ) { // 定时器0, 1Ms 中断 EnableTimer0( ); // 等待 300 Ms WaitMsCnt = 300; while( WaitMsCnt ) ; // 串行口1 EnableComm1( ); // 初始化屏幕 InitLcd( ); for( ; ; ) { ShowWarnInf( ); CurKeyVal = GetKey( ); } } ;void EnableTimer0( void ) { // 定时器0,方式1 TMOD = 0xf0; TMOD |= 0x01; // 24M 1ms,12T方式 TH0 = (65536-(DWORD)10000*CPU_FREQ/12)8; TL0 = (65536-(DWORD)10000*CPU_FREQ/12); // 启动 TR0 = 1; // 允许中断 ET0 = 1; EA = 1; } ;// Timer0 定时常数设定 void Timer0Interrupt(void) interrupt TIMER0_INT { // 重置常数 TR0 = 0; TH0 = (65536-(DWORD)1000*CPU_FREQ/12)8; TL0 += (65536-(DWORD)1000*CPU_FREQ/12); TR0 = 1; P0_0 = ~P0_0; };END

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档