关于开放式CNC系统实时软件控制系统的一些简单分析
随笔: 黄杰U201310771
首先,我们一起了解或复习两个概念:开放式CNC和开放式CNC体系结构。按照工EEE规定:一个开放式的系统必须具备不同应用程序能很好地运行于不同供应商提供的不同平台之上的能力、不同应用程序之间能够相互操作的能力和一致的用户交互风格。根据这一定义,开放式数控系统必须是一个全模块化的软件体系结构,它具备相互操作性、可移植性、可缩放性、可互换性的特点,具有定义了标准协议的通讯系统,使得各个功能模块能通过应用程序接口AIP来相互交换信息并相互操作;同时,系统还应具备一个实时的配置系统,使得各个功能模块无论在系统运行之初还是之间都能够被灵活地配置。开放式CNC系统应能运用于各种计算机软硬件平台上,并提供统一风格的用户交互环境,以便于用户的操作、维护和更新换代。开放式NCC具有如下特点:(1)用高级语言编程(C语言、vC、VB等)。(2)软件模块化,提高CNC性能无需改写软件,而且可与流行软件相结合。(3)机械制造商和用户可以容易地开发具有个性的应用软件。(4)采用标准化接口,可灵活选用电机,驱动装置和反馈元件。(5)操作简单,易于使用和维护。
对于开放式控制体系结构的研究,较著名的有美国的OMAC(Oepn Modulari AchitedureControls)、欧洲的OSACA(Open Systemr Achitecture for control within Automation System)和日本的OSEC(Open System Evniromennt for Controllers)计划。OSEC体系属于层次性结构,系统按功能分层,每一层按照功能分为若干个模块,层次间具有单向调用或者依赖关系,每一层都在其下层建立,下层为上层提供所需的服务。同一层的模块间按照一定的接口关系自由调用。其他体系感兴趣可以自行查阅资料。基于OSEC的体系结构思想,微机数控系统的开放体系结构如下图1所示。

图1 基于OSEC的CNC体系结构
开放式CNC系统的几种实现形式实现形式有多种,如专用CNC+PC型、运动控制器+PC型和SOFT型等等。其中SOFT型是一种最新开放体系结构的数控系统,也称“全软件式数控系统”。它提供给用户最大的选择和灵活性,它的CNC软件全部装在计算机中,而硬件部分仅是计算机与伺服驱动和外部I/O之间的标准化通用接口。用户可以在WINDOWS平台上,利用开放的CNC内核,开发所需的各种功能,构成各种类型的高性能数控系统,与前几种数控系统相比,S0FT型开放式数控系统具有最高的性能价格比,因而最有生命力。其典型产品有美国MDSI公司的ovenCNC、德国Power Automation公司的队8000NT等。
我所想分析的CNC系统控制软件系统就是基于上面所述。图2是基于SOFT型软件结构图。

图2 SOFT型CNC数控软件控制软件结构图
首先分析一下该CNC的软件功能需求和软件任务的实时性分析。图3是CNC的软件功能需求。

图3 CNC的软件功能需求
数控系统是一个实时多任务系统,数控系统软件中有许多模块,如插补计算、程序解释、位置控制、加工仿真等,任务模块是具有动态特征的功能模块,即每个任务都具有其生命周期,具有并发性和独立性,任务是一个能独立运行的基本的单位,也是系统分配资源和调度的独立单位,享有对软硬件资源的使用和控制权。在CNC数控系统中,按其实时性不同任务一般分为:
1、实时突发性任务
实时突发性任务的发生是时间的随机函数,要求有较高的实时性,如控制面板上的输入处理等。
2、强实时周期性任务
强实时周期性任务是指严格按定长时间间隔定时触发,并且在规定的时间内必须要完成处理的任务。在本次设计中,主要指加工过程中的位置控制与机床状态反馈,即PC机与数控机床接口之间的数据通信控制,所传递的数据包括各个轴的进给数据,以及数控机床的状态数据。
3、弱实时周期性任务
弱实时周期性任务是指大致按定长时间间隔触发,并且对完成时间的要求也比较宽松,时间的延迟不会影响加工的顺利进行。如轨迹仿真、加工状态显示等。此外由CPU运算速度较快和数据共享区的采用,插补计算也可以归至弱实时周期性任务的范畴。
4、实时非周期任务
数控系统中有些任务是一次性启动的,并不需要严格按等长时间间隔定时触发。如系统启动的初始化,诊断等。
5、非实时任务
非实时性任务是指实时性要求很低的任务,在本次设计中主要包括人机界面显示、数控代码的输入、语法分析、轨迹图形显示与视图操作等。
我们可以得出或者分析出一下关于作业的一些个人结论:
1. CNC系统强实时性功能需求有加工过程中的位置控制与机床状态反馈,即PC机与数控机床接口之间的数据通信控制,所传递的数据包括各个轴的进给数据,以及数控机床的状态数据。实时响应时间一般为毫米级甚至微秒级。
2. 假如我是软件设计者,总体上应设计四个实时任务:位置控制(包括工件和刀具位置的实时控制),加工反馈(机床位置、刀具位置,加工质量等),数据处理(插补、加工状态实时显示等),安全应急处理(如急停)。
3. 数据处理是时间触发,处理周期应该大概是毫秒级;位置控制,加工反馈既有事件触发又有时间触发;而安全应急处理为时间触发。
4. 存在一定的依赖关系。加工反馈依赖于加工位置与加工状态,而数据处理与其他实时性任务密切相关。
5. 关于硬件资源共享性,实时任务处理时共用系统的内存、CPU等资源。采用一些实时多任务调度处理机制。
关于开放式CNC系统实时软件控制系统的一些简单分析的更多相关文章
- CNC系统的多任务并行处理
(1) CNC系统的多任务性.CNC系统通常作为一个独立的过程控制单元用于工业自动化生产中,因此它的系统软件必须完成管理和控制两大任务.系统的管理部分包括输入.I/O处理.显示和诊断.系统的控制部分包 ...
- 电商系统中的商品模型的分析与设计—续
前言 在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介 ...
- macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了!
macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了! 不用理会苹果官网的警告,苹果官网警告你只能用bootcamp安装且不能多分区,把人吓得不轻.其实不用过多担心, ...
- FFmpeg源代码简单分析:日志输出系统(av_log()等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 20135337——Linux实践三:ELF文件格式(64位系统,简单分析)
ELF文件格式简单分析 (具体分析见上一篇ELF文件格式32位系统) ELF-header 第一行: 457f 464c :魔数: 0201 :64位系统,小端法 01 :文件头版本 剩余默认0: 第 ...
- SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析
SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析 近日收到业务团队报的问题,说是对某个HU做转库时候,系统报错.如下图示: HU里有是三个序列号, 1191111034011 ...
- 图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录)
图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录): https://download.csdn.net/download/qq_39932172/11 ...
- useradd linux系统创建用户和设置密码简单脚本-1
useradd linux系统创建用户和设置密码简单脚本-1 linux_wangqiang 2019-12-04 20:51:18 65 收藏展开#!/bin/bash#快速创建用户 使用$1第一个 ...
随机推荐
- [LeetCode] Two Sum 两数之和
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- 理解 JavaScript 回调函数并使用
JavaScript中,函数是一等(first-class)对象:也就是说,函数是 Object 类型并且可以像其他一等对象(String,Array,Number等)一样使用.它们可以"保 ...
- C语言学习 第十一次作业总结
作业总结 两次的作业,都是和指针有关.从第一次的作业开始,我就多次让同学们思考这个问题:为什么要用指针,为什么在函数的形参中要使用指针.如果能够想明白这2个问题,那么同学们应该会指针的了解就差不多足够 ...
- Stack的三种含义
作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...
- highcharts .net导出服务 和 两种导出方式
highcharts 的Net导出服务 GitHub上整理的https://github.com/imclem/Highcharts-export-module-asp.net 引用两个程序集 sh ...
- [转]如何设置eclipse中js默认打开为java Editor
打开window-preference -> General-Editors-File Associator 看到右边的.js下边就是设置默认打开方式了 转自百度知道:http://zhidao ...
- 小猪cms ClassifyAction.class.php
<?php /** *语音回复 **/ class ClassifyAction extends UserAction{ public $fid; public function _initia ...
- Eclipse安装scala
Scala官方提供了三种插件,分别支持Eclipse.NetBeans和Intellij IDEA开发环境.要在Eclipse IDE下安装Scala插件:选择Eclipse的菜单项Help--> ...
- Java防止SQL注入2(通过filter过滤器功能进行拦截)
首先说明一点,这个过滤器拦截其实是不靠谱的,比如说我的一篇文章是介绍sql注入的,或者评论的内容是有关sql的,那会过滤掉:且如果每个页面都经过这个过滤器,那么效率也是非常低的. 如果是要SQL注入拦 ...
- JS命名空间
命名冲突 全局变量会绑定到 window 上,不同的javascript文件如果使用了相同的全局变量,或者定义了相同名字就的顶层函数,都会造成命名冲突,并且很难被发现. 减少冲突的一个办法,把自己的所 ...