Windows 95 下数控软件实时控制的实现-国际工业自动化网-控制,工控,网络,仪器仪表,产品,采购选型,推荐,问答,资料,下载
 IIA首页    新闻      案例      工业经理人
      产品         技术      专题      工程师社区
      学院         下载      视频      在线研讨会
现场层       传感器    现场仪表   工业安全
现场总线  工业以太网   工业无线  工业连接
机器视觉    测试测量   执行机构   电子元件
机器控制/过程控制     PLC    DCS
 控制系统  控制软件   HMI   运动控制
 嵌入式系统   工业机器人
优化/集成/管理
MES    PLM    工业数据中心
能效管理    设备管理与维护
可持续发展技术专题 2011汉诺威工业博览会回顾
 

新闻

News

   首页  >  新闻  >  正文

Windows 95 下数控软件实时控制的实现


http://www.iianews.com Windows 95 数控软件 实时控制 实现 2008年10月06日

1 前言

  近年来,在Windows 95 平台上进行数控软件的开发是数控产品更新的标志和趋势。利用Windows 95 丰富的资源,可方便地生成各种菜单及数控指令编辑软件等,产品的开发周期短。而且,利用Windows 95 是多任务操作系统的特性,在保证前台加工任务准确按时完成的情况下,还可执行在线监测、故障诊断等任务,充分发挥主机的性能。
  目前,国内数控电火花成形机控制软件的操作平台一般采用DOS 系统或 16 位的Windows 3.X系统,而国外如阿奇公司等已采用 Windows 95系统作为其控制软件平台,使软件的数据库和网络等功能得到很大的提高,用户使用效果很好。另外,基于 Windows 95 的 CAD/CAM 软件及其他工具软件很多,为了增强控制软件的功能,在 Windows 95 平台上开发电火花数控系统控制软件是很有必要的。
  事实上,在电火花数控系统的开发中,常需实时采集一些状态信息,通过接口板将信号传送给主机,主机则通过中断方式接受数据来实现实时的测量和控制。而 Windows 95 是消息驱动的多任务环境,各种消息都按它们到达的先后顺序排队处理,消息机制是不分任务轻重缓急的,若无中断设置,仅凭消息机制,不能保证数控前台控制任务在准确的时间内执行。因此,要想解决这个问题,必须实现 Windows 95 的中断处理。

2 Windows 95的中断原理与实现

  关于 DOS 和 16 位的Windows 3.X 的中断原
理和机制方面介绍的资料很多,实现起来相对容易,不再赘述。这里着重阐述Windows 95 的中断原理,并简要介绍其实现方法。
  众所周知,Intel 的 80X86CPU 系列芯片规定了0、1、2和3四个级别的执行代码可信度(即ring 0~3级),Windows 95 中只用到了0级和3级。执行ring 0级的代码,可直接对硬件、中断和文件系统进行物理访问,仅有操作系统及其部件被允许在 ring 0 级内执行。而应用程序的代码只在可信度最低的 ring 3 级内执行,其访问硬件和自身进程空间以外的内存能力受到限制。
  通常,在 Windows 95 下可用两种方法实现中断,一种是编写 DLL 程序,另一种是使用虚拟设备驱动程序(VxD)。二者的区别在于:VxD 是作为操作系统的组件运行于 ring 0级的,而DLL程序运行于 ring 3级。事实上,VxD 也被认为是一个32位保护模式下的可执行 DLL。应明确的是 VxD 运行在虚拟机管理器 (VMM) 控制之下,VMM 是位于最底层的操作系统部件(VMM 包含了所有基本的系统功能,如任务调度、虚拟内存操作、程序装入及终止、任务间通讯等,此外,还负责处理主要的中断及例外情况)。硬件设备在数据准备好后就发中断信号,但 VxD 并不直接截获这些中断信号,而是依赖于虚拟可编程中断控制器 (VPICD) 来硬件中断。 VPICD 可以将硬件中断映射到其它设备,向其它设备提供服务,通过这些服务允许虚拟设备请求中断,并可在 VMM 中模拟硬件中断信号。由于 Windows 95 系统多任务在硬件上就是通过硬件的虚拟化来实现的,利用这种方法来实现较高的定时精度符合 Windows 95 系统本身的原则,简单方便且有利于 Windows 95 系统的稳定。见下图。

VxD运行过程图

  因此,目前在 Windows 95 系统下实现较高精度的实时控制,一般采用编写VxD 程序来实现。实现定时的方法如下:
  (1)采用 Windows 系统本身所提供的虚拟定时器的 API(VTDAPI)。应用程序必须首先得到 VTDAPI的入口地址,再通过功能 VTDAPI-Begin-Int-Period 来设置中断周期,最后可用功能 VTDAPI-Start-User-Timer 启动定时器,声明一个将被周期调用的回调函数。需要指出的是 Windows 95 系统中可注册32个这样的定时器。
  (2)采用虚拟定时器设备虚拟硬件定时器,提供别的虚拟设备用来建立时钟的中断率服务或捕获一个给定的虚拟设备 I/O 端口的禁止或开放。首先通过功能VTD-Begin-Min-Int-Period 设置系统中断周期。然后可通过功能 VTD-Enable-Trapping 和 VTD-Disable-Trapping 来强迫定时设备禁止或开放端口。通过功能 Set-VM-Time-Out 启动定时器,配合相应函数完成所要求的实时控制任务。实际上,对于外部的物理中断,同样可采用这种方法。
  为了说明虚拟设备的中断控制,首先介绍一个数据结构,定义如下:
  STRUCT VPICD-IRQ-Descriptor {
   WORD VID-IRQ-Number; ∥虚拟设备申请的 IRQ 数
   WORD VID-Options; ∥初始化为0
   DWORD VID-Hw-Int-Proc; ∥用户中断处理程序的地址
   DWORD VID-Virt-Int-Proc; ∥虚拟中断处理程序地址
   DWORD VID-EOI-Proc; ∥物理中断结束后调用函数的地址
   DWORD VID-Mask-Change-Proc; ∥中断屏蔽地址
   DWORD VID-IRET-Proc; ∥中断请求地址
   DWORD VID-IRET-Time-Out; ∥中断请求的最大时间,500ms
   PVOID VID-Hw-Int-Ref; ∥用户中断参数 };
  虚拟设备中断控制的处理过程如下:首先,用户通过 CreateFile()函数装载VxD,系统向 VxD 发送 DEVICE-DYNAMIC-INIT 消息,调用对应的初始化程序。然后,执行中断处理程序,它的步骤是调用 VPICD-Pyhs-EOI 结束物理中断,调用 VPICD-Set-Int-Request 设置虚拟中断,进行中断处理,调用VPICD-Clear-Int-Request 清除虚拟中断,调用VPICD-Virtual-EOI 结束虚拟中断。当用户通过 CloseHandle()函数卸载 VxD 时,系统向 VxD 发送 DEVICE-DYNAMIC-EXIT 消息,控制处理程序调用对应的退出处理程序。
  了解了虚拟设备中断控制过程的原理,就可方便地使用 VxD 实现中断处理。目前,具有代表性的 VxD 开发工具包括: Microsoft 公司出品的设备驱动程序开发包 DDK,该产品出现较早,使用的范围也较广,但要求开发人员具备一定的汇编语言基础,工作量较大。Vireo Software 公司开发的用于编写设备驱动程序的工具包 VtoolsD,它包括一个 VxD 代码生成器 Quick VxD、可加载和卸载 VxD 的工具 VxDLoad,可给出系统已加载 VxD 信息的 VxDView,以及 ANSI C 运行库、VMM/VxD 服务库、VxD 的 C++类库。VtoolsD 除了能工作在 Windows95 环境下,还具有很强的开发能力及较高的开发效率,是个相当优秀的软件包。另外,KRFTech 公司出品的编写设备驱动程序的工具包 WinDriver 也是一个不错的开发工具,与 VtoolsD 一样,可使编程人员用 C++语言来编写设备驱动程序,而不是将大量精力放在编写那些复杂、难于调试的内核模式代码上,从而使用起来方便可靠。

3 VxD 在数控系统中的一个应用

  在我们研制开发的电火花成形机数控系统中,对主轴的伺服控制要求很高,因此需要相当高的实时性。采用 Windows 95 操作系统之后,必须解决实时性问题,为此编制了 VxD 程序。限于篇幅,只能结合功能简单介绍一下其实现过程。
  根据设计方案,采用 IRQ10 作为硬件中断信号,中断源由外部硬件定时器提供,设定为 1ms。使用 VtoolsD 中 VxD 代码生成器 Quick VxD 自动生成一个 VxD 框架。在其中添加自己的代码,如硬件中断处理函数:
  VOID MyHwInt::OnHardwareInt(VMHANDLE hVM)
  { 
   InterruptHandling(); ∥中断处理函数,包含了具体要实现的控制任务
   sendPhysicalEOI();
   ClearCarry();
  }
  VxD 程序动态加载和卸载函数:
  BOOL MyintDevice::OnSysDynamicDeviceInit()
  { 
   pMyIRQ=new MyHwInt();
   if(pMyIRQ&&pMyIRO->hook()){ 
    pMyIRQ->physicalUnmask();
    return TRUE;
   }
   else return FALSE;
  }
  BOOL MyintDevice::OnSysDynamicDeviceExit()
  { 
   pMyIRQ->physicalMask();
   delete pMyIRQ;
   return TRUE;
  }
  VxD 与主程序之间的通讯函数:
  DWORD MyintDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams)
  {…
   switch(pDIOCParmas->dioc-IOCtlCode){
   case 111:
   …
    break;
   default:
    break;
   }
   return 0;
  …
  }
  等等。
  通常情况下,源代码直接用 VC++就可编译通过,生成需要的 VxD。如需要调试的话,采用 Numega Technologies 公司的 Soft/ICE for Windows 95 工具软件来调试 VxD 相当方便。
  实践证明,使用 VxD 之后,再结合一定的伺服策略,很好地解决了主轴的伺服控制问题,加工精度得到可靠保证,而且系统的稳定性也很好,经长时间考机后,没出现任何异常。

4 实时控制应用程序的发展趋势

  由于 Windows 系统的硬件不透明性,使得一般用户要完成一定硬件操作具有较大的难度。鉴于 VxD 和 VMM 已成为 Windows 95 的系统核心,VxD 的设计业已成为实时控制应用程序的关键技术。
  另外,Microsoft 公司为了满足工业上一些实时控制的要求,特别于 1999 年 6 月推出了实时操作系统 Windows CE。
  我们知道,对于一个实时操作系统来讲,有三个关键的参数,即中断由操作系统和设备驱动程序屏蔽的最大时间、设备驱动程序处理中断的最大时间和从中断开始到任务执行的中断延迟时间,Windows CE 系统中这三个参数限值的参考值均在微秒级,这对于现在的一些控制要求基本能满足。由此看来,基于 Windows CE 系统的实时应用程序的开发,将成为可能。

数控系统   CAD   CAM   软件   电火花   加工举报此信息 
 
相关链接
使用FieldPoint 2000 PAC和LabVIEW DSC实现油田生产流程监控自动化 [ 2008-12-10]
C61200车床数控系统机械和电气综合改造技术方案 [ 2008-10-08]
艾默生帮助SABIC实现乙炔瓶充气控制 [ 2008-10-08]
数控铣床零件加工中宏程序的运用 [ 2008-10-08]
上海电气研发获突破实现国产化 [ 2008-10-07]
北京科瑞兴业数据采集卡在音乐喷泉控制中的应用 [ 2008-10-07]
PLC在离心式压缩机防喘振控制系统中的应用 [ 2008-10-07]
用VB6.0来实现PC对多个PLC的监控 [ 2008-10-06]
数控直流电流源的设计与实现 [ 2008-10-06]
水工业分布式异构系统3级测控网络的设计实现 [ 2008-09-28]
两工位组合机床的自动化实现 [ 2008-09-24]
SMARTCAR软件平台实现汽车电子系统软件的整体设计 [ 2008-09-23]
变电站直流监控系统的实现 [ 2008-09-19]
电子警察的系统设计、结构分析和功能实现 [ 2008-09-19]
台达变频技术帮助空压机实现“节能大回报” [ 2008-09-19]
  相关群组   
  相关话题   
  只用一个无线网卡实现整个局域网共享上网的办法
  802.11n:无线视频的实现技术
  FDT技术实现对智能设备的开放访问
  liybchongqin : 运动控制器远程控制如何实现?
  Presence业务的技术实现
  重庆电信实现无线网络全覆盖
  GPON-AES的算法实现
  烟草行业:2015年实现烟草物联网
  如何优化802.11n,实现无线局域网上的语音传输
  实现固话、移动网络以及互联网在业务层面的融合
  相关问答   
step 7软件是否可在windows7下可靠运行
现在买的笔记本都安装win7,step7和pcin软件是否可以在这个环境下可靠运行
  相关产品

施耐德电气Harmony 指纹开关

西门子雷达物位计SITRANS LR560

不带网管的卡轨式交换机 SPIDER 5TX

基恩士LR-Z系列传感器
  推荐企业
Endress+Hauser 恩德斯豪斯 科尔摩根(Kollmorgen)
菲尼克斯电气  
  关于 " Windows 95 下数控软件实时控制的实现 " ,填写反馈

验证码:    看不清

用户名:          密 码:         
还不是 IIAnews 注册会员? 立即免费注册 节省更多时间!
  直通车 :   ( 无须注册,轻松沟通 )
*姓名:     *单位名称:
*电话:     *电子邮件:
 
    
 

行业导航

电力    冶金    石化    医疗    建材
交通    电子    机械    节能    汽车    OEM
2012工业通讯技术应用峰会
产品点通
交换机  串口服务器  控制器  工控机  平板电脑  人机界面
传感器  视觉系统  伺服电机  PAC   I/O模块   MES  触摸屏
PLC  继电器  变送器  步进电机
主编直播间
在线提问  主编观点
•  2011年自动化市场回顾
•  MES提供从控制到管理的协同制造
•  定制创新服务模式—SFAE助力中山市松德包装机械股份有限公司...
•  风电变桨控制系统调查
•  投票你觉得性价比最好的人机界面
最新话题
在线研讨会
 • 1st Web-Seminar for PCS 7 Specialists: Customer Be
 • 2011研拓自动化全方位运动控制产品与系統解決方案
 • 2011科尔摩根 (Kollmorgen) KBM无框架直驱电机产品介绍
 • 美国福禄克(FLUKE)电能质量与设备使用的关系
 • 科尔摩根运动控制产品及其印刷行业应用方案
最新视频
西门子全集成自动化视频8- 国际化的设备
全面进军国际市场需要面对众多挑战。您必须将软件、文档、说明手册翻译成多
•   西门子全集成自动化视频7- 轻松集成
•   施耐德电气案例展播之建筑楼宇
•   施耐德电气案例展播之数据中心
•   菲尼克斯电气标识系统产品视频
•   西门子全集成自动化视频6- 生产透明度
编辑推荐
•  霍尼韦尔将2012年的年度用户大会(HUG)大学生挑战赛活动扩展至亚太地区
•  倍加福邀您共襄沈阳制博会盛事
•  SICK 传感器公司中文名称变更通告
•  堡盟南京办事处正式成立
•  艾默生通过并购扩展其安全业务
市场调研

搜企
首页 | 国际金属加工网 | 造车网 | 会员 | 主题信息 | 自动化问答 | 网站地图 | 免责声明 | 关于我们 | 主编信箱
北京市朝阳区东四环中路58号远洋国际中心C座2402室 电话: 010-65307950 传真: 010-65307859
Copyright ©1997-2012 IIA News.com & SooQ. All rights reserved.