关于开放式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] Reverse Integer 翻转整数
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...
- 如何在一台新电脑上配置JAVA开发环境
对于JAVA新手来说,刚开始要学JAVA,而自己的电脑上毫无与JAVA开发有关的环境,应该如何进行配置呢? (安卓新手也需要JAVA开发环境) 第一步,下载.安装java JRE JRE (Java ...
- xml
//写入XML文件 public static void SavetoXml(List<ProxyEntity> proxys) { string path = Path.Combine( ...
- ASP.NET提取多层嵌套json数据的方法
本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: {"name":&quo ...
- 【MySQL】mysql 1449 : The user specified as a definer ('root'@'%') does not exist
权限问题,授权 给 root 所有sql 权限 1.mysql> grant all privileges on *.* to root@"%" identified by ...
- 【Kindle】pdf转mobi适合kindle查看格式
pdf转mobi适合kindle查看格式 1.用到软件:福昕风腾PDF套件,切白边,PDF-Viewer,导出png图片ChainLP,图片转换为mobi文件<期间要下载kindlegen.ex ...
- Linux之sar命令介绍
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...
- spriing boot 实战
一.spring基础 1. 依赖注入 我们常说的控制翻转(Inversion of Control -IOC)和依赖注入(dependency injection-DI)在Spring环境下是等同的概 ...
- Android SDK NDK开发总结
描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C ...
- mysql定时任务
查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件任务: alter even ...