(1) CNC系统的多任务性。CNC系统通常作为一个独立的过程控制单元用于工业自动化生产中,因此它的系统软件必须完成管理和控制两大任务。系统的管理部分包括输入、I/O处理、显示和诊断。系统的控制部分包括译码、刀具补偿、速度处理、插补和位置控制。在许多情况下,管理和控制的某些工作必须同时进行。例如,当CNC系统工作在加工控制状态时,为了使操作人员能及时地了解CNC系统的工作状态,管理软件中的显示模块必须与控制软件同时运行。当CNC系统工作在NC加工方式时,管理软件中的零件程序输入模块必须与控制软件同时运行。而当控制软件运行时,其本身的一些处理模块也必须同时运行。例如,为了保证加工过程的连续性,即刀具在各程序段之间不停刀,译码、刀具补偿和速度处理模块必须与插补模块同时运行,而插补又必须与位置控制同时进行。

下面给出CNC系统的任务分解图(图3-10(a))和任务并行处理关系图(图3-10(b))。在图3-10(b)中,双向箭头表示两个模块之间有并行处理关系。

(2) 并行处理的概念。并行处理是指计算机在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作。并行处理最显著的优点是提高了运算速度。拿n位串行运算和n位并行运算来比较,在元件处理速度相同的情况下,后者运算速度几乎提高为前者的n倍。这是一种资源重复的并行处理方法,它是根据“以数量取胜”的原则大幅度提高运算速度的。但是并行处理还不止于设备的简单重复,它还有更多的含义。如时间重叠和资源共享。所谓时间重叠是根据流水线处理技术,使多个处理过程在时间上相互错开,轮流使用同一套设备的几个部分。而资源共享则是根据“分时共享”的原则,使多个用户按时间顺序使用同一套设备。

目前在CNC系统的硬件设计中,已广泛使用资源重复的并行处理方法,如采用多CPU的系统体系结构来提高系统的速度。而在CNC系统的软件设计中则主要采用资源分时共享和资源重叠的流水线处理技术。

(3) 资源分时共享。在单CPU的CNC系统中,主要采用CPU分时共享的原则来解决多任务的同时运行。一般来讲,在使用分时共享并行处理的计算机系统中,首先要解决的问题是各任务占用CPU时间的分配原则,这里面有两方面的含义:其一是各任务何时占用CPU;其二是允许各任务占用CPU的时间长短。

在CNC系统中,对各任务使用CPU是用循环轮流和中断优先相结合的方法来解决。图3-10(c)是一个典型CNC系统各任务分时共享CPU的时间分配图。

系统在完成初始化以后自动进入时间分配环中,在环中依次轮流处理各任务。而对于系统中一些实时性很强的任务则按优先级排队,分别放在不同中断优先级上,环外的任务可以随时中断环内各任务的执行。

每个任务允许占有CPU的时间受到一定限制,通常是这样处理的,对于某些占有CPU时间比较多的任务,如插补准备,可以在其中的某些地方设置断点,当程序运行到断点处时,自动让出CPU,待到下一个运行时间里自动跳到断点处继续执行。

(4) 资源重叠流水处理。当CNC系统处在NC工作方式时,其数据的转换过程将由零件程序输入、插补准备(包括译码、刀具补偿和速度处理)、插补、位置控制4个子过程组成。如果每个子过程的处理时间分别为,,, ,那么一个零件程序段的数据转换时间将是t=+++

如果以顺序方式处理每个零件程序段,即第一个零件程序段处理完以后再处理第二个程序段,依此类推,这种顺序处理时的时间空间关系如图3-11(a)所示。从图上可以看出,如果等到第一个程序段处理完之后才开始对第二个程序段进行处理,那么在两个程序段的输出之间将有一个时间长度为t的间隔。同样在第二个程序段与第三个程序段的输出之间也会有时间间隔,依此类推。这种时间间隔反映在电机上就是电机的时转时停,反映在刀具上就是刀具的时走时停。不管这种时间间隔多么小,这种时走时停在加工工艺上都是不允许的。消除这种间隔的方法是用流水处理技术。采用流水处理后的时间空间关系如图3-11(b)所示。

流水处理的关键是时间重叠,即在一段时间间隔内不是处理一个子过程,而是处理两个或更多的子过程。从图3-11(b)可以看出,经过流水处理后从时间开始,每个程序段的输出之间不再有间隔,从而保证了电机转动和刀具移动的连续性。

从图3-11(b)中可以看出,流水处理要求没一个处理子程序的运算时间相等。而在CNC系统中每一个子程序所需的处理时间都是不相等的,解决的办法是取最长的子程序处理时间为处理时间间隔。这样当处理时间较短的子程序时,处理完成之后就进入等待状态。

(a) 顺序处理

(b) 流水处理

图3-11 资源重叠流水处理

在单CPU的CNC装置中,流水处理的时间重叠只有宏观的意义,即在一段时间内,CPU处理多个子程序,但从微观上看,各子程序分时占用CPU时间。

CNC系统的多任务并行处理的更多相关文章

  1. 关于开放式CNC系统实时软件控制系统的一些简单分析

    随笔: 黄杰U201310771 首先,我们一起了解或复习两个概念:开放式CNC和开放式CNC体系结构.按照工EEE规定:一个开放式的系统必须具备不同应用程序能很好地运行于不同供应商提供的不同平台之上 ...

  2. CNC系统实时性分析

    该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计. 答:数控系统中控制装置与现场设备通信的实时性要求,数控系统要快速而有效的对复杂而庞大的操作任务进行处理. ...

  3. Socket 多任务(多进程/线程、I/O多路复用、事件驱动开发框架)

    0. 概述 1. 循环版实现多连接 2. threading.Thread 多线程 3. SockerServer 实现多任务 3.1 ForkingMixIn - 多进程(限 linux) 3.2 ...

  4. SpringBoot开发案例之多任务并行+线程池处理

    前言 前几篇文章着重介绍了后端服务数据库和多线程并行处理优化,并示例了改造前后的伪代码逻辑.当然了,优化是无止境的,前人栽树后人乘凉.作为我们开发者来说,既然站在了巨人的肩膀上,就要写出更加优化的程序 ...

  5. iOS4.0及以上系统,关闭程序,applicationWillTerminate为调用问题解决

    iOS4.0以后系统支持多任务类型,程序按下home键后,程序进入后台运行,如果内存不足被系统关闭或者手动关闭,都不会调用applicationWillTerminate回调函数. 解决方法:可以在程 ...

  6. REX系统了解1

    REX是高通开发出来的一个操作系统,起初它是为了在Inter 80186处理器上应用而开发的,到后来才转变成应用在ARM这种微处理器上.他历经了很多版本,代码也越来越多,功能也越来越完善.REX只用不 ...

  7. Linux多任务编程之一:任务、进程、线程(转)

    来源:CSDN  作者:王文松  转自:Linux公社 Linux下多任务介绍 首先,先简单的介绍一下什么叫多任务系统?任务.进程.线程分别是什么?它们之间的区别是什么?,从而可以宏观的了解一下这三者 ...

  8. Alibaba高并发业务秒杀系统落地实战文档,已实践某大型秒杀场景

    前言: 高并发,几乎是每个程序员都想拥有的经验.原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时.CPU load升高.GC频繁.死锁.大数据量存储等等,这些问题能推动我们在技术深 ...

  9. 花时三月 终于Spring Boot 微信点餐开源系统! 附源码

    架构 前后端分离:             Nginx与Tomcat的关系在这篇文章,几分钟可以快速了解: https://www.jianshu.com/p/22dcb7ef9172 补充: set ...

随机推荐

  1. PhpStrom添加调试功能

    要给PhpStrom添加调试功能,需要安装Xdebug,网址:https://xdebug.org/ 1.如何下载对应thinkphp版本号的Xdebug呢 创建一个php文件,在里面输入phpinf ...

  2. 配置_DruidDataSource参考配置

    配置_DruidDataSource参考配置 <!-- 数据库驱动 --> <property name="driverClassName" value=&quo ...

  3. poj12482 扫描线+lazy-tag

    采用扫描线的思想,其实是区间更新的题目 题解链接https://blog.csdn.net/shiqi_614/article/details/7819232 注意处理细节:1)因为边框上的点不算,所 ...

  4. python 全栈开发,Day114(装饰器,排序规则,显示列,添加按钮,定制ModelForm,自定义列表页面,自定制URL)

    一.装饰器 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理, ...

  5. 怎么在项目中使用前端包管理器bower和构建工具gulp

    下面以WeUI(微信官方网页开发样式库)介绍一下,怎么把WeUi引入到自己的项目中,我的开发环境Visual Studio 2012,当然了Visual Studio 2015对此已有了更好的支持(h ...

  6. vtiger自定上传图片的字段

    废话不多说,上一篇有说到过vtiger新建模块的事 现在我新建了一个Score的模块,里面需要一个上传图片的功能 在Score界面新建一个字段叫grede 但是自定义类型里面是没有,图片这个选项的,只 ...

  7. 三步解决阿里云绑定公网IP地址失败解决方案

    1.客户端设置为阿里云服务器的公有地址: 2.服务端设置为阿里云服务器的私有地址: 3.设置阿里云的管理规则: 第一步 第二步 第三.四步

  8. python全栈开发day27-网络编程

    回顾:1.两个架构:C/S   B/S(统一了应用的接口)2.同一个电脑两个py文件通信(文件)3.两个电脑通信---网线4.交换机的通信方式:广播.单播.组播5.arp协议:通过ip地址找到对应的m ...

  9. 【noip模拟赛5】任务分配 降维dp

    描述 现有n个任务,要交给A和B完成.每个任务给A或给B完成,所需的时间分别为ai和bi.问他们完成所有的任务至少要多少时间. 输入 第一行一个正整数n,表示有n个任务.接下来有n行,每行两个正整数a ...

  10. 在VS代码中编辑Python

    在VS代码中编辑Python Python扩展提供了许多用于在Visual Studio代码中编辑Python源代码的功能: 自动完成和智能感知 在终端中运行选择/行(REPL) 格式化 重构 也见L ...