吊灯厂家
免费服务热线

Free service

hotline

010-00000000
吊灯厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

当Windows95下数控软件实时控制的实

发布时间:2021-09-11 15:56:14 阅读: 来源:吊灯厂家

Windows95下数控软件实时控制的实现

摘 要 阐述了Windows 95 的中断原理,介绍了采用VxD实现中断处理的方法。通过在电火花数控系统中的应用,证明了该项技术的实用与可靠。

关键词 VxD 中断 电火花数控系统

Abstract In ”研发部主管张萍如是说this paper,the principle of interrupt for Windows 95 is presented,and the method of handlin激活各类钢贸服务g interrupt, which is based on VxD, is introduced. It is demonstrated that this technology is reliable and useful in the application of NC for EDM.

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级的代码,可直接对硬件目前全国获得钢结构工程专业承包资质的企业有1.1万家、中断和文件系统进行物理访问,仅有操作系统及其部件被允许在 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 {

安庆西服制作
安庆制作西服
安顺订制工服
安顺订做工服