`
fc974fc
  • 浏览: 13846 次
社区版块
存档分类
最新评论

基于Windows CE的激光切割机开放式数控系统的研究

 
阅读更多

基于Windows CE的激光切割机开放式数控系统的研究
2010年08月06日
  基于Windows CE的激光切割机开放式数控系统的研究数控系统, 开放式, 激光切割机, Windows, 研究
  前言
  Windows CE是微软公司开发的一个开放、可升级的32位嵌入式操作系统。与Windows 95 /98、WindowsNT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统、其操作界面虽来源于Windows 95 /98,但Windows CE是基于Win32 AP I重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点[ 1 ] 。微软在2002 年推出了新一代Windows CE. NET后,其性能有了更进一步的提高,支持蓝牙技术、支持TCP / IPv6,并在实时多任务控制领域得到了成功的应用[ 2 ]。相对于DOS,Windows CE. NET是运行于保护模式的多线程32位操作系统,特别适合数控系统的多任务并行机制,而它的内存保护功能对于数控系统的稳定性具有重要意义: 相对Windows桌面操作系统,Windows CE. NET是嵌入式实时操作系统,其独特体系结构和运行机制使其能够快速响应外部中断触发,并调度相关应用程序进行处理[ 3 ] ,因此它可以满足数控系统的实时性要求。Win2dows CE. NET是一个实时操作系统,它提供了实时开发所需的重要技术,其中包括:
  (1) 256级线程优先权为在嵌入式系统内控制
  线程时序提供更大的灵活性。
  (2)中断嵌套允许更高优先级的中断立刻被执行而不必等到较低优先级的中断服务程序执行完毕。内核能嵌套CPU所支持的全部数量的中断服务程序。
  (3)每一线程的时间片允许应用程序在多线程原则上设置时间片,这就意味着能够使调度程序适应应用程序的当前要求。
  (4)优先权倒置是指当两个线程竞争同一个资源时,资源被低优先级的线程占用而拖延了高优先级线程的执行的情形。为了纠正这种情形并释放高优先级的线程,Windows CE允许低优先级线程继承更加紧急的线程优先级并且以更高的优先级来运行直到它释放它所占用的资源。
  1.Windows CE系统开发平台的定制
  为了使用户可以方便的将Windows CE转向一个新的硬件平台,微软提供了完整的开发工具p latformbuilder 4. 2,它包括了一些必需的工具,以便开发人员可以为组件化的操作系统版本创建特定平台的软件开发包( SDK) 。平台向导( Platform Wizard)允许开发人员根据将要创建设备的类型简便快捷地建立新的平台,参见图1。 
  
  
  图1Windows CE系统平台定制示意图
  要创建一个基于Windows CE. NET的操作系统平台,必须经过下面几个步骤: ①选择一个标准的开发板( SDB ) 来创建Windows CE 平台。②使用平台向导(Platform Wizard)中备选的设备及目录中所列举的特征对平台进行定制。③Build 并生成镜像文件( im2age) 。④将平台下载到目标设备,调试平台。⑤平台创建完毕,输出软件开发工具包( SDK) 。
  定制平台时,用户可以开发自己的OEM硬件适配层(OAL) ,OAL是处于Windows CE系统内核与目标设备硬件之间,用来抽象硬件功能的连接层,实现操作系统的可移植性。OEM硬件适配层分为OEM抽象层和设备驱动程序两部分。
  硬件开发平台是用于模拟嵌入式系统设备的目标设备,可用于开发、调试和验证定制平台的性能。Plat2form Builder支持基于PC机的硬件开发平台(CEPC) ,CEPC是最灵活的Windows CE设备,很适用于嵌入式系统的开发调试阶段。
  2.开放式激光切割机数控系统的总体设计和实现
  2.1数控激光切割机的组成 
  
  
  图2 激光加工系统示意图
  数控激光切割机由激光切割机主机、CO2激光器、水冷机、外光路系统、数控系统及自动编程软件等组成[ 4 ] (见图2) 。其中激光器及外光路系统是数控激光切割机的关键配套部件,其性能指标将直接影响激光切割板材的切割质量,而激光切割机主机则是实现激光进行优质切割的载体。所以,对数控激光切割机主机的开发设计显得尤为重要。
  2.2基于工业PC机的开放式数控系统的分析与构造
  随着近年来计算机技术的发展,工业PC机和模块化的集成电路逐渐进入数控领域, PC机以其特有的开放性成为开放式数控系统的基础,它丰富了数控系统的硬、软件资源,有利于实现总线式、模块化、开放化的数控系统,该系统利用流行的操作系统平台作支撑,采用标准的应用开发环境,具有较好的互操作性、移植性、互换性和伸缩性,展现了良好的开放性能,同时又具有方便、灵活的特点。同时充分利用Windows CE强大的图形界面功能、多线程机制和多媒体定时器来解决数控软件的实时多任务处理能力,其良好的软硬件兼容能力能够实现建立在标准总线基础上的模块化开放式数控系统。开放式数控系统可采用分层的体系结构,如图3所示。各层之间实现隔离,层与层之间通过标准的接口进行通讯,实现了开放式控制系统应有的分层体系结构,使数控软件易于组装、扩充和维护。第一层为管理层。它是系统的界面部分,可完成系统的管理、显示、诊断和监控。通过响应状态选择控件产生的不同消息来进行不同界面之间的切换,其调用操作由操作系统管理完成。 
  
  第二层为功能单元层。它是系统的控制部分,包括代码生成、编译解释、插补运算和运动控制, I/O 处理和数据采集等,是相对独立的功能单元。它们之间通过在软件中建立的多个数据缓冲器来进行大量的数据交换。译码可将数控指令解释成为系统内部的数据格式,插补运算完成数据插补产生加工数据、速度处理和辅助功能设备控制。运动控制程序完成位置伺服的控制。I/O信号处理模块接收各种按键的输入,转化为程序变量或系统消息以供操作。数据采集模块负责采集各运动轴的信息和A /D信号,用于实现数据实时显示、实时控制等功能。
  第三层为支撑层,包括运动控制卡、运动控制器的设备驱动程序、I/O卡和工业PC机。
  2.3 开放式数控系统的硬件结构
  图4示出了采用PMAC运动控制器构造的激光切割机开放式数控系统结构。 
  
  
  图4激光切割机控制系统图
  3.数控系统软件的设计与实现
  3.1 基于Windows CE的数控系统软件的总体结构
  在已有的同类数控系统中,大多数系统是基于DOS环境的,其综合性能相对于Windows环境就弱一些,尤其是人机交互界面、多任务以及开放性方面比较差。主从计算机间的实时信息交换通讯是实现上下位机间协调工作的关键。本数控系统在实时性要求方面与机器人控制相似,如果使用Windows中专用的定时器控件Timer,虽然使用很方便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,无法满足实时控制环境下的应用。所以考虑使用精度更高的多媒体定时器,它可以实现精度为1ms的高精度定时,可以满足本系统的实时性要求。多媒体定时器不依赖于消息机制,而是由函数TimerSetEvent ( )产生一个独立的线程,在一定的中断次数到达后,直接调用预先设置好的回调函数进行处理,而不必等到应用程序的消息队列为空。因而设置该回调函数来完成周期扫描I/O卡的输入端口,以及向系统定时发送消息,使其及时更新界面和界面中的数据。为提高系统的可靠性,多媒体定时器在整个控制程序初始化时开启,并在系统退出时删除定时器以释放系统资源。每一个Windows应用程序都是一个进程,并由线程来负责执行包含在进程地址空间中的代码。实际上,每个进程可以拥有多个线程,它们在进程的地址空间中“同时地”执行代码。本数控系统软件中,采用了前后台型的多线程结构形式。前台程序由系统主线程和定时器控制,主要完成界面管理、功能控制、系统管理等,并负责响应按键与界面输入的数据,即实现管理层的功能。后台程序放在辅助线程中,负责进行数控代码的编译处理,向PMAC发送命令以及实时数据采集,实现了控制层的功能。
  3.2 G代码转换模块的实现
  为了使PMAC控制卡兼容G代码指令,专门开发了G代码编译转换模块,大大提高该控制系统的开放性和兼容性,为熟悉G代码编程的用户提供了方便。本编译模块使用了多线程的方法。多线程的应用使程序的并行处理得以实现,多线程使得不同的代码可以“同时”执行。本模块采用了工作者线程,其适用于处理后台任务,而不影响用户对应用程序的使用。工作者线程仅仅由一个函数体实现,其实现简单,便于编程者控制,与事件同步方法相配合能对中止消息做出较快反应。事件同步是通过将事件自身设置为有信号或无信号来通知其它线程的某一操作已完成或尚未完成,其设置可由编程人员手工完成,适合于工控程序应用。
  与之相对应,本模块具有一个主线程和两个子线程,其中一个子线程为通信线程,另一个为计算线程。主线程是Windows下每个应用程序都具备的,负责线程间的同步、向计算线程和通信线程传递参数、管理人机界面、接收用户输入等功能。通信线程通过通信端口(本程序涉及的是PCI接口)负责与下端的设备进行通信并交换数据。计算线程负责核心算法的实现,根据系统的不同完成不同的数据处理任务。程序结构如图5。 
  
  
  图5多线程结构示意图
  4.结论
  Windows CE以其良好的实时性和对多线程的支持,为实现总线式、模块化、开放式的数控系统提供了便利。随着Windows CE. NET系统的不断完善, PC机速度的不断升级,其可以应用的软硬件资源不断发展,开放式数控系统必将受到国内外的普遍关注。
分享到:
评论

相关推荐

    电子、通信、计算机大类学生课程实验的心得体会

    电子、通信、计算机大类学生课程实验的心得体会 电子、通信、计算机大类的学生课程实验是工科教育中非常重要的一环,它不仅能够加深学生对理论知识的理解,还能培养学生的实践能力和创新思维。

    【营销】任务一金融产品与金融产品营销认识.docx

    【营销】任务一金融产品与金融产品营销认识.docx

    单片机课程实验-秒表实现

    1.了解LED数码管的工作原理,为秒表时钟模块的实现打下基础。 LED数码管是一种常用的数字显示器件,通过控制每个LED的亮灭来显示数字。在秒表时钟模块中,我们需要利用LED数码管的这一特性,通过单片机控制数码管的显示,从而实现时钟的功能。因此,了解LED数码管的工作原理对于实现秒表时钟模块至关重要。 2.掌握51单片机与LED数码管的接口技术,是实现秒表时钟模块的关键。 51单片机是一种常用的微控制器,可以通过接口与外部设备进行通信。在秒表时钟模块中,我们需要通过单片机与LED数码管之间的接口,控制数码管的显示。因此,掌握51单片机与LED数码管的接口技术是实现秒表时钟模块的关键。在实际操作中,我们需要根据接口协议和数据传输方式,编写相应的程序来控制数码管的显示。 3.合理利用定时器/计数器,是实现秒表时钟模块的效率保障。 在秒表时钟模块中,我们需要实现计时功能,这需要使用到定时器/计数器。定时器/计数器可以用来产生计时脉冲,从而控制秒表的计时。通过合理利用定时器/计数器,可以提高秒表时钟模块的计时精度和效率。在实际操作中,我们需要根据具体的应用场景和需求,选择合适的定时器/计数器参

    基于LSTM的SDN流量预测与负载均衡python源码+详细注释+数据.zip

    个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载即用确保可以运行!

    实验室管理微信小程序设计

    实验室管理微信小程序设计

    机械设计CNC自动打孔机(sw18可编辑+工程图)非常好的设计图纸100%好用.zip

    机械设计CNC自动打孔机(sw18可编辑+工程图)非常好的设计图纸100%好用.zip

    51单片机使用蜂鸣器来播放音乐蜂鸣器播放音乐-小星星亮晶晶

    51单片机使用蜂鸣器来播放音乐蜂鸣器播放音乐-小星星亮晶晶 通过PWM信号来控制蜂鸣器,改变PWM的频率,可以改变蜂鸣器的发声音调,从而可以播.适合新手使用

    机械设计德国6层电万能蒸烤箱(sw21可编辑+cad)非常好的设计图纸100%好用.zip

    机械设计德国6层电万能蒸烤箱(sw21可编辑+cad)非常好的设计图纸100%好用.zip

    node-v12.22.5-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    超声波传感器系列 UFA-150, UFA-200 安装指南

    超声波传感器系列 UFA-150, UFA-200 安装指南

    VOS4890 户外电源系统 用户手册

    VOS4890 户外电源系统 用户手册

    金融产品可行性报告.docx

    金融产品可行性报告.docx

    node-v12.18.2-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    printer.cfg

    printer.cfg

    【计算机二级实操】液晶背光开关控制实验(汇编语言).zip

    【计算机二级实操】液晶背光开关控制实验(汇编语言).zip

    Java毕业设计-基于SpringBoot + Vue 的音乐网站系统 (源码+数据库+文档).zip

    基于Spring Boot和Vue的音乐网站系统是一种使用Spring Boot框架和Vue框架进行开发的在线音乐平台系统。下面是一个简单的介绍: 后端(Spring Boot)部分: 1. 数据库设计:设计合适的数据库模式来存储音乐信息,包括歌曲、专辑、歌手等相关信息。 2. 接口设计:根据需求设计合适的RESTful API接口,用于处理前端请求。您可以使用Spring MVC来开发这些接口,并使用Spring Data JPA来处理数据库访问。 3. 用户管理:实现用户注册、登录、权限管理等功能。使用Spring Security来处理用户认证和授权。 4. 音乐资源管理:上传/编辑/删除音乐、/删除/编辑/分类专辑和歌手等功能。您可以使用Spring Boot提供的文件上传和管理功能,以及数据库来存储和管理相关信息。 5. 推荐系统:实现根据用户的兴趣和行为进行个性化的音乐推荐。可以使用协同过滤、内容推荐或机器学习等技术来进行推荐算法的实现。 前端(Vue)部分: 1. 页面设计:使用Vue框架用户界面,包括首页、歌单推荐、搜索、歌手页面等。使用Vue Router

    中国各地级市工业三废数据(2006-2021年).xlsx

    中国各地级市工业三废数据(2006-2021年).xlsx

    基于扩散模型的半监督脑肿瘤分割内含数据集和环境说明.zip

    本项目致力于基于扩散模型的半监督脑肿瘤分割,旨在提高医学影像在脑肿瘤诊断中的应用。项目利用扩散模型对脑部MRI影像中的肿瘤区域进行精确分割。 在数据集方面,我们使用了公开的脑部MRI影像数据集,如BRATS、Medical Segmentation Decathlon等,并进行了预处理,包括格式转换、裁剪、翻转等操作。在环境搭建方面,我们使用Python编程语言,基于TensorFlow和PyTorch深度学习框架进行开发。为了提高计算效率,我们还使用了GPU加速计算。此外,我们还采用了Docker容器技术,确保实验结果的可重复性。 项目完成后,将实现对脑部MRI影像中肿瘤区域的精确分割,为脑肿瘤的诊断和治疗提供有力支持。同时,项目成果也可应用于其他医学影像分析领域,如肿瘤检测、病变分割等。

    python学习导航.txt

    python烟花代码

    基于 YoLov8 与 Tesser act-OCR 的车流量分析系统

    特性 可识别车型: 可以识别小轿车、货车、公交车等车型。 可统计车流量: 可以分别统计来往两方向的车流量情况。 可识别车牌: 对于清晰的视频可以识别车牌。 更多功能: 还在开发中。 安装 要运行此项目,您需要安装 Python 3.8 或更高版本

Global site tag (gtag.js) - Google Analytics