首页> 中国专利> 运动控制系统的数据处理方法、装置及运动控制系统

运动控制系统的数据处理方法、装置及运动控制系统

摘要

本申请提供了一种运动控制系统的数据处理方法、装置及运动控制系统,所述方法为在第一芯片中设置第一缓冲区、第二缓冲区和第三缓冲区,使得计算位置控制数据的过程无需再在响应中断即接收到中断信号之后执行,第一芯片在接收到中断信号时,仅执行位置控制数据交互的过程,相比于进行前瞻处理、速度规划、插补控制所需的时间,大幅缩短,且前瞻处理、速度规划、插补控制不再在接收中断信号之后执行,无需再考虑插补周期是否满足进行前瞻处理、速度规划、插补控制所需的时间,因此插补周期得到缩短,从而加工精度得到提高,数控系统数据交互的实时性得到改善。

著录项

  • 公开/公告号CN105204437A

    专利类型发明专利

  • 公开/公告日2015-12-30

    原文格式PDF

  • 申请/专利权人 深圳市英威腾电气股份有限公司;

    申请/专利号CN201410307035.X

  • 发明设计人 尚波;

    申请日2014-06-30

  • 分类号G05B19/408(20060101);G05B19/41(20060101);

  • 代理机构深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人唐华明

  • 地址 518055 广东省深圳市南山区龙井高发科技工业园4号厂房

  • 入库时间 2023-12-18 13:14:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-20

    授权

    授权

  • 2016-01-27

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

    实质审查的生效

  • 2015-12-30

    公开

    公开

说明书

技术领域

本申请涉及自动化控制领域,特别涉及一种运动控制系统的数据处理 方法、装置及运动控制系统。

背景技术

在数控系统中控制一般要经过译码、前瞻处理流程、速度规划、插补控 制、位置控制几个主要步骤,目前国内外比较流行的数控系统硬件平台是由 ARM+DSP(digitalsignalprocessor,数字信号处理器)+FPGA(现场可编程门阵 列,FieldProgrammableGateArray)组成,ARM进行译码处理(即将数据转换 为数控系统可以识别的NC代码)和将相关数据返回给用户界面显示;DSP 处理前瞻处理流程、速度规划、插补控制;FPGA处理位置控制和定时触发 DSP中断。数控系统的实时性和高效性是通过FPGA定时触发DSP中断来 实现和保证的,基本的控制原理是FPGA在固定周期(其中周期间隔由插补 周期数决定)内触发DSP的中断信号,DSP接收到FPGA触发中断信号后 立即响应中断,在中断响应程序内进行前瞻处理、速度规划和插补控制等流 程计算出位置控制数据,具体请参见图1,图1示出了现有技术中数控系统 的数据处理方法的一种执行示意图。可见,数控系统数据交互的实时性依赖 于FPGA所根据的指定插补周期。

DSP计算位置控制数据的过程为,执行前瞻处理、速度规划、插补控制, 得到加工精度,根据加工精度得到位置控制数据。其中,前瞻处理、速度规 划、插补控制的关系如下:插补速度△V,加速度a,加工精度△L关系如下: △L=△V*t,△V=V0+a*t(公式1),t为插补周期,加速度a是通过系统参数 设置的,V0通过前瞻处理流程计算得到,△V通过速度规划流程计算得到。

通过公式1可以看出,加工精度△L=V0*t+a*t2(公式2)。由公式2可 知,t越小△L就越小,加工精度就越高。在插补控制即将开始时,会对即 将开始的NC代码段进行前瞻处理和速度规划处理,而进行前瞻处理和速度 规划处理的过程比较耗时,有可能会超过插补周期t所给出的范围,为了解 决这种情况,一般将插补周期t设置的比较大,但是通过公式2可以看出, 插补周期t比较大的话将会影响加工精度,但是t比较小的话就无法满足前 瞻处理与速度规划所耗的时间。可见,插补周期与前瞻处理流程、速度规划、 插补控制所需时间存在矛盾,导致加工精度及数控系统数据交互的实时性均 受到限制。

发明内容

为解决上述技术问题,本申请实施例提供一种运动控制系统的数据处理 方法、装置及运动控制系统,以达到提高加工精度,改善数控系统数据交互 的实时性的目的,技术方案如下:

一种运动控制系统的数据处理方法,基于所述运动控制系统的第一芯 片,所述第一芯片中设立有三个缓冲区,所述方法包括:

A:在第一缓冲区未存满数据时,所述第一芯片计算位置控制数据,将 所述位置控制数据写入所述第一缓冲区,直至所述第一缓冲区存满数据,在 所述第一缓冲区存满数据且第二缓冲区未存满数据时,将所述第一缓冲区中 的位置控制数据写入所述第二缓冲区;

B:在执行步骤A的过程中,若所述第一芯片接收到中断信号,则判断 所述第二缓冲区是否被占用,若是,执行步骤C,若否,执行步骤D;

C:从第三缓冲区中读取所述中断信号对应的位置控制数据,并将所述 中断信号对应的位置控制数据发送至第二芯片;

D:在所述第三缓冲区未存满数据的情况下,将所述第二缓冲区中的位 置控制数据存入所述第三缓冲区,并返回执行步骤C。

优选的,所述第三缓冲区的大小为n组位置控制数据空间,每组位置控 制数据空间用于存储相应中断信号对应的位置控制数据,所述n为大于等于 1的整数。

优选的,将所述第二缓冲区中的位置控制数据存入所述第三缓冲区具体 为:

将所述第二缓冲区中的位置控制数据以块拷贝的形式存入所述第三缓 冲区。

优选的,所述第二缓冲区是否被占用通过Data2_Use表征,在所述 Data2_Use为0时表征所述第二缓冲区未被占用,在所述Data2_Use为1时 表征所述第二缓冲区被占用。

优选的,所述第一缓冲区是否存满数据通过Data1_full表征,在所述 Data1_full为1时表征所述第一缓冲区存满数据,在所述Data1_full为0时 表征所述第一缓冲区未存满数据;

所述第二缓冲区是否存满数据通过Data2_full表征,在所述Data2_full 为1时表征所述第二缓冲区存满数据,在所述Data2_full为0时表征所述第 二缓冲区未存满数据;

所述第三缓冲区是否存满数据通过Data3_full表征,在所述Data3_full 为1时表征所述第三缓冲区存满数据,在所述Data3_full为0时表征所述第 三缓冲区未存满数据。

优选的,所述计算位置控制数据的过程,包括:

所述第一芯片依次执行前瞻处理、速度规划和插补控制,得到加工精度;

根据加工精度,得到位置控制数据。

一种运动控制系统的数据处理装置,包括有第一芯片,所述第一芯片中 设有第一缓冲区、第二缓冲区、第三缓冲区、第一处理模块和第二处理模块, 其中第一处理模块包括:

计算单元,用于在第一缓冲区未存满数据时,计算位置控制数据;

第一写入单元,用于在第一缓冲区未存满数据时将所述位置控制数据写 入所述第一缓冲区,直至所述第一缓冲区存满数据;

第二写入单元,用于在所述第一缓冲区存满数据且所述第二缓冲区未存 满数据时,将所述第一缓冲区中的位置控制数据写入第二缓冲区;

所述第二处理模块包括:

判断单元,用于在所述第一处理模块运行过程中,若接收到中断信号, 则判断所述第二缓冲区是否被占用,若是,依次执行读取单元和发送单元, 若否,依次执行存入单元、所述读取单元和所述发送单元;

所述读取单元,用于从第三缓冲区中读取所述中断信号对应的位置控制 数据;

所述发送单元,用于将所述中断信号对应的位置控制数据发送至第二芯 片;

存入单元,用于在所述第三缓冲区未存满数据的情况下,将所述第二缓 冲区中的位置控制数据存入所述第三缓冲区。

优选的,所述存入单元包括:

存入子单元,用于将所述第二缓冲区中的位置控制数据以块拷贝的形式 存入所述第三缓冲区。

优选的,所述计算单元包括:

第一计算子单元,用于依次执行前瞻处理、速度规划和插补控制,得到 加工精度;

第二计算子单元,用于根据加工精度,得到位置控制数据。

一种运动控制系统,至少包括有上述任一项所述的第一芯片和第二芯 片,其中:

所述第二芯片,用于发送中断信号至所述第一芯片,并接收所述第一芯 片发送的位置控制数据。

优选的,所述第一芯片包括:数字信号处理器DSP或ARM;

所述第二芯片包括现场可编程门阵列FPGA或单片机。

与现有技术相比,本申请的有益效果为:

在本申请中,第一芯片中设置有多个缓冲区即第一缓冲区、第二缓冲 区和第三缓冲区,使得计算位置控制数据的过程无需再在响应中断即接 收到中断信号之后执行。

第一芯片在接收到中断信号时,仅执行位置控制数据交互的过程即在 第二缓冲区被占用的情况下,从第三缓冲区中读取所述中断信号对应的 位置控制数据,并将所述中断信号对应的位置控制数据发送至第二芯片, 在第二缓冲区未被占用的情况下,将第二缓冲区中的位置控制数据存入 第三缓冲区中,然后从第三缓冲区中读取所述中断信号对应的位置控制 数据,并将所述中断信号对应的位置控制数据发送至第二芯片。由于第 一芯片不再在响应中断信号时,进行计算位置控制数据的过程即进行前 瞻处理、速度规划、插补控制等流程,执行位置控制数据交互的时间相比 于进行前瞻处理、速度规划、插补控制所需的时间,大幅缩短,且前瞻 处理、速度规划、插补控制不再在接收中断信号之后执行,无需再考虑 插补周期是否满足进行前瞻处理、速度规划、插补控制所需的时间,因 此插补周期得到缩短,从而加工精度得到提高,数控系统数据交互的实 时性得到改善。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中数控系统的数据处理方法的一种执行示意图;

图2是本申请提供的运动控制系统的数据处理方法的一种流程图;

图3是本申请提供的运动控制系统的数据处理方法的一种子流程图;

图4是本申请提供的运动控制系统的数据处理方法的另一种子流程 图;

图5是本申请提供的第一芯片的一种结构示意图;

图6是本申请提供的运动控制系统的数据处理系统的一种结构示意 图;

图7是本申请提供的运动控制系统的数据处理系统的一种执行示意 图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案 进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实 施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 申请保护的范围。

实施例一

在本实施例中,示出了本申请提供的运动控制系统的数据处理方法, 本申请提供的运动控制系统的数据处理方法基于运动控制系统的第一芯 片,所述第一芯片中设立有三个缓冲区,分别为第一缓冲区、第二缓冲 区和第三缓冲区。本实施例以第一芯片的角度对运动控制系统的数据处 理方法进行说明。

请参见图2,其示出了本申请提供的运动控制系统的数据处理方法的 一种流程图,可以包括以下步骤:

步骤A:在第一缓冲区未存满数据时,第一芯片计算位置控制数据,将 所述位置控制数据写入所述第一缓冲区,直至所述第一缓冲区存满数据,在 所述第一缓冲区存满数据且所述第二缓冲区未存满数据时,将所述第一缓冲 区中的位置控制数据写入第二缓冲区。

第一芯片计算位置控制数据的具体过程可以为:

(1)依次执行前瞻处理、速度规划和插补控制,得到加工精度。

根据公式ΔL=△V*t,△V=V0+a*t,得到ΔL=V0*t+a*t2。其中,△V为 插补速度,a为加速度,t为插补周期,ΔL为加工精度。

(2)根据加工精度,得到位置控制数据。

在得到加工精度后,按照的关系,得到(ΔX,ΔY,ΔZ) 即为位置控制数据。其中,L为程序段长度,X为当前程序段L对于的X 轴长度,Y为当前程序段长度L对应的Y轴长度,Z为当前程序段长度L 对应的Z轴长度。

步骤B:第一芯片在执行步骤A的过程中,若接收到中断信号,则判 断所述第二缓冲区是否被占用。

若是,执行步骤B1;若否,执行步骤B2。

步骤B1:从第三缓冲区中读取所述中断信号对应的位置控制数据,并 将所述中断信号对应的位置控制数据发送至现场可编程门阵列第二芯片。

步骤B2:在所述第三缓冲区未存满数据的情况下,将所述第二缓冲区 中的位置控制数据存入所述第三缓冲区,并返回执行步骤B1。

在所述第三缓冲区未存满数据的情况下,将所述第二缓冲区中的位置控 制数据存入所述第三缓冲区,从所述第三缓冲区中读取所述中断信号对应的 位置控制数据,并将所述中断信号对应的位置控制数据发送至所述第二芯 片。

在本实施例中,在接收到中断信号时,执行判断第二缓冲区是否被占 用的步骤,确保了在接收到中断信号后执行中断响应过程中第二缓冲区 的位置控制数据的完整性和可靠性。

在本实施例中,中断信号由第二芯片发送,第二芯片每隔插补周期, 发送一次中断信号。

需要说明的是,步骤A不受中断信号的影响,在不间断执行,本实 施例示出的仅是步骤A执行一次的过程。其中,步骤A在第一芯片的main ()函数中运行,步骤B在第一芯片的中断响应函数中运行,即由main ()函数处理前瞻处理、速度规划和插补控制等流程,实现了将前瞻处 理、速度规划和插补控制等流程从中断响应函数移出到大循环控制流程, 通过多缓冲区解决数控系统实时计算与实时取数的协调性。

在本申请中,第一芯片中设置有多个缓冲区即第一缓冲区、第二缓冲 区和第三缓冲区,使得计算位置控制数据的过程无需再在响应中断即接 收到中断信号之后执行。

第一芯片在接收到中断信号时,仅执行位置控制数据交互的过程即在 第二缓冲区被占用的情况下,从第三缓冲区中读取所述中断信号对应的 位置控制数据,并将所述中断信号对应的位置控制数据发送至第二芯片, 在第二缓冲区未被占用的情况下,将第二缓冲区中的位置控制数据存入 第三缓冲区中,然后从第三缓冲区中读取所述中断信号对应的位置控制 数据,并将所述中断信号对应的位置控制数据发送至第二芯片。由于第 一芯片不再在响应中断信号时,进行计算位置控制数据的过程即进行前 瞻处理、速度规划、插补控制等流程,执行位置控制数据交互的时间相比 于进行前瞻处理、速度规划、插补控制所需的时间,大幅缩短,且由于 前瞻处理、速度规划、插补控制不再在接收中断信号之后执行,无需再 考虑插补周期是否满足进行前瞻处理、速度规划、插补控制所需的时间, 因此插补周期得到缩短,从而加工精度得到提高,数控系统数据交互的 实时性得到改善。

在本实施例中,第三缓冲区的大小可以设置为n组位置控制数据空 间,其中每组位置控制数据空间用于存储相应中断信号对应的位置控制数 据,所述n为大于等于1的整数。由于第三缓冲区的大小为n组位置控制数 据空间,因此第三缓冲区可以存放多组位置控制数据即存放多个中断信号对 应的位置控制数据,第三缓冲区在第一芯片接收到中断信号之前,已经完成 多个中断信号各自对应的位置控制数据的存储,第一芯片在接收到一个中断 信号时,从第三缓冲区中读取相应的位置控制数据即可,也就是说在未来n-1 个插补周期内能够保证第一芯片向第二芯片发送正确的数据。

在本实施例中,将所述第二缓冲区中的位置控制数据存入所述第三缓 冲区的过程具体可以为:将所述第二缓冲区中的位置控制数据以块拷贝 的形式存入所述第三缓冲区。

其中,将所述第二缓冲区中的位置控制数据以块拷贝的形式存入所述 第三缓冲区,使得数据的存放效率大大提高,且数据的安全性也得到保 证。

在本实施例中,所述第二缓冲区是否被占用通过Data2_Use表征,在所 述Data2_Use为0时表征所述第二缓冲区未被占用,在所述Data2_Use为1 时表征所述第二缓冲区被占用。

所述第一缓冲区是否存满数据通过Data1_full表征,在所述Data1_full 为1时表征所述第一缓冲区存满数据,在所述Data1_full为0时表征所述第 一缓冲区未存满数据。

所述第二缓冲区是否存满数据通过Data2_full表征,在所述Data2_full 为1时表征所述第二缓冲区存满数据,在所述Data2_full为0时表征所述第 二缓冲区未存满数据。

在本实施例中,示出了步骤A的详细流程图,请参见图3,其示出了 本申请提供的数控系统的数据处理方法的一种子流程图,可以包括以下 步骤:

步骤A11:判断Data1_full是否等于1。

判断Data1_full是否等于1,即判断第一缓冲区是否存满数据。

若Data1_full等于0,即第一缓冲区未存满数据,执行步骤A12,若 Data1_full等于1,即第一缓冲区已经存满了数据,执行步骤A16。

步骤A12:执行前瞻处理。

步骤A13:执行速度规划。

步骤A14:执行插补控制,得到位置控制数据。

步骤A15:将位置控制数据写入所述第一缓冲区,并返回执行步骤 A11。

在所述第一缓冲区存满数据时,不再将位置控制数据写入所述第一缓 冲区。。

步骤A16:判断Data2_full是否等于1。

判断Data2_full是否等于1即判断第二缓冲区是否存满数据。

若Data2_full等于1,即第二缓冲区存满数据,则返回执行步骤A11, 若Data2_full等于0,即第二缓冲区未存满数据,执行步骤A17。

步骤A17:将所述第一缓冲区中的位置控制数据写入所述第二缓冲 区。

在将所述第一缓冲区中的位置控制数据写入所述第二缓冲区结束后, 执行步骤A18。

步骤A18:将Data2_Use的值置为0。

将Data2_Use的值置为0,表征第二缓冲区未被占用。

在本实施例中,示出了步骤B的详细流程图,请参见图4,其示出了 本申请提供的数控系统的数据处理方法的另一种子流程图,可以包括以 下步骤:

步骤B11:在执行步骤A的过程中,若接收到中断信号,则判断 Data2_Use是否等于1。

判断Data2_Use是否等于1即判断第二缓冲区是否被占用。

若Data2_Use等于1即第二缓冲区被占用,则执行步骤B14,若Data2_Use 等于0即第二缓冲区未被占用,则执行步骤B12。

步骤B12:判断Data3_full是否等于1。

判断Data3_full是否等于1即判断第三缓冲区是否存满数据。

若Data3_full等于1即第三缓冲区存满数据,执行步骤B14,若Data3_full 等于0即第三缓冲区未存满数据,执行步骤B13。

步骤B13:将所述第二缓冲区中的位置控制数据存入所述第三缓冲区。

步骤B14:从第三缓冲区中读取所述中断信号对应的位置控制数据。

步骤B15:将所述中断信号对应的位置控制数据发送至所述第二芯片。

在上述方法实施例中,第一芯片具体可以但不局限于为DSP或ARM, 第二芯片具体可以但不局限于为FPGA或单片机。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动 作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均 属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

实施例二

在本实施例中,示出了本申请提供的一种运动控制系统的数据处理装 置,运动控制系统的数据处理装置包括第一芯片,请参见图5,图5示出 了本申请提供的第一芯片的一种结构示意图,第一芯片包括:第一缓冲 区51、第二缓冲区52、第三缓冲区53、第一处理模块54和第二处理模 块55。

其中,第一处理模块54包括计算单元541、第一写入单元542和第二 写入单元543。

计算单元541,用于在第一缓冲区未存满数据时,计算位置控制数据。

计算单元541具体可以包括:第一计算子单元和第二计算子单元,其中:

第一计算子单元,用于依次执行前瞻处理、速度规划和插补控制,得到 加工精度。

第二计算子单元,用于根据加工精度,得到位置控制数据。

第一写入单元542,用于在第一缓冲区未存满数据时将所述位置控制数 据写入所述第一缓冲区,直至所述第一缓冲区存满数据。

第二写入单元543,用于在所述第一缓冲区存满数据且所述第二缓冲区 未存满数据时,将所述第一缓冲区中的位置控制数据写入第二缓冲区。

第二处理模块55包括:判断单元551、读取单元552、发送单元553 和存入单元554。

判断单元551,用于在所述第一处理模块运行过程中,若接收到中断信 号,则判断所述第二缓冲区是否被占用,若是,依次执行读取单元552和发 送单元553,若否,依次执行存入单元554、所述读取单元552和所述发送 单元553。

所述读取单元552,用于从第三缓冲区中读取所述中断信号对应的位置 控制数据。

所述发送单元553,用于将所述中断信号对应的位置控制数据发送至第 二芯片。

存入单元554,用于在所述第三缓冲区未存满数据的情况下,将所述第 二缓冲区中的位置控制数据存入所述第三缓冲区。

存入单元554具体包括存入子单元,用于将所述第二缓冲区中的位置控 制数据以块拷贝的形式存入所述第三缓冲区。

实施例三

在本实施例中,示出了本申请提供的数控系统的数据处理系统,请 参见图6,其示出了本申请提供的运动控制系统的一种结构示意图,运动 控制系统至少包括:第一芯片61和第二芯片62。其中:

第一芯片61的具体结构及相关功能请参见实施例二所示出的第一芯片, 在此不再赘述。

所述第二芯片62,用于发送中断信号至所述第一芯片61,并接收所述 第一芯片61发送的位置控制数据。

在本实施例中,,所述第一芯片61可以但不局限于包括数字信号处理器 DSP或ARM。

所述第二芯片可以但不局限于包括现场可编程门阵列FPGA或单片机。

当然,图6示出的数控系统的数据处理系统还包括有ARM63,用于 将外部数据转换为数控系统可识别的NC代码及将位置控制数据返回给 用户界面显示。

在本实施例中,运动控制系统可以但局限于为数控系统或运动控制卡 或工业机器人。

请参见图7,示出了本申请提供的运动控制系统的一种执行示意图。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述, 每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间 相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法 实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不 一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺 序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的 包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括 那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种 过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下, 由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方 法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然, 在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

以上对本申请所提供的一种运动控制系统的数据处理方法、装置及运 动控制系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实 施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法 及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想, 在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内 容不应理解为对本申请的限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号