首页> 中国专利> 工业以太网数控系统实时与非实时系统内核数据同步方法

工业以太网数控系统实时与非实时系统内核数据同步方法

摘要

本发明涉及一种工业以太网数控系统实时与非实时系统内核数据同步方法,包括以下步骤:初始化实时系统内核与非实时系统内核间缓冲区;在实时系统内核与非实时系统内核间建立优先中断通道;进行实时系统内核与非实时系统内核间的数据同步;所述初始化实时系统内核与非实时系统内核间缓冲区包括实时系统内核中的运动控制进程向实时系统内核申请两块缓冲区,将上述两块缓冲区分别定义为发送缓冲区和接收缓冲区;非实时系统内核中的工业以太网驱动进程向非实时系统内核申请使用上述两块缓冲区,直接获得上述两块缓冲区的头指针。本发明方法只需要在每个运动周期内通向非实时内核发送一个虚拟的中断,即可完成同步操作,编程非常简单,实时性强。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-09

    专利权的转移 IPC(主分类):G05B19/414 变更前: 变更后: 登记生效日:20150819 申请日:20090227

    专利申请权、专利权的转移

  • 2012-01-11

    授权

    授权

  • 2010-10-20

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

    实质审查的生效

  • 2010-09-01

    公开

    公开

说明书

技术领域

本发明涉及一种具有工业以太网通讯接口的数控系统,具体说是工业以太网数控系统实时与非实时系统内核数据同步方法。

背景技术

目前,在数控系统中最新采用的现场总线技术具有以下特点:(1)系统的开放性;(2)互操作性和互用性;(3)智能化控制;(4)系统结构的完全分布;(5)现场环境的适应性。由于拥有以上特点,国际和国内都开展很多研究,并已经形成了很多现场总线标准,如:Profibus、SERCOS、基金会总线、工业以太网等。与其它工业现场总线技术相比,工业以太网是在标准制定后发展最快的现场总线技术,越来越多的数控系统设计者采用工业以太网作为其数控系统的现场总线。

在目前被广泛使用的开放式数控系统中,由于其运动控制任务要求实时性,而人机接口、解释器等任务并没有实时性要求,所以,通常数控操作系统是一个实时操作系统,它一般采用实时系统内核和非实时系统内核构成的双内核机制,如:Linux+RTAI、Linux+RTLinux、Windows+RTX等。其中,非实时系统内核通常是通用的操作系统,其完成对各种硬件的驱动和管理、并提供友好的用户接口,保证了系统的可扩展性。实时系统内核负责实时任务的管理和调度,中断的处理和分发。原有非实时系统内核作为实时系统内核中优先级最低的任务。因为,在这种双内核结构的实时操作系统中,实时系统内核并不进行硬件驱动的管理,所以工业以太网的驱动程序运行在非实时系统内核中。数控系统中的运动控制进程完成对机床的每个轴的实时控制,它是运行在数控操作系统的实时系统内核中的实时进程。运动控制进程需要周期性的从工业以太网接口中获取数据,并通过其发送命令,即每周期进行一次同步操作。在具有工业以太网接口的数控系统中,在非实时系统内核中的工业以太网驱动进程接受的数据被需要被实时运动进程所使用。这就带来工业以太网数控系统实时系统内核和非实时系统内核之间的数据同步问题。

一般的同步方法是在实时系统内核中的实时运动进程触发非实时系统内核中的工业以太网驱动的收发函数,对工业以太网进行收发操作,完成实时系统内核和非实时系统内核的一次数据同步。但是,在数控操作系统中的实时系统内核与非实时系统内核分属两个不同的地址空间,拥有不同的执行上下文,在实时系统内核中直接调用非实时内核的函数,将发生强制上下文切换,影响实时内核进程的执行完成时间,甚至使得实时内核进程不能在规定期限内完成,破坏系统的实时性。

另外一种容易想到的办法是在工业以太网硬件产生中断时,由处理程序中调用非实时内核的工业以太网读写函数,将获得的数据拷贝到实时系统内核和非实时系统内核之间的缓冲区中,然后由实时内核中的运动控制进程读取数据。这种方法不会破坏系统的实时性的。但是,因为工业以太网硬件产生的中断不是定时产生的,它跟工业以太网上传送的数据大小和是否丢包有关系,直接采用工业以太网硬件产生的中断驱动运动控制进程与工业以太网驱动进程进行数据交换,存在缓冲区互斥问题,无法保证实时系统内核中的运动控制进程与非实时内核中的工业以太网驱动进程周期性的数据同步,不能保证系统的实时性,而且编程复杂。

发明内容

针对现有技术中的上述不足,本发明要解决的技术问题是提供一种实时性强、编程简单的工业以太网数控系统实时与非实时系统内核数据同步方法。

为解决上述技术问题,本发明采用的技术方案是:

本发明一种工业以太网数控系统实时与非实时系统内核数据同步方法包括以下步骤:

初始化实时系统内核与非实时系统内核间缓冲区;

在实时系统内核与非实时系统内核间建立优先中断通道;

进行实时系统内核与非实时系统内核间的数据同步。

所述初始化实时系统内核与非实时系统内核间缓冲区包括以下步骤:

实时系统内核中的运动控制进程向实时系统内核申请两块缓冲区,对各缓冲区命名并保存其头指针,将上述两块缓冲区分别定义为发送缓冲区和接收缓冲区;

非实时系统内核中的工业以太网驱动进程向非实时系统内核申请使用上述两块缓冲区,直接获得上述两块缓冲区的头指针。

所述在实时系统内核与非实时系统内核间建立优先中断通道包括以下步骤:

在非实时系统内核中注册一个虚拟中断处理程序,以触发非实时系统内核中工业以太网驱动进程;

在数控操作系统的中断列表中注册上述虚拟中断处理程序的虚拟中断号;

实时系统内核中的运动控制进程中获得上述虚拟中断号,建立优先中断通道。

所述进行实时系统内核与非实时系统内核间的数据同步包括以下步骤:

实时系统内核中的运动控制进程对从接收缓冲区得到的数据进行计算;

上述运动控制进程将上述计算后的数据放入发送缓冲区;

通过优先中断通道向非实时系统内核发出虚拟中断信号,触发上述虚拟中断;

非实时系统内核响应上述虚拟中断,调用已注册的上述虚拟中断处理程序;

上述虚拟中断处理程序触发工业以太网驱动进程;

工业以太网驱动进程从发送数据缓冲区中获得数据进行处理后,控制工业以太网硬件向工业以太网发送;

工业以太网驱动进程将从工业以太网接受到的数据放到接收缓冲区;

实时系统内核中的运动控制进程从接收缓冲区中读取数据,完成一次数据同步,一个运动控制进程周期结束。

本发明具有以下有益效果及优点:

1.编程简单。本发明方法运行在实时系统内核中的运动控制器中,只需要在每个运动周期内通过优先中断通道向非实时内核发送一个虚拟的中断,即可完成同步操作,编程非常简单。

2.实时性强。应用本发明方法不会影响实时内核中运行的实时进程的实时性。

3.无须考虑实时系统进程与非实时系统进程上下文切换问题。缓冲区互斥。本发明在实时系统内核与非实时系统内核之间采用的是双缓冲区,缓冲区数据单向传递,不需要考虑缓冲区互斥数据问题。

附图说明

图1为本发明中数控系统体系结构框图;

图2为本发明中内核间缓冲区的实时与非实时内核之间的FIFO的结构;

图3为本发明方法控制流程图;

图4为本发明方法中内核间缓冲区初始化流程图;

图5为本发明方法中建立优先中端通道流程图;

图6为本发明方法数据同步流程图;

图7为本发明方法中优先中断通道构造示意图。

具体实施方式

如图1所示,为本发明数控系统体系结构框图,其表明了数控系统的实时任务和非实时任务的关系以及工业以太网所处在的数控操作系统的位置。本发明方法基于Linux+RTAI实时扩展,即数控操作系统中的实时系统内核16为RTAI(Real Time Application Interface,实时应用程序的接口),非实时系统内核11为Linux。实时系统内核16中运行运动控制进程12和其他实时进程14。非实时系统内核11运行工业以太网驱动进程9和其他非实时进程15。运动控制进程12与工业以太网驱动进程9通过内核间缓冲区13连接并交换数据。工业以太网驱动进程9可对工业以太网硬件2进行控制,完成工业以太网收取和发送操作。工业以太网硬件2接收到工业以太网数据后将向中断分发器10发送工业以太网中断3。如果实时系统内核16中注册了,那么中断分发器10将向实时系统内核分发工业以太网中断3,调用工业以太网实时中断处理程序7。如果实时系统内核中没有注册上述中断,但是非实时系统内核11中注册了工业以太网非实时中断处理程序8,中断分发器10将中断分发给工业以太网非实时中断处理程序8。当非实时系统内核11被执行时,它将首先运行工业以太网非实时中断处理程序8。

如图2所示,为本发明中内核间缓冲区的实时与非实时内核之间的FIFO的结构;实时系统内核16中的运动控制进程12与非实时系统内核11中的工业以太网驱动进程9之间使用内核间缓冲区13连接。内核间缓冲区13被设计为两种形式:发送缓冲区17和接收缓冲区18。

如图3所示,为本发明方法总流程图,具体步骤为:

初始化实时系统内核与非实时系统内核间缓冲区;

在实时系统内核与非实时系统内核间建立优先中断通道;

进行实时系统内核与非实时系统内核间的数据同步。

如图4所示,为本发明方法中内核间缓冲区初始化流程图。在初始化内核间缓冲区的过程中,实时系统内核中的运动控制进程12向实时系统内核16申请两块缓冲区,对各缓冲区命名并保存其头指针,将上述两块缓冲区分别定义为发送缓冲区和接收缓冲区;

非实时系统内核11中的工业以太网驱动进程9向非实时系统内核11申请使用上述两块缓冲区,直接获得上述两块缓冲区的头指针。非实时系统内核11中的工业以太网进程9用已约定好的缓冲区名申请缓冲区,因为缓冲区已经申请,所以系统向工业以太网进程9传递已申请的缓冲区的头指针。

如图5所示,为本发明方法中建立优先中端通道流程图。在非实时系统内核11中注册一个虚拟中断处理程序21,以触发非实时系统内核中的工业以太网驱动进程9;在数控操作系统23的中断列表中注册上述虚拟中断处理程序的虚拟中断号;

实时系统内核16中的运动控制进程12中获得上述虚拟中断号,建立优先中断通道。

如图6所示,为本发明方法数据同步流程图。所述进行实时系统内核与非实时系统内核间的数据同步包括以下步骤:

实时系统内核16中的运动控制进程12对从接收缓冲区18得到的数据进行计算;

上述运动控制进程将上述计算后的数据放入发送缓冲区17;

通过优先中断通道22向非实时系统内核11发出虚拟中断信号,触发上述虚拟中断,同时让运动控制进程12挂起,让出CPU;

非实时系统内核11响应上述虚拟中断,调用已注册的上述虚拟中断处理程序21,即由中断分发器12向非实时系统内核11分发虚拟中断信号20,调用已注册的上述虚拟中断处理程序21;

上述虚拟中断处理程序21触发工业以太网驱动进程9;

工业以太网驱动进程9从发送数据缓冲区17中获得数据进行处理后,控制工业以太网硬件2向工业以太网发送;

工业以太网驱动进程9将从工业以太网接受到的数据放到接收缓冲区18;

实时系统内核16中的运动控制进程12从接收缓冲区中读取数据,完成一次数据同步,一个运动控制进程周期结束。

如图7所示,为本发明方法中优先中断通道构造示意图。在非实时系统内核11中注册虚拟中断处理程序21,在虚拟中断处理程序21中触发工业以太网驱动进程9。运动控制进程12向中断分发器10使用快速中断标记操作19标记虚拟中断状态位为1,中断分发器10根据状态位是否为1,如果为1,则将虚拟中断通过虚拟中断分发操作20传递给非实时系统内核11,非实时系统内核11调用虚拟中断处理程序21,以触发工业以太网驱动进程9,实现了实时系统内核16中的运动控制进程12对非实时系统内核11中的工业以太网驱动进程9的同步,整个同步的顺序和通道,称为优先中断通道22。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号