首页> 中国专利> 一种基于Windows操作系统的仿真嵌入式数控系统及其实现方法

一种基于Windows操作系统的仿真嵌入式数控系统及其实现方法

摘要

本发明提供一种基于Windows操作系统的仿真嵌入式数控系统,本发明在Windows环境下实现了虚拟的CNC系统驱动程序,将uC/OS-II进行基于Windows线程的移植,为CNC应用软件提供虚拟的运行环境,移植后运行于Windows操作系统,实现对CNC的软件仿真直接对数控系统软件进行移植,与数控系统实物的人机交互、功能表现高度一致,达到了很好的仿真效果。

著录项

  • 公开/公告号CN101950167A

    专利类型发明专利

  • 公开/公告日2011-01-19

    原文格式PDF

  • 申请/专利权人 广州数控设备有限公司;

    申请/专利号CN201010512889.3

  • 发明设计人 李俊;邱泽丰;郭艳红;吴苏如;

    申请日2010-10-20

  • 分类号G05B19/18;G06F9/455;

  • 代理机构广州市华学知识产权代理有限公司;

  • 代理人裘晖

  • 地址 510663 广东省广州市科学城彩频路11号软件园D栋7楼

  • 入库时间 2023-12-18 01:35:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-05-30

    授权

    授权

  • 2011-03-16

    实质审查的生效 IPC(主分类):G05B19/18 申请日:20101020

    实质审查的生效

  • 2011-01-19

    公开

    公开

说明书

技术领域

本发明涉及数控仿真技术,具体涉及一种基于Windows操作系统的仿真嵌入式数控系统及其实现方法。

背景技术

随着嵌入式控制技术的不断发展,嵌入式控制器日益普及于工业生产的方方面面。而嵌入式控制模拟仿真技术也得到了快速发展,但是,现有国内的数控模拟仿真技术,是根据数控系统的外在功能表现重新设计软件进行模仿,难免出现功能不全,表现不一致等问题。

发明内容

本发明的目的是克服现有技术中的不足之处,提供一种基于Windows操作系统的仿真嵌入式数控系统,本发明在Windows环境下实现了虚拟的CNC(数控机床)系统驱动程序,将uC/OS-II进行基于Windows线程的移植,为CNC应用软件提供虚拟的运行环境,移植后运行于Windows操作系统,实现对CNC的软件仿真直接对数控系统软件进行移植,与数控系统实物的人机交互、功能表现高度一致,达到了很好的仿真效果。

本发明的另一目的在于提供上述基于Windows操作系统的仿真嵌入式数控系统的实现方法。

本发明的目的是通过以下技术方案来实现的:一种基于Windows操作系统的仿真嵌入式数控系统,包括:

将嵌入式CNC软件所连接的外部设备移植到Windows操作系统所生成的Windows用户界面程序;

安装运行indows操作系统的计算机;

将嵌入式CNC软件移植到Windows操作系统所生成的CNC仿真系统;

将嵌入式CNC软件中的驱动程序移植到Windows操作系统生成的虚拟驱动层;

使用一个Windows线程虚拟嵌入式CNC软件中的uC/OS-II操作系统所生成的虚拟uC/OS-II操作系统。

上述系统中,所述虚拟驱动层设置有:

使用Windows的标准文件IO接口重定义嵌入式CNC软件中的原文件系统接口所生成的文件系统,使CNC仿真系统使用Windows的文件系统,直接使用计算机的磁盘作为存储器;

显示驱动,为CNC仿真系统的绘图接口提供一块连续内存存储显示数据,数据区的大小由显示分辨率和颜色质量决定,Windows用户界面程序从显示驱动读取显示数据转为位图进行显示,模拟CNC的液晶显示;

键盘驱动,为CNC仿真系统提供键盘扫描状态数据访问的接口,Windows用户界面程序将软件模拟的键盘状态通过键盘驱动通知CNC仿真系统;

非易失性随机访问存储器(NVRAM),在虚拟驱动中,使用一个磁盘文件存储NVRAM变量值,CNC仿真系统启动时,从文件读取变量值到RAM空间,供CNC仿真系统使用;CNC仿真系统关闭时,将变量值存储到磁盘文件,使CNC仿真系统下次启动时,NVRAM变量保持为上次关闭时刻的值;

输入/输出端口,用于CNC仿真系统的伺服轴移动量输出、内嵌PLC的信号输入/输出、主轴转速控制的模拟电压输出、主轴编码器及手轮编码器信号输入,具体为:

伺服轴移动量输出,当CNC仿真系统运行产生伺服轴移动时,通过虚拟驱动输出移动量,在CNC软件中,移动量输出的频率很高,两次输出的间隔为毫秒级。虚拟驱动中采用环行队列来存储各伺服轴每次输出的移动量,提供给Windows用户界面程序使用,以仿真伺服轴的运动;内嵌PLC的输入/输出信号;进行主轴转速控制的模拟电压输出;主轴编码器及手轮编码器输入。

上述基于Windows操作系统的仿真嵌入式数控系统的实现方法,具体为:

将嵌入式CNC软件移植到计算机的Windows操作系统生成CNC仿真系统;

将嵌入式CNC软件中的驱动程序移植到计算机的Windows操作系统生成虚拟驱动层;

使用一个Windows线程虚拟嵌入式CNC软件中的uC/OS-II操作系统,生成虚拟uC/OS-II操作系统。

上述方法中,所述使用一个Windows线程虚拟嵌入式CNC软件中的uC/OS-II操作系统,生成虚拟uC/OS-II操作系统,具体包括时钟TICK的获得,时钟中断的产生,以及任务上下文切换。

本发明相比现有技术具有以下优点及有益效果:

本发明在Windows环境下实现了虚拟的CNC(数控机床)系统驱动程序,将uC/OS-II进行基于Windows线程的移植,为CNC应用软件提供虚拟的运行环境,移植后运行于Windows操作系统,实现对CNC的软件仿真直接对数控系统软件进行移植,与数控系统实物的人机交互、功能表现高度一致,达到了很好的仿真效果。

附图说明

图1是本发明的结构示意图。

图2是本发明中时钟中断产生的具体流程图;

图3是本发明中CNC系统移植的操作流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

总的来说,本发明技术方案就是在Windows操作系统环境下通过软件模拟嵌入式系统的相关硬件驱动层,以及使用Windows线程模拟的uC/OS-II操作系统,创建一个虚拟的嵌入式系统软件运行环境,移植嵌入式控制器的应用软件,以Windows用户界面程序模拟CNC连接的外部设备,使CNC软件通过虚拟驱动层对这些设备进行操作,实现对嵌入式控制器的仿真。

下面结合实施例及附图对本发明作进一步详细的描述。

实施例1

如图1所示,基于Windows操作系统的仿真嵌入式数控系统,包括:

将嵌入式CNC软件所连接的外部设备移植到Windows操作系统所生成的Windows用户界面程序;

含Windows操作系统的计算机;

将嵌入式CNC软件移植到Windows操作系统所生成的CNC仿真系统;

将嵌入式CNC软件中的驱动程序移植到Windows操作系统生成的虚拟驱动层;

使用一个Windows线程虚拟嵌入式CNC软件中的uC/OS-II操作系统所生成的虚拟uC/OS-II操作系统。

一、虚拟驱动层

虚拟驱动实现与原CNC软件中驱动程序一致的接口函数,为应用层软件提供与硬件交互必需的接口,主要包括文件系统,显示驱动,键盘驱动,非易失性随机访问存储器(NVRAM),输入/输出端口等。

1.1、文件系统

虚拟驱动使用Windows的标准文件IO接口重定义原文件系统接口,使CNC软件使用Windows的文件系统,直接使用计算机的磁盘作为存储器。

1.2、显示驱动

显示驱动为CNC软件的绘图接口提供一块连续内存存储显示数据,数据区的大小由显示分辨率和颜色质量决定。Windows用户界面程序从显示驱动读取显示数据转为位图进行显示,模拟CNC的液晶显示。

1.3、键盘驱动

键盘驱动为CNC软件提供键盘扫描状态数据访问的接口。Windows用户界面程序将软件模拟的键盘状态通过键盘驱动通知CNC软件。

1.4、非易失性随机访问存储器(NVRAM)

在虚拟驱动中,使用一个磁盘文件存储NVRAM变量值,仿真CNC启动时,从文件读取变量值到RAM空间,供CNC软件使用;仿真CNC关闭时,将变量值存储到磁盘文件。使仿真CNC下次启动时,NVRAM变量保持为上次关闭时刻的值。

1.5、输入/输出端口

输入/输出端口驱动主要包含:

1.5.1伺服轴移动量输出。当CNC软件运行产生伺服轴移动时,通过虚拟驱动输出移动量。在CNC软件中,移动量输出的频率很高,两次输出的间隔为毫秒级。虚拟驱动中采用环行队列来存储各伺服轴每次输出的移动量,提供给Windows用户界面程序使用,以仿真伺服轴的运动。

1.5.2内嵌PLC的输入/输出信号。

1.5.3进行主轴转速控制的模拟电压输出。

1.5.4主轴编码器及手轮编码器输入。

二、虚拟uC/OS-II操作系统层

使用一个Windows线程实现虚拟的uC/OS-II操作系统,使得CNC软件通过虚拟的uC/OS-II操作系统直接运行于Windows,减少移植过程中与操作系统相关的工作。这个虚拟层其实是将uC/OS-II进行基于Windows线程的移植,其所有任务都在Windows的一个线程中运行。

uC/OS-II的移植主要包括三个内容:时钟TICK的获得,时钟中断的产生,任务上下文切换。

2.1、时钟TICK的获得

模拟软件本身是运行在Windows下,不需要强实时性,因此采用Windows的软件定时器,通过使用定时精度ms级的timeSetEvent()函数来产生模拟时钟TICK。其函数原型:MMRESULT timeSetEvent(UINT uDelay,UINT uResolution,LPTIMECALLBACK lpTimeProc,WORD dwUser,UINT fuEvent),将需要周期性执行的任务定义在lpTimeProc回调函数中,从而完成所需处理的事件。调用这个函数后会增加一个线程,时间一到则在这个线程中调用回调函数。

2.2、时钟中断的产生

timeSetEvent()函数调用定时回调函数是和主线程同时被Windows操作系统调度的,并没有起到中断的作用。所以在调用定时回调函数lpTimeProc的时候必须停止主线程的运行,退出回调函数则恢复主线程的运行,这些事情都放在定时回调函数,也就是uC/OS-II的时钟中断处理函数中完成,如图2所示。

2.3任务上下文切换

这里的任务上下文和uC/OS-II在x86上移植的不同点是段寄存器不用保存,因为在Windows下的uC/OS-II任务其实只是在同一个线程中切换,而且在保护模式下段寄存器,其值在同一个线程中是不会变的。

三、CNC系统软件移植

CNC系统软件是在外部定时中断响应中进行插补处理的。模拟的CNC系统运行在以Windows Thread虚拟的uC/OS-II系统之上,CNC的所有任务均运行在一个线程中,且只模拟了时钟TICK中断。模拟软件无实时性要求,所以可将插补处理在优先级最高的任务中进行,周期性的调用原中断服务函数,再对任务过程进行少许修改即可。如图3为插补处理任务的流程。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号