首页> 中国专利> 运动控制系统、时钟同步方法、运动控制方法和介质

运动控制系统、时钟同步方法、运动控制方法和介质

摘要

本发明公开了一种运动控制系统,包括有主控制器、多个运动控制部件,每个运动控制部件包括有数据解析模块、时钟源,主控制器根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;数据解析模块解析计数起始数据帧得到计数起始信号、解析计数结束数据帧得到计数结束信号;计数器根据计数起始信号和计数结束信号对所述时钟源产生的时钟进行计数,得到计数值;主控制器还将多个运动控制部件得到的计数值进行归一化计算处理,得到与每个所述运动控制部件对应的归一化系数,并依据归一化系数和运动部件控制参数控制运动部件运动。本发明提供的运动控制系统使多个时钟源之间的误差收敛,同步效果更好。

著录项

  • 公开/公告号CN108983692A

    专利类型发明专利

  • 公开/公告日2018-12-11

    原文格式PDF

  • 申请/专利权人 北京镁伽机器人科技有限公司;

    申请/专利号CN201710411823.7

  • 发明设计人 丁新宇;

    申请日2017-06-05

  • 分类号

  • 代理机构北京挺立专利事务所(普通合伙);

  • 代理人王震秀

  • 地址 102208 北京市昌平区回龙观东大街338号创客广场3层B座302室

  • 入库时间 2023-06-19 07:43:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-21

    授权

    授权

  • 2019-01-04

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

    实质审查的生效

  • 2018-12-11

    公开

    公开

说明书

技术领域

本发明涉及运动控制领域,具体是一种运动控制系统、一种时钟同步方法、一种运动控制方法和一种存储有计算机程序的计算机可读介质。

背景技术

在运动控制领域,电机或电磁阀等运动部件通常是作为运动控制系统中的运动执行部件、实现各自的运动功能。

以电机为例,电机是机器人(例如机械臂)中的关键运动部件,机械臂(或者叫机械手)是工业领域最常用到的一种多轴机器人(或称为多关节机器人),其主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。

现在市场上的多轴机器人主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),他们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。

用户对机器人的控制是通过客户端实现的,客户端通常是安装有上位机的电脑,电脑通过CAN总线等线缆连接到机器人的运动控制部件(或称为控制器等),运动控制部件控制电机的运动。

结合参考附图1,附图1示出了一种运动控制系统100,运动控制系统100包括有电脑101、机器人103、CAN数据线102,其中机器人103包括CAN数据收发模块(附图1中未示出)、微控制器(MCU)104、电机驱动模块105、电机106,电脑101通过CAN数据线102连接到机器人103的CAN数据收发模块,CAN数据收发模块再连接到微控制器104,微控制器104连接到电机驱动模块105,电机驱动模块105连接到电机106。

其中,电脑101主要实现人机交互的功能,用户可以通过电脑101设置机器人103的各项参数,例如机器人103的末端执行器的移动方位、时间、速度等,电脑101将用户设置的参数转换为CAN总线数据,并通过CAN总线102配置给机器人103。

CAN总线是一种标准总线,广泛应用于汽车电子、工业控制、运动控制等领域,CAN总线数据具有固定的格式,一般具有11位或29位(扩展型),CAN数据线102可以是双绞线或同轴线等,结合参考附图2,附图2示出了CAN总线数据的基本格式,CAN总线数据包括有帧起始SF、仲裁场、控制场、数据场、校验场CRC、应答场ACK、帧结束。

电脑101与机器人103之间一般还设置有网关,网关用于实现电脑101和机器人103之间的协议转换,例如电脑101通过USB接口连接到网关,网关通过CAN数据线连接到机器人103,网关实现了USB和CAN之间的协议转换。

机器人103的CAN数据收发模块接收到电脑101通过CAN数据线102传输来的CAN总线数据,并将CAN总线数据进行电平转换,然后将电平转换后的数据传送给微处理器104。

微处理器104一般采用DSP芯片或ARM芯片等实现,将CAN数据收发模块传送来的CAN总线数据进行解析,微处理器104解析CAN总线数据时首先解析帧起始、然后解析仲裁场、然后解析控制场、然后解析数据场、然后生成校验数据(对应校验场),校验数据正确后微处理器104需要生成应答数据(对应应答场),并将应答数据通过CAN数据收发模块进行电平转换后发送给电脑101,一旦运动控制系统100包括有多个微处理器104时(例如一个四轴机器人可能有4个微处理器104,或者一条产线包括有多个机器人),微处理器104需要分别返回应答数据给电脑101,一旦多个微处理器104都返回应答数据,微处理器104只有等到所有应答数据返回给电脑101后,电脑101才最终将帧结束数据发送给微处理器104,该微处理器104才能将解析得到的控制数据生成电机启动信号并发送给电机驱动模块105。

电机驱动模块105根据接收到的电机启动信号驱动电机106开始运动,运动控制系统100包括有多个机器人103时,多个机器人103同时开始同样的运动。

由于每个机器人103、甚至机器人103的每个关节需要有一套单独的运动控制部件(包括有CAN数据收发模块、微控制器104、电机驱动模块105等),每个运动控制部件上需设置有一个时钟源107,时钟源107用于对微控制器104、电机驱动模块105等提供基准时钟,例如时钟源107采用10MHz晶振实现。

当运动控制系统100包括有多个运动控制部件时,每个运动控制部件上的时钟源107之间存在有系统误差,时钟源107一般用晶振实现,例如一款市场上公开的晶振标注的参数为:额定频率(Nominal frequency range)为10MHz,频率偏差(Frequency tolerance)为20ppm(百万分之一),即频率误差为±200Hz,那么该晶振的实际频率范围是:9.9998MHz-10.0002MHz,换算成时间的话,一天(24小时)的偏差可为1.728秒,但由于受晶振本身和温度等原因影响,晶振的误差又不是统一的,当运动控制系统100包括有多个独立的晶振时、各个系统之间的误差大小不一,会使得各个运动控制部件之间的同步性很差。

除了机器人103上应用电机106、需要实现对电机106的同步控制,在很多生命科学仪器上会应用到电磁隔离阀,夹管阀,电磁隔膜泵等产品、需要实现对这类产品的同步控制,一旦采用多个晶振分别作为各自的时钟源时,每个时钟源之间存在大小不一的误差。

随着技术的发展,工业上对机器人的同步要求越来越高,时钟源之间的同步误差已成为限制运动控制领域的同步效果的问题之一。

发明内容

为了解决上述技术问题,本发明提供了一种运动控制系统,本发明提供的运动控制系统将各个时钟源之间的误差进行归一化处理,得到各自的归一化系数,然后将各自的归一化系数应用到运动控制过程中,降低了各个时钟源之间的误差带来的同步误差。

一种运动控制系统,包括有主控制器、多个运动控制部件,每个运动控制部件包括有数据解析模块、时钟源,

所述主控制器连接到每个运动控制部件的数据解析模块的第一通信端,所述每个运动控制部件的时钟源的输出端分别与对应的数据解析模块时钟端连接;

所述每个运动控制部件还包括有计数器,所述每个运动控制部件的数据解析模块的第二通信端与对应的计数器连接,所述每个运动控制部件的时钟源的输出端还分别于对应的计数器的时钟端连接;

所述主控制器,用于根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;

所述数据解析模块,用于解析所述计数起始数据帧得到计数起始信号、解析所述计数结束数据帧得到计数结束信号;

所述计数器,用于根据所述计数起始信号和所述计数结束信号对所述时钟源产生的时钟进行计数,得到计数值;

所述主控制器,还用于将所述多个运动控制部件得到的计数值进行归一化计算处理,得到与每个所述运动控制部件对应的归一化系数,并依据所述归一化系数和所述运动部件控制参数控制运动部件运动。

本发明所述的运动控制系统包括有一个主控制器和多个运动控制部件,在每个运动控制部件上设置有计数器、以实现对时钟进行计数,当用户通过人机交互模块设定运动控制部件(或运动部件、或机器人等)的运动部件控制参数后,主控制器首先根据用户设定的参数产生计数起始数据帧,并将所述计数起始数据帧发送给数据解析模块,所述数据解析模块解析接收到的计数起始数据帧、产生计数起始信号,以控制计数器对时钟源产生的时钟开始进行计数;等待一个阈值时间后,主控制器在产生计数结束数据帧,并将所述计数结束数据帧发送给所述数据解析模块,所述数据解析模块解析接收到的计数结束数据帧、产生计数结束信号,以控制计数器对时钟源产生的时钟结束计数,并将计数值返回给所述主控制器,所述主控制器分别获得了每个运动控制部件上的计数器在同一阈值时间内的一组计数值,由于各个时钟源的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值;所述主控制器得到一组计数值后,将得到的计数值进行归一化计算处理,然后得到一组归一化系数,将该归一化系数应用到运动部件的控制参数里,可以使得每个时钟源产生的时钟的大小不一的误差收敛,使得时钟误差的范围降低,提高了不同运动控制部件之间的同步效果。

作为一种举例说明,本发明的运动控制系统中,所述主控制器与所述每个数据解析模块之间通过CAN协议通信。

作为又一举例说明,本发明的运动控制系统中,所述数据解析模块包括有微控制器和可编程逻辑器件,其中所述微控制器,用于解析所述主控制器产生的计数起始数据帧,产生对应的应答数据并返回给所述主控制器;还用于解析所述主控制器产生的计数结束数据帧,产生对应的应答数据并返回给所述主控制器;所述可编程逻辑器件,用于解析所述主控制器产生的计数起始数据帧,得到校验数据后、产生所述计数起始信号;还用于解析所述主控制器产生的计数结束数据帧,得到校验数据后、产生所述计数结束信号。

作为又一举例说明,本发明的运动控制系统中,所述可编程逻辑器件和所述计数器由同一片FPGA型可编程逻辑芯片实现。

作为又一举例说明,本发明的运动控制系统中,所述主控制器将所述多个运动控制部件得到的计数值进行归一化计算处理,得到与每个所述运动控制部件对应的归一化系数为:根据如下公式计算得到:

Mn=N0/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是任一运动控制部件在阈值时间T0内的计数值。

作为又一举例说明,本发明的运动控制系统中,所述主控制器依据所述归一化系数和所述运动部件控制参数控制运动部件运动为:所述主控制器将所述归一化系数分别发送给对应的每个运动控制部件的数据解析模块;所述主控制器还根据用户输入的运动部件控制参数产生运动部件控制数据帧;所述数据解析模块解析所述运动部件控制数据帧、得到对应的时间数据,将所述归一化系数与所述时钟源的时钟频率理论值相乘、得到修正时钟频率值,并依据所述修正时钟频率值和所述时间数据控制所述运动部件运动。

为了解决上述技术问题,本发明还提供了一种时钟同步方法,本发明提供的时钟同步方法将各个时钟源之间的误差进行归一化处理,得到各自的归一化系数,然后将各自的归一化系数应用到运动控制过程中,降低了各个时钟源之间的误差带来的同步误差。

本发明提供的时钟同步方法,应用到本发明所述的运动控制系统中,包括:

主控制器根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;

数据解析模块解析所述计数起始数据帧得到计数起始信号、解析所述计数结束数据帧得到计数结束信号;

计数器根据所述计数起始信号和所述计数结束信号对时钟源产生的时钟进行计数,得到计数值;

所述主控制器将多个运动控制部件得到的计数值进行归一化计算处理,得到与每个所述运动控制部件对应的归一化系数,并依据所述归一化系数和所述运动部件控制参数控制运动部件运动。

本发明提供的时钟同步方法应用于运动控制系统中,运动控制系统包括有一个主控制器和多个运动控制部件,在每个运动控制部件上设置有计数器、以实现对时钟进行计数,当用户通过人机交互模块设定运动控制部件(或运动部件、或机器人等)的运动部件控制参数后,主控制器首先根据用户设定的参数产生计数起始数据帧,并将所述计数起始数据帧发送给数据解析模块,所述数据解析模块解析接收到的计数起始数据帧、产生计数起始信号,以控制计数器对时钟源产生的时钟开始进行计数;等待一个阈值时间后,主控制器在产生计数结束数据帧,并将所述计数结束数据帧发送给所述数据解析模块,所述数据解析模块解析接收到的计数结束数据帧、产生计数结束信号,以控制计数器对时钟源产生的时钟结束计数,并将计数值返回给所述主控制器,所述主控制器分别获得了每个运动控制部件上的计数器在同一阈值时间内的一组计数值,由于各个时钟源的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值;所述主控制器得到一组计数值后,将得到的计数值进行归一化计算处理,然后得到一组归一化系数,将该归一化系数应用到运动部件的控制参数里,可以使得每个时钟源产生的时钟的大小不一的误差都向同一个值收敛,使得时钟误差的范围降低,提高了不同运动控制部件之间的同步效果。

作为一种举例说明,本发明提供的时钟同步方法中,所述主控制器将多个运动控制部件得到的计数值进行归一化计算处理、得到与每个所述运动控制部件对应的归一化系数为:根据如下公式计算得到:

Mn=N0/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是任一运动控制部件在阈值时间T0内的计数值。

作为又一举例说明,本发明提供的时钟同步方法中,所述主控制器依据所述归一化系数和所述运动部件控制参数控制运动部件运动为:所述主控制器将所述归一化系数分别发送给对应的每个运动控制部件的数据解析模块;所述主控制器还根据用户输入的运动部件控制参数产生运动部件控制数据帧;所述数据解析模块解析所述运动部件控制数据帧、得到对应的时间数据,将所述归一化系数与所述时钟源的时钟频率理论值相乘、得到修正时钟频率值,并依据所述修正时钟频率值和所述时间数据控制所述运动部件运动。

为了解决上述技术问题,本发明还提供了一种运动控制方法,本发明提供的运动控制方法将多个时钟源之间的误差进行归一化处理,得到各自的归一化系数,然后将各自的归一化系数应用到运动控制过程中,降低了各个时钟源之间的误差带来的同步误差。

本发明提供的运动控制方法包括:

根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;

将所述计数起始数据帧和所述计数结束数据帧分时发送给一组控制器,以控制一组计数器分别对一组时钟源进行计数;

获取所述一组计数器的一组计数值;

对所述一组计数值进行归一化计算处理,得到与所述计数器对应的一组归一化系数;

将所述一组归一化系数分别发送给所述一组控制器,使所述每个控制器依据接收到的归一化系数和所述运动部件控制参数控制运动部件运动。

本发明提供的运动控制方法首先根据用户输入的运动部件控制参数产生计数起始数据帧,并将计数起始数据帧发送给一组控制器,每个控制器分别控制各自的计数器对各自的时钟源开始计数;等待一个阈值时间后还产生计数结束数据帧,并将计数结束数据帧发送给所述一组控制器,每个控制器分别控制各自的计数器结束计数;然后获取这一组计数器的计数值,即获得了一组计数器在同一阈值时间内的一组计数值,由于各个时钟源的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值;;然后对这一组计数器的计数值进行归一化计算处理,得到与所述计数器对应的一组归一化系数;将该归一化系数应用到运动部件的控制参数里,可以使得每个时钟源产生的时钟的大小不一的误差都向同一个值收敛,使得时钟误差的范围降低,提高了同步效果。

为了解决上述技术问题,本发明还提供了一种存储有计算机程序的计算机可读介质,本发明提供的计算机可读介质中的计算机程序供处理器运行时,可将多个时钟源之间的误差进行归一化处理,得到各自的归一化系数,然后将各自的归一化系数应用到运动控制过程中,降低了各个时钟源之间的误差带来的同步误差。

本发明提供的计算机可读介质包括有:一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行以执行如下步骤:

根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;

将所述计数起始数据帧和所述计数结束数据帧发送给一控制器,以控制一组计数器分别对一组时钟源进行计数;

获取所述一组计数器的一组计数值;

对所述一组计数值进行归一化计算处理,得到与所述计数器对应的一组归一化系数;

将所述一组归一化系数分别发送给所述一组控制器,使所述每个控制器依据接收到的归一化系数和所述运动部件控制参数控制运动部件运动。

本发明提供的计算机可读介质中存储有计算机程序,所述计算机程序可被一个或多个处理器运行,当所述计算机可读介质被处理器运行以执行操作时,首先根据用户输入的运动部件控制参数产生计数起始数据帧,并将计数起始数据帧发送给一组控制器,每个控制器分别控制各自的计数器对各自的时钟源开始计数;等待一个阈值时间后还产生计数结束数据帧,并将计数结束数据帧发送给所述一组控制器,每个控制器分别控制各自的计数器结束计数;然后获取这一组计数器的计数值,即获得了一组计数器在同一阈值时间内的一组计数值,由于各个时钟源的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值;;然后对这一组计数器的计数值进行归一化计算处理,得到与所述计数器对应的一组归一化系数;将该归一化系数应用到运动部件的控制参数里,可以使得每个时钟源产生的时钟的大小不一的误差都向同一个值收敛,使得时钟误差的范围降低,提高了同步效果。

本发明提供的运动控制系统、时钟同步方法、运动控制方法、计算机可读介质将各个时钟源之间的误差进行归一化处理,得到各自的归一化系数,然后将各自的归一化系数应用到运动控制过程中,降低了各个时钟源之间的误差带来的同步误差,提高了同步效果。

附图说明

图1是本发明的背景技术中运动控制系统100的原理框图;

图2是本发明的CAN总线数据格式示意图;

图3是本发明的运动控制系统200的原理框图;

图4是本发明的运动控制系统200的又一原理框图

图5是本发明的时钟同步方法300的流程图;

图6是本发明的运动控制方法400的流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

结合参考附图3,附图3示出了一种运动控制系统200,运动控制系统200包括有主控制器201、多个运动控制部件202(附图3中示出了2个),每个运动控制部件200包括有数据解析模块203、时钟源204、计数器205等,主控制器201的通信端连接到数据解析模块203的第一通信端,数据解析模块203的第二通信端连接到计数器205的通信端,时钟源204的输出端分别连接到数据解析模块203的时钟端和计数器205的时钟端,数据解析模块203的输出端输出运动部件控制信号。

工作时,首先将运动控制系统200上电通信,时钟源204为数据解析模块203和计数器205提供工作时钟,主控制器201和数据解析模块203建立通信。

然后用户根据自己的需求首先设定运动控制系统200的各项控制参数,主控制器201将用户设定的参数转化为通信数据,以便与运动控制部件202进行通信。

当用户设定了控制参数后,主控制器201并不直接将控制参数发送给运动控制部件202控制运动部件运动,而是首先产生一帧计数起始数据帧,将计数起始数据帧发送给所有的数据解析模块203,数据解析模块203接收到计数起始数据帧、并解析计数起始数据帧为其可识别的数据格式,得到计数起始信号,然后控制计数器205对时钟源204发送来的时钟开始计数。

主控制器201记录一个阈值时间T0,在该阈值时间T0内,使运动控制部件202保持自身状态,或实现一定的控制功能、控制运动部件进行一系列运动。

然后主控制器201产生一帧计数结束数据帧,将计数结束数据帧发送给所有的数据解析模块203,数据解析模块203接收到计数结束数据帧、并解析数据结束数据帧为其可识别的数据格式,得到计数结束信号,然后控制计数器205结束对时钟源204的计数,并读取计数器205的计数结果Nn

数据解析模块203将读取的计数结果Nn发送给主控制器201,主控制器201读取到所有运动控制部件202上的计数器205的计数结果,得到一组计数值Nn,n为多个运动控制部件202的编号。

主控制器201接收到一组计数值Nn后,将这一组计数值Nn进行归一化计算处理,归一化计算是指将一组具有一定误差的数组以任一计数值(或者常量、或者标准量等)为基准做除法运算,得到一组归一化系数,这组归一化系数中系数越大、表示该系数对应的时钟源的频率越高,得到这一组归一化系数后、将归一化系数应用于运动部件控制参数中,依据归一化系数和运动部件控制参数控制运动部件的运动。

本发明通过一个计数器205来采集一段时间内的每个时钟源204的计数结果,得到一组计数值,这组计数值表征了一段时间内时钟源204的实际频率,将这一组计数值进行归一化计算可以得到每个时钟源204单位时间内对应的修正系数、即归一化系数,在控制运动部件时、可以将这一组系数应用到对应的运动部件中,可以将所述归一化系数与所述时钟源的时钟频率理论值相乘、得到修正时钟频率值,以修正时钟源204的误差,使得每个时钟源204之间的误差降低、整个系统的同步误差降低,同步效果会更好。

在本实施例中,作为一种举例说明,结合参考附图4,运动控制系统200是一种机器人控制系统,主控制器201为电脑客户端,运动控制部件202为电机驱控器,运动部件为步进电机209,数据解析模块203包括有微控制器206和FPGA型可编程逻辑芯片207(简称FPGA),在数据解析模块203和电机209之间还设置有电机驱动模块208,计数器205是由FPGA内部的计数器实现,主控制器201和微控制器206和FPGA207之间通过遵循CAN协议的CAN数据线210通信。

每个机器人控制系统可以包含多个机器人,每个机器人上均设置有至少一个运动控制部件202和对应的电机209,每个电机209可以驱动一个关节,每个运动控制部件202可以是驱动一个电机209的单轴运动控制部件,也可以是驱动多个电机209的多轴运动控制部件,例如四轴机器人具有四个关机,即具有四个电机209,工作时需要四个电机209协同工作、共同驱动四轴机器人运动。

当机器人控制系统需要多个机器人同步工作时,例如在一条产线上需要多个机器人完成同样的动作、且保证同步性,以实现效率最大化,此时需要主控制器201同步驱动多个电机209运动。

在本实施例中,主控制器201采用电脑实现,电脑作为客户端,实现运动控制系统200和人的交互,用户通过电脑设置运动控制系统200的参数,并生成对应的CAN总线数据,比如电机启动数据、计数数据、机器人运动数据(电机运动数据)等。

CAN数据线210可以是各种现有的CAN总线形式,其一般只需要两根数据线即可实现主控制器201和运动控制部件202之间的连接。在CAN数据线210和主控制器201之间一般还设置有网关,例如USB-CAN网关,可以实现主控制器201和CAN总线之间的协议转换。

运动控制部件202上设置有CAN数据收发模块(附图中未示出),CAN数据线210与CAN数据收发模块直接连接,CAN数据线210将CAN总线数据传送给CAN数据收发模块,然后CAN数据收发模块再将接收到的数据进行电平转换,转换为符合微控制器206和FPGA207等运算的数据,并通过广播的形式向所有与其连接的微控制器206和FPGA207发送经电平转换后的数据。

微控制器206可以是由DSP芯片实现,微控制器206从CAN数据收发模块发送的数据中接收数据并解析,请参考附图2,CAN总线数据的格式包括有帧起始SF、仲裁场、控制场、数据场、校验场CRC、应答场ACK、帧结束等,根据CAN总线协议的要求,微控制器206在解析到校验场的校验数据后、需要产生对应的应答数据(对应应答场),并将应答数据发送给CAN数据收发模块进行电平转换、再发送给主控制器201,主控制器201接收到应答数据后再次发送帧结尾数据,之后微控制器206才能对解析得到的电机识别符和运动数据进行后续处理。

FPGA207与微控制器206一样从CAN数据收发模块发送的数据中接收数据并解析,与微控制器206不同的是,FPGA 207在解析得到校验位数据后可以不产生应答数据并返回给CAN数据收发模块,而是可以直接产生控制信号、以驱动电机209运动、或做其他动作。

电机驱动模块208一般是由电机驱动芯片实现,可以将FPGA207产生的电机启动脉冲转换为驱动信号、驱动电机209运动。

时钟源204一般是由晶振构成,可以向运动控制部件202上的所有器件提供工作时钟,例如微控制器206和FPGA等的工作时钟就是由时钟源204提供。例如可以采用市场上公开的一款晶振,标注的参数为:额定频率(Nominal frequency range)为10MHz,频率偏差(Frequency tolerance)为20ppm(百万分之一),即频率误差为±200Hz,那么该晶振的实际频率范围是:9.9998MHz-10.0002MHz。

计数器205在本实施例中是由FPGA中的计数器模块实现,这样可以节约资源、同时也能满足计数的需求。

当用户需要同步驱动多个电机209运动时(或者需要同步驱动多个机器人做同样的运动时),用户通过主控制器201的人机交互模块进行参数配置,配置电机209的控制参数(或者是配置机器人的控制参数、再将机器人的控制参数转换为电机209的控制参数)。

配置参数完成后,主控制器201首先不将用户配置的控制参数下发给运动控制部件202,而是首先产生一帧计数起始数据帧,计数起始数据帧中包含有计数器计数起始数据,主控制器201将这一帧数据以广播的形式通过CAN数据线210发送给所有连接到该CAN数据线的运动控制部件202,运动控制部件202上的CAN数据收发模块对该帧数据进行电平转换,转换后传输给微控制器206和FPGA207。

微控制器206接收该帧数据后进行解析,当解析到校验数据后生成应答数据,并将应答数据通过CAN数据收发模块返回给主控制器201,而FPGA接收到该数据后也进行解析,当解析到校验数据后直接生成计数启动信号、驱动计数器开始对时钟源204产生的时钟信号进行计数。

主控制器201在等待一个阈值时间T0后,再产生一帧计数结束数据帧,并通过CAN数据线210发送给所有的运动控制部件202,运动控制部件202上的CAN数据收发模块对该帧数据进行电平转换,转换后传输给微控制器206和FPGA207。

微控制器206接收该帧数据后进行解析,当解析到校验数据后生成应答数据,并将应答数据通过CAN数据收发模块返回给主控制器201,而FPGA接收到该数据后也进行解析,当解析到校验数据后直接生成计数结束信号、驱动计数器结束对时钟源204产生的时钟信号的计数。

计数结束后,FPGA207读取计数结果为对应的计数值Nn,所有的运动控制部件202上的FPGA207都将对应的计数值Nn通过CAN数据线210发送给主控制器201,主控制器201获得了每个运动控制部件202上的计数器205在同一时间阈值范围内对时钟源204的计数值Nn,由于各个时钟源204的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值Nn

主控制器201收到一组计数值Nn后,将这一组计数值Nn进行归一化计算处理,归一化计算是指将一组具有一定误差的数组以一个标准量(或者常量)为基准做除法运算,得到一组归一化系数,本实施例中可以采用以下公式进行归一化计算:

Mn=N0/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是任一运动控制部件在阈值时间T0内的计数值。

其中,T0=Pn*Nn=P0*N0,Pn=P0*Mn,Pn是第n号运动控制部件的时钟源的时钟周期值;P0是任一运动部件的时钟源的时钟周期值。

上述计算方法是将任意一个计数器的计数值N0作为计算基准,将其他计数器的计数值以这一基准做除法运算,可以得到其他计数器和这一被选定的计数器的计数值之间的误差系数,作为归一化系数。

主控制器201计算得到对应的一组归一化系数Mn后,将对应的归一化系数Mn分别发送给每个运动控制部件202,运动控制部件202接收到对应的归一化系数Mn后、可以存储到存储器中。

运动控制部件202接收到归一化系数Mn后,可以将归一化系数Mn与时钟源204的时钟频率理论值相乘,可以得到时钟源204的时钟频率修正值,然后将这一时钟频率修正值存储到存储器中。

然后主控制器201可以根据用户设置的运动部件控制参数来生成对应的运动数据,并将运动数据发送给所有的运动控制部件202(或机器人),微控制器206和FPGA207解析运动数据,得到每个电机209的控制数据,并将时钟频率修正值应用到电机209的控制数据中,修正时钟源204带来的误差,使得运动控制系统200中的所有运动控制部件202(或机器人)的同步误差减小。

作为一种变形,运动控制系统200还可以是流体控制系统,流体控制系统通过电磁阀(例如电磁隔离阀、夹管阀、电磁隔膜泵等)实现流体控制。

此时,运动部件为电磁阀,运动部件驱动模块为电磁阀驱动模块,运动部件启动数据位电磁阀启动数据,运动部件启动脉冲为电磁阀启动脉冲,用户可以通过主控制器201实现对电磁阀的开合的控制,以实现对经过电磁阀的流体的控制。

在本实施例中,主控制器201是由电脑实现,用户可以通过电脑进行人机交互、设置参数、归一化计算等。

作为一种变形,客户端也可以采用服务器实现,还可以采用虚拟机实现,等等。

作为又一种变形,客户端也可以采用集成有电脑、网关等模块的工业控制台实现。

在本实施例中,主控制器201和运动控制部件202之间遵循CAN协议通信。

作为一种变形,主控制器201和运动控制部件202之间还可以遵循RS485协议、EtherCAT协议、DeviceNet协议等其他通信协议。

在本实施例中,数据解析模块203是由微控制器206和FPGA207共同实现的,计数器205是FPGA207内部的计数模块实现。

作为一种变形,数据解析模块203也可以仅有微控制器206实现,计数器205可以通过外部单独的计数器实现,由微控制器206控制。

作为又一种变形,数据解析模块203也可以仅有FPGA207实现,计数器205可以是FPGA207内部的计数模块,也可以是外部单独的计数器实现。

作为又一种变形,微控制器206还可以是由ARM芯片实现,还可以由51单片机等实现。

作为又一种变形,可编程逻辑器件还可以采用CPLD型可编程逻辑芯片实现,还可以采用内嵌有ARM内核和FPGA内核的综合芯片实现,等等。

作为一种变形,主控制器201在进行归一化计算处理时,还可以采用其他归一化计算公式处理,例如:

Mn=N’/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是所有运动控制部件在阈值时间T0内的计数值的平均值或中数值或最大值或最小值等等。

作为又一种变形,N’还可以是所有计数值的中间值、或最大值、或最小值等等。

作为又一种变形,主控制器201在进行归一化计算处理时,还可以采用其他归一化计算公式处理,例如:

Mn=Nn/N’

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是所有运动控制部件在阈值时间T0内的计数值的平均值或中数值或最大值或最小值等等。

此时计算得到归一化系数Mn后,可以将该归一化系数与时钟源的时钟周期值相乘,得到修正后的时钟周期值,然后利用修正后的时钟周期值控制运动部件。

作为说明,在具体应用中,阈值时间T0的值越大、得到的归一化系数越准确、精确,对电机参数的修正越精确,但需要的时间也越多。在实际应用中,可以将阈值时间T0允许用户根据自身需要进行设定,也可以在运动控制系统200中限定为具体的值,例如5秒。

作为又一个实施例,本发明还提供了一种时钟同步方法300,结合参考附图5,时钟同步方法300应用于运动控制系统200上,时钟同步方法包括有步骤:

步骤301:主控制器201根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间T0后产生计数结束数据帧;

步骤302:数据解析模块203解析所述计数起始数据帧得到计数起始信号、解析所述计数结束数据帧得到计数结束信号;

步骤303:计数器205根据所述计数起始信号和所述计数结束信号对时钟源204产生的时钟进行计数,得到计数值Nn

步骤304:所述主控制器将多个运动控制部件202得到的计数值Nn进行归一化计算处理,得到与每个所述运动控制部件对应的归一化系数Mn,并依据所述归一化系数Mn和所述运动部件控制参数控制运动部件(本实施例为电机209)运动。

在本实施例中,当用户需要同步驱动多个电机209运动时(或者需要同步驱动多个机器人做同样的运动时),用户通过主控制器201的人机交互模块进行参数配置,配置电机209的控制参数(或者是配置机器人的控制参数、再将机器人的控制参数转换为电机209的控制参数)。

配置参数完成后,主控制器201首先不将用户配置的控制参数下发给运动控制部件202,而是首先产生一帧计数起始数据帧,计数起始数据帧中包含有计数器计数起始数据,主控制器201将这一帧数据以广播的形式通过CAN数据线210发送给所有连接到该CAN数据线的运动控制部件202,运动控制部件202上的CAN数据收发模块对该帧数据进行电平转换,转换后传输给微控制器206和FPGA207。

微控制器206接收该帧数据后进行解析,当解析到校验数据后生成应答数据,并将应答数据通过CAN数据收发模块返回给主控制器201,而FPGA接收到该数据后也进行解析,当解析到校验数据后直接生成计数启动信号、驱动计数器开始对时钟源204产生的时钟信号进行计数。

主控制器201在等待一个阈值时间T0后,再产生一帧计数结束数据帧,并通过CAN数据线210发送给所有的运动控制部件202,运动控制部件202上的CAN数据收发模块对该帧数据进行电平转换,转换后传输给微控制器206和FPGA207。

微控制器206接收该帧数据后进行解析,当解析到校验数据后生成应答数据,并将应答数据通过CAN数据收发模块返回给主控制器201,而FPGA接收到该数据后也进行解析,当解析到校验数据后直接生成计数结束信号、驱动计数器结束对时钟源204产生的时钟信号的计数。

计数结束后,FPGA207读取计数结果为对应的计数值Nn,所有的运动控制部件202上的FPGA207都将对应的计数值Nn通过CAN数据线210发送给主控制器201,主控制器201获得了每个运动控制部件202上的计数器205在同一时间阈值范围内对时钟源204的计数值Nn,由于各个时钟源204的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值Nn

主控制器201收到一组计数值Nn后,将这一组计数值Nn进行归一化计算处理,归一化计算是指将一组具有一定误差的数组以一个标准量(或者常量)为基准做除法运算,得到一组归一化系数,本实施例中可以采用以下公式进行归一化计算:

Mn=N0/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是任一运动控制部件在阈值时间T0内的计数值。

主控制器201计算得到对应的一组归一化系数Mn后,将对应的归一化系数Mn分别发送给每个运动控制部件202,运动控制部件202接收到对应的归一化系数Mn后、可以存储到存储器中。

运动控制部件202接收到归一化系数Mn后,可以将归一化系数Mn与时钟源204的时钟频率理论值相乘,可以得到时钟源204的时钟频率修正值,然后将这一时钟频率修正值存储到存储器中。

然后主控制器201可以根据用户设置的运动部件控制参数来生成对应的运动数据,并将运动数据发送给所有的运动控制部件202(或机器人),微控制器206和FPGA207解析运动数据,得到每个电机209的控制数据,并将时钟频率修正值应用到电机209的控制数据中,修正时钟源204带来的误差,使得运动控制系统200中的所有运动控制部件202(或机器人)的同步误差减小。

应当说明的是,在本实施例中,步骤301-304之间并不具有必然的时间先后顺序关系,例如当步骤301中主控制器201产生计数起始数据帧后、首先将该数据帧发送给数据解析块203解析,且控制计数器205对时钟源204开始计数;等待一个阈值时间T0后,主控制器201再发送计数结束数据帧给数据解析模块203进行解析、并结束计数,得到计数值Nn

作为又一实施例,本发明还提供一种运动控制方法400,结合参考附图6,运动控制方法400包括有步骤:

步骤401:根据用户输入的运动部件控制参数产生计数起始数据帧、并在等待一阈值时间后产生计数结束数据帧;

步骤401是在用户启动本发明的运动控制方法400后,首先产生一个计数起始数据帧和一个计数结束数据帧,利用计数起始数据帧和计数结束数据帧控制计数器对时钟源产生的时钟进行计数,并记录阈值时间。

步骤402:将所述计数起始数据帧和所述计数结束数据帧分时发送给一组控制器,以控制一组计数器分别对一组时钟源进行计数;

每个控制器可以控制一组计数器和时钟源,每个控制器也可以同时控制多组计数器和时钟源、实现并行控制。

控制器根据计数起始数据帧和计数结束数据帧来控制计数器计数,得到一组计数值。

步骤403:获取所述一组计数器的一组计数值;

本步骤中,获取每个计数器计数得到的计数值,形成一个数组或数据库。

步骤404:对所述一组计数值进行归一化计算处理,得到与所述计数器对应的一组归一化系数;

本步骤中,对得到的一组计数值进行归一化计算,归一化计算的方法有很多,归一化计算是指将一组具有一定误差的数组以一个标准量(或者常量)为基准做除法运算,得到一组归一化系数,例如可以采用以下公式进行归一化计算:

Mn=N0/Nn

其中,

n是对应的运动控制部件编号,n为正整数;

T0是所述阈值时间;

Mn是第n号运动控制部件的归一化系数;

Nn是第n号运动控制部件在阈值时间T0内的计数值;

N0是任一运动控制部件在阈值时间T0内的计数值。

步骤405:将所述一组归一化系数分别发送给所述一组控制器,使所述每个控制器依据接收到的归一化系数和所述运动部件控制参数控制运动部件运动;

本步骤中,利用计算得到的归一化系数对后续的控制数据进行修正,可以将归一化系数Mn与时钟源204的时钟频率理论值相乘,可以得到时钟源204的时钟频率修正值,然后将时钟频率修正值作为实际时钟值控制运动部件的运动,这可以将所有时钟源的误差进行收敛,缩小他们之间的误差,使得同步效果更好。

本发明还提供一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行以执行运动控制方法400。

应当说明的是,在本实施例中,步骤401-405之间并不具有必然的时间先后顺序关系,例如当步骤401中产生计数起始数据帧后、首先将该数据帧发送给一组控制器解析,且控制计数器对时钟源开始计数;等待一个阈值时间后,再发送计数结束数据帧给这一组控制器进行解析、并结束计数,得到计数值。

应当理解的是,本发明提供的运动控制方法400的具体实现形式可以是在一台计算机上、或者是一个或多个处理器上、或者是一台工业控制设备上、或者是一套由上位机和机器人等构成的运动控制系统上,等等。

应当理解的是,本发明提供的计算机可读介质可以是供在一台计算机上可运行的、或者是在一个或多个处理器上可运行的、或者是在一台工业控制设备上可运行的、或者是一套由上位机和机器人等构成的运动控制系统上可运行的,等等。

本发明提供的运动控制系统200、时钟同步方法300、运动控制方法400和计算机可读介质,当用户通过人机交互模块设定运动控制部件(或运动部件、或机器人等)的运动部件控制参数后,首先根据用户设定的参数产生计数起始数据帧,并将所述计数起始数据帧发送给数据解析模块,所述数据解析模块解析接收到的计数起始数据帧、产生计数起始信号,以控制计数器对时钟源产生的时钟开始进行计数;等待一个阈值时间后,主控制器在产生计数结束数据帧,并将所述计数结束数据帧发送给所述数据解析模块,所述数据解析模块解析接收到的计数结束数据帧、产生计数结束信号,以控制计数器对时钟源产生的时钟结束计数,并将计数值返回给所述主控制器,所述主控制器分别获得了每个运动控制部件上的计数器在同一阈值时间内的一组计数值,由于各个时钟源的系统误差、因此得到的一组计数值也是在一定范围内波动的计数值;所述主控制器得到一组计数值后,将得到的计数值进行归一化计算处理,然后得到一组归一化系数,将该归一化系数应用到运动部件的控制参数里,可以使得每个时钟源产生的时钟的大小不一的误差收敛,使得时钟误差的范围降低,提高了不同运动控制部件之间的同步效果,一定程度上解决了背景技术中存在的时钟源之间的误差问题。

以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号