公开/公告号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为插补处理任务的流程。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
机译: 实验室复杂操作指导过程的仿真与自动化方法,包括实现基于软件的基础设施仿真,以及实现指导系统与仿真之间的双向数据传输
机译: 嵌入式系统,即计算机系统,一种仿真方法,包括通过仿真器内核仿真与事件反应的动态特性,并确定目标系统上程序序列的实际所需执行时间
机译: 基于嵌入式嵌入式系统开发程序的基于仿真PC的方法和装置