发明内容
为了解决上述第2个技术问题,本发明提供了一种运动部件的控制装置,本发明的控制装置提供了两种处理运动参数的模式,且通过PWM波形发生器产生控制电机运行的波形,实时性好,误差小。
本发明提供一种运动部件的控制装置,用于控制运动部件运动,所述装置包括:模式选择单元、缓存单元、解算单元、波表、PWM波形发生器;
所述模式选择单元,用于依据一个模式选择命令,选择以第一模式处理运动参数或者以第二模式处理运动参数;
所述缓存单元,用于依序存储接收到的运动参数;
当所述模式选择单元选择以第一模式处理运动参数:
所述解算单元,用于依次解算所述缓存单元中的所有运动参数,得到一组波表数据;
所述波表,用于存储所述一组波表数据;
所述PWM波形发生器,用于依据一个循环次数从所述波表中循环获取所述波表数据,生成控制所述运动部件的PWM波形数据;
当所述模式选择单元选择以第二模式处理运动参数:
所述解算单元,用于依次解算所述缓存单元中的运动参数,得到一组波表数据;
所述波表,被配置为具有一个固定存储深度,根据先入先出方式存储所述波表数据;
所述PWM波形发生器,用于从所述波表中依次获取所述波表数据,生成控制所述运动部件的PWM波形数据。
本发明提供的控制装置设有单独的解算单元和PWM波形发生器,解算单元对接收到的运动参数进行解算,得到波表数据,并存储在波表中,而PWM波形发生器直接从波表中取出波表数据、生成PWM波形数据来控制电机运行;所述模式选择单元则可以根据一个模式选择命令来选择不同的处理模式,并配置波表为不同的存储深度,而PWM波形发生器会因模式不同而从波表中取出波表数据的方式不同:第一处理模式时,解算单元会解算所有的运动参数、并将得到的波表数据存储到波表中,PWM波形发生器会根据一个循环次数从波表中依次取出波表数据生成PWM波形数据;第二处理模式下,解算单元依次解算缓存单元中的运动参数,并存在波表中,当波表存满后根据先入先出的方式继续存储后续的波表数据,PWM波形发生器也是根据先入先出的方式从波表中获取波表数据,生成控制运动部件的PWM波形数据,然后将从波表中取出的波表数据丢掉、解算单元再次向波表中存储后续的波表数据,依次类推。
本发明提供的运动部件的控制装置提供了两种运动参数处理模式供选择,对用户更加友好,设置了单独的解算单元、波表、独立的PWM波形发生器来实现解算和执行,实时性好,误差小。
作为一种举例说明,本发明提供的控制装置中,当所述模式选择单元选择以第二模式处理运动参数,且所述解算单元解算并存储到所述波表的波表数据的数量达到一个阈值数量时,所述PWM波形发生器开始从所述波表中依次获取所述波表数据,生成控制所述运动部件的PWM波形数据;其中所述阈值数量小于所述固定存储深度。
作为又一举例说明,本发明提供的控制装置中,所述波表是由DDR存储器实现。
作为又一举例说明,本发明提供的控制装置中,所述模式选择命令来自于一个人机交互单元;所述人机交互单元包括有:编辑单元,用于编辑一组由多条运动参数组成的运动参数列表,以及所述循环次数;查询单元,用于查询所述缓存单元的存储空间允许的运动参数的阈值条数;命令产生单元,用于当所述运动参数列表中的运动参数的条数大于等于所述阈值条数时,产生以第二模式处理运动参数的模式选择命令;当所述运动参数列表中的运动参数的条数小于所述阈值条数时,产生以第一模式处理运动参数的模式选择命令。
作为又一举例说明,本发明提供的控制装置中,所述运动部件为步进电机时,所述一条运动参数包括:电机旋转角度/电机旋转弧度、电机旋转速度、电机旋转时间;所述运动部件为丝杠时,所述一条运动参数包括:丝杠位移、丝杠移动速度、丝杠移动时间。
作为又一举例说明,本发明提供的控制装置中,当所述人机交互单元依据用户选择产生一个停止命令:所述解算单元,用于依据所述停止命令、产生一组从当前一条运动参数运动到数据为零的运动参数的波表数据;所述波表,用于存储所述从当前一条运动参数运动到数据为零的运动参数的波表数据;所述PWM波形发生器,用于依据所述从当前一条运动参数运动到数据为零的运动参数的波表数据依序产生控制所述运动部件从当前运动状态到停止运动的PWM波形数据。
为了解决上述第2个技术问题,本发明还提供了一种运动部件的控制方法,本发明的控制方法提供了两种处理运动参数的模式,且通过PWM波形发生器产生控制电机运行的波形,实时性好,误差小。
本发明提供的控制方法用于控制运动部件运动的控制装置,所述方法包括:
依据一个模式选择命令,选择以第一模式处理运动参数或者以第二模式处理运动参数;
当选择以第一模式处理运动参数:
依次解算所有的所述运动参数,生成一组波表数据;
将所述波表数据存储到一个波表中;
依据一个循环次数从所述波表中循环获取所述波表数据,生成控制所述运动部件的PWM波形数据;
当选择以第二模式处理运动参数:
依次解算所述运动参数,生成一组波表数据;
根据先入先出方式将所述波表数据存储到所述波表中,所述波表具有一个固定存储深度;
根据先入先出方式从所述波表中获取波表数据,生成控制所述运动部件的PWM波形数据。
作为一种举例说明,本发明提供的控制方法中,当选择以第二模式处理运动参数,且生成的所述一组波表数据的数量达到一个阈值数量时,根据先入先出方式开始从所述波表中获取波表数据,生成控制所述运动部件的PWM波形数据;其中所述阈值数量小于所述固定存储深度。
作为又一举例说明,本发明提供的控制方法中,所述模式选择命令来自于一个人机交互单元;所述人机交互单元包括有:编辑单元,用于编辑一组由多条运动参数组成的运动参数列表,以及所述循环次数;查询单元,用于查询所述缓存单元的存储空间允许的运动参数的阈值条数;命令产生单元,用于当所述运动参数列表中的运动参数的条数大于等于所述阈值条数时,产生以第二模式处理运动参数的模式选择命令;当所述运动参数列表中的运动参数的条数小于所述阈值条数时,产生以第一模式处理运动参数的模式选择命令。
作为又一举例说明,本发明提供的控制方法中,所述运动部件为步进电机时,所述一条运动参数包括:电机旋转角度/电机旋转弧度、电机旋转速度、电机旋转时间;所述运动部件为丝杠时,所述一条运动参数包括:丝杠位移、丝杠移动速度、丝杠移动时间。
作为又一举例说明,本发明提供的控制方法中,当所述人机交互单元依据用户选择产生一个停止命令:依据所述停止命令、产生一组从当前一条运动参数运动到数据为零的运动参数的波表数据;依据所述从当前一条运动参数运动到数据为零的运动参数的波表数据依序产生控制所述运动部件从当前运动状态到停止运动的PWM波形数据。
为了解决上述第2个技术问题,本发明还提供了一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行,以执行本发明所述的运动部件的控制方法。
为了解决上述第2个技术问题,本发明还提供了一种运动控制部件的控制系统,所述控制系统包括存储器和处理器;
所述存储器,用于存储有在所述处理器上运行的计算机程序;
所述处理器,用于运行所述计算机程序,以执行本发明所述的运动部件的控制方法。
本发明提供的运动部件的控制装置、控制方法、介质和控制系统,提供了两种运动参数处理模式供选择,对用户更加友好,设置了单独的解算单元、波表、独立的PWM波形发生器来实现解算和执行,实时性好,误差小。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
结合参考附图2,附图2示出了本发明的一个实施例运动控制系统200,运动控制系统200包括有:人机交互单元201、CAN数据线202、运动控制部件203、电机211,其中运动控制部件203包括有:CAN数据收发单元204、缓存205、模式选择单元206、解算单元207、波表208、PWM波形发生器209、电机驱动单元210。
所述运动控制系统200可以是机器人(或机械臂)控制系统,可以是电机控制系统,还可以是丝杠控制系统,还可以是电磁阀控制系统等等。
本实施例以机器人控制系统为例进行说明,机器人的每个关节需要设置一个电机211进行驱动,电机211通过输出轴的旋转带动关节做旋转运动,一个机器人一般具有多个关节、以共同实现机器人的各项功能;运动控制部件203可以将用户配置的各项参数和功能转化为电机211的驱动信号,驱动电机211运动。
所述人机交互单元201用于实现用户与机器人的交互,人机交互单元201可以是一个独立的机器人控制器、示教器等,还可以是一款可以安装在电脑上的软件,还可以是一款可以安装在手机/Pad等智能设备上的软件,本实施例中所述人机交互单元201是一款安装在电脑上的软件,用户可以通过鼠标、键盘、触摸屏等配置机器人的相关运动参数和功能,这些运动参数最终转换为电机控制参数来控制电机211的运行状态。
人机交互单元201可以通过电脑自带的接口连接到CAN数据线202,CAN数据线202的另一端连接到运动控制部件203上的CAN数据收发单元204,可以实现电脑和运动控制部件203之间的通讯和数据交互,CAN数据线202可以是各种现有的CAN总线形式,其一般只需要两根数据线即可实现电脑和运动控制部件203之间的连接。在CAN数据线202和电脑之间一般还设置有网关,例如USB-CAN网关,可以实现电脑通过USB接口和CAN数据线202之间的协议转换。
当机器人为多关节机器人时,每个关节的电机211可能单独设置有一个运动控制部件203来驱动,也可能每个机器人或多个机器人共用一个运动控制部件203来驱动多个电机211,这可以根据运动控制部件203驱动电机211的能力进行设计。
当用户需要控制机器人或者控制电机211时,用户可以通过人机交互单元201来设置各项运动参数,并通过CAN数据线202传输给运动控制部件203。
CAN数据收发单元204与CAN数据线202直接连接,可以将CAN总线数据转换为解算单元207等可运算的数据,可以将用户设置的运动参数经转换后存储到缓存205中,将人机交互单元201发送来的模式选择命令转换后控制各个单元以第一模式或第二模式处理运动参数。
缓存205用于存储运动参数,缓存205具有一个固定的存储深度,存储空间较小,可以快速的实现数据存储与读取,采用先入先出(FIFO)模式存取数据。
解算单元207从缓存205中读取运动参数,然后将读取的运动参数利用解算公式进行插补解算等处理,将用户设置的运动参数(一般包括有位移、速度、时间等)转换为波表数据,存储在波表208中。
所述波表208可以采用DDR存储器等实现,用于存储波表数据,根据设计需要可以设置波表208的存储深度的大小。
所述PWM波形发生器209用于根据波表208中存储的波表数据产生对应的PWM波形数据,PWM波形有时也称为脉冲波形,具有高低电平两个状态,在运动控制领域通过调节PWM波形的占空比达到控制电机转速、电磁阀开关状态等目的。PWM波形发生器209可以采用现有的各种PWM波形发生器实现,例如采用DDS信号发生技术实现的PWM波形发生器、采用数字计数技术实现的PWM波形发生器等。
因此,解算单元207将用户设置的实际运动参数转换为产生PWM波形的波表数据,PWM波形发生器209根据波表数据产生对应的PWM波形数据,再经过数模转换、放大滤波等处理后,发送给电机驱动单元210来驱动电机211运动。
电机驱动单元210用于根据PWM波形驱动电机211运动,可以利用各类电机驱动芯片实现。
在电机211的输出端,一般还设置有减速器,减速器用于转速匹配和传递力矩,在减速器的输出轴安装机械臂的臂体机构,电机211的运动可以带动减速器的运动,减速器可以按固定减速比将电机211的运动转换为减速器的运动,以带动机械臂的臂体按用户设定的参数运动。
作为说明,电机211是运动部件的一个实施例,运动部件还可以是电磁阀、电磁隔膜泵等其他运动部件。
作为说明,本实施例中采用了CAN总线通信方式(通过CAN数据线202)实现人机交互单元201和运动控制部件203之间的通信,还可以采用遵循RS485协议、EtherCAT协议、DeviceNet协议等其他通信方式实现通信。
作为一种具体实施例,结合参考附图3,附图3示出了一种运动控制部件203的参数编辑方法S300,所述方法S300运行于人机交互单元201上,用户通过编辑运动参数,达到控制运动部件(或机器人)运动的目的。
所述方法S300包括有如下步骤:
步骤S301:结合参考附图4,编辑一组由多条运动参数组成的运动参数列表S400,附图4中示出了4条运动参数S401、S402、S403、S404;编辑所述运动参数列表S400的循环次数S405。
在本实施例中,运动部件为电机211连接减速器,此时运动参数包括有旋转角度(通常称为P)、旋转速度(通常称为V)、旋转时间(通常称为T),其中:
P一般是指与电机211连接的减速器的输出轴的旋转角度,电机输出轴(固高连接到减速器输入轴)的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器的固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1;此时运动参数列表S400中的P是指减速器的输出轴的旋转角度,需要解算为电机的旋转角度后控制电机运动、以达到带动减速器按P运动的目的;
V一般是指与电机211连接的减速器的输出轴的旋转速度(单位为度/秒),电机输出轴(固定连接到减速器输入轴)的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器的固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1;此时运动参数列表S400中的V是指减速器的输出轴的旋转速度,需要解算为电机的旋转速度后控制电机运动、以达到带动减速器按V运动的目的;
T即为时间(单位秒),即电机211(或机器人等)开始运动后的时间点,电机(或机器人)开始运动时为0,设定一个时间T后即为电机211(或机器人等)运动到的某时刻;因此一般情况下下一条运动参数的时间需要大于上一条运动参数的时间,例如S402的时间值需要大于S401的时间值,否则S402这一条运动参数无效;
PVT共同作为一条运动参数,构成了一个运动控制系统(机器人等)在某时刻T需要达到的的运动速度V、运动位移P。
用户根据自身的需求编辑运动参数列表S400,还可以编辑运动参数列表S400的循环次数S405,以控制运动参数列表S400中的各条参数作为一条完整的运动轨迹的执行次数,循环次数S405可以是1或者任一数字,也可以是无限次。
需要特别说明的是,编辑运动参数列表S400中的多条运动参数和编辑循环次数S405并无必然的先后顺序,用户既可以先编辑运动参数列表S400中的运动参数、再编辑循环次数S405,也可以先编辑编辑循环次数S405、再编辑运动参数列表S400中的运动参数。
步骤S302:当用户编辑完成运动参数列表S400和循环次数S405后,就可以通过人机交互单元201向运动控制部件203发送,此时首先向运动控制部件203查询其存储空间运动的运动参数的阈值条数。
运动控制部件203的该存储空间一般为缓存205,其具有一个不大的固定存储深度,有时还需要存储有系统信息,可以存储的运动参数的数量有限,因此本步骤中首先查询运动控制部件203的存储空间中允许存储的运动参数的阈值条数,以便为后续发送运动参数做准备。
步骤S303和步骤S304是一个判断步骤以及根据判断结果运行的两种不同的执行步骤:
步骤S303为:当所述运动参数的条数大于等于所述阈值条数时,执行第一步骤:将所述运动参数列表S400中的运动参数按循环次数S405依序发送给所述运动控制部件203;
步骤S304为:当所述运动参数的条数小于所述阈值条数时,执行第二步骤:将所述循环次数S405和所述运动参数列表S400中的运动参数依序发送给所述运动控制部件203。
在步骤S302中查询到了运动控制部件203中的缓存205中允许存储的运动参数的阈值条数,而在此之前用户根据自身需求已经在步骤S301中编辑完成了运动参数列表S400中的各条运动参数(比如包括运动参数S401-S404)和循环次数S405,因此判断运动参数列表S400中的运动参数的条数与查询得到的阈值条数的大小关系。
一旦运动参数列表S400中的运动参数的条数大于等于阈值条数,即意味着缓存205的存储空间不能一次完全存储所有的运动参数,此时执行第一步骤:将运动参数列表S400中的运动参数按循环次数S405依序发送给运动控制部件203,存储在运动控制部件203的缓存中205中。
假设运动控制部件203的缓存205仅允许存储3条运动参数,即阈值条数=3,而用户编辑了4条运动参数S401-S404,循环次数S405为5次,此时由于4>3,因此此时将运动参数发送给运动控制部,203的步骤是:
首先将运动参数S401发送给运动控制部件203;
然后将运动参数S402发送给运动控制部件203;
然后将运动参数S403发送给运动控制部件203;
然后将运动参数S404发送给运动控制部件203;
然后再将运动参数S401发送给运动控制部件203;
然后再将运动参数S402发送给运动控制部件203;
然后再将运动参数S403发送给运动控制部件203;
然后再将运动参数S404发送给运动控制部件203;
……(再循环发送2次)
然后再将运动参数S401发送给运动控制部件203;
然后再将运动参数S402发送给运动控制部件203;
然后再将运动参数S403发送给运动控制部件203;
然后再将运动参数S404发送给运动控制部件203,最终通过5次循环发送运动参数列表S400中的各条参数而完成此次运动参数的发送。
一旦运动参数列表S400中的运动参数的条数小于阈值条数,即意味着缓存205的存储空间能够一次完全存储所有的运动参数,此时执行第二步骤:将所述循环次数S405和运动参数列表S400中的各条运动参数依序发送给运动控制部件203,存储在运动控制部件203的缓存中205中。
假设运动控制部件203的缓存205允许存储10条运动参数,即阈值条数=10,而用户编辑了4条运动参数S401-S404,循环次数S405为5次,此时由于10>4,因此此时将运动参数发送给运动控制部,203的步骤是:
首先将运动参数S401发送给运动控制部件203;
然后将运动参数S402发送给运动控制部件203;
然后将运动参数S403发送给运动控制部件203;
然后将运动参数S404发送给运动控制部件203;
最后将循环次数S405发送给运动控制部件203;
或者为:
首先将将循环次数S405发送给运动控制部件203;
然后将运动参数S401发送给运动控制部件203;
然后将运动参数S402发送给运动控制部件203;
然后将运动参数S403发送给运动控制部件203;
最后将运动参数S404发送给运动控制部件203;
最终完成了此次运动参数列表S400中各条运动参数的发送。
本发明将用户与电机211(或机器人等)的人机交互方式做了改变,使得用户可以根据自身的需求编辑循环次数S405这一参数,用户不再必须将其需要的所有运动参数都编辑在运动参数列表S400中,方便了用户的使用,提高了与用户的友好度。
本发明还在用户编辑完成运动参数后,判断运动控制部件203的存储空间运动的阈值条数,根据不同的判断结果执行不同的参数发送方式,当运动参数的条数大于等于所述阈值条数时执行现有的运动参数发送方式、即一条一条发送,此过程中由于缓存205的存储空间有限,必须要等到解算单元207解算完成一部分运动参数、发送给PWM波形发生器209等控制电机211运动后,依据FIFO(先入先出)模式删除解算完成的运动参数后,缓存205才能有存储空间用于存储后续的运动参数,即人机交互单元201需要不断的询问缓存205是否有存储空间:一旦没有,就需要继续等待;一旦有存储空间,人机交互单元201才能继续向缓存205发送运动参数,整个过程相对较慢。当运动参数的条数小于所述阈值条数时执行另一种参数发送方式:将运动参数和循环次数S405依序发送给运动控制部件203、存储在缓存205中,此时运动参数的发送过程中不需要等待解算单元207解算、PWM波形发生器209和电机驱动单元210等驱动电机211运动的结果,实时性好,对用户更加友好。
作为一种变形,当运动部件为电机21连接减速器时,运动参数还可以是旋转弧度(P)、速度(V)、时间(T),此时:
P是指与电机211连接的减速器的输出轴的旋转弧度,电机输出轴(固高连接到减速器输入轴)的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器的固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1;此时运动参数列表S400中的P是指减速器的输出轴的旋转弧度,需要解算为电机的旋转角度后控制电机运动、以达到带动减速器按P运动的目的;
V是指与电机211连接的减速器的输出轴的旋转速度(单位为弧度/秒),电机输出轴(固定连接到减速器输入轴)的转速与减速器的输出轴的转速具有一个固定的减速比,所述减速比是减速器的固有参数或用户可设,例如一款电机的输出轴的转速为1500r/min,减速器的输出轴的转速为25r/min,那么该减速器的减速比为60:1;此时运动参数列表S400中的V是指减速器的输出轴的旋转速度,需要解算为电机的旋转速度后控制电机运动、以达到带动减速器按V运动的目的;
T即为时间(单位秒),即电机211(或机器人等)开始运动后的时间点,电机(或机器人)开始运动时为0,设定一个时间T后即为电机211(或机器人等)运动到的某时刻;因此一般情况下下一条运动参数的时间需要大于上一条运动参数的时间,例如S402的时间值需要大于S401的时间值,否则S402这一条运动参数无效;
PVT共同作为一条运动参数,构成了一个运动控制系统(机器人等)在某时刻T需要达到的的运动速度V、运动位移P。
作为又一种变形,当所述运动部件为电机211连接丝杠时,运动参数为丝杠位移(P)、丝杠移动速度(V)、丝杠移动时间(T):
由于丝杠与步进电机连接后,丝杠本身具有一个固定参数(或者用户可设)导程:导程是指电机的输出轴旋转一圈时丝杠移动的直线距离,单位通常为毫米/转,因此P是指与电机211连接的丝杠的直线位移,单位可以为毫米;
V是指与电机211连接的丝杠的直线移动速度,单位为毫米/秒;
T即为时间,单位秒,即电机211和丝杠开始运动后的时间点,电机211和丝杠开始运动时为0,设定一个时间T后即为电机211和丝杠运动到的某时刻,因此一般情况下下一条运动参数的时间需要大于上一条运动参数的时间,例如S402的时间值需要大于S401的时间值,否则S402这一条运动参数无效。
作为又一种变形,所述运动部件还可以为电机211本身,此时运动参数即为电机211的输出轴的旋转角度(P)、电机211的输出轴的旋转速度(V)、旋转时间(T),例如一款电机的转速为1500r/min,即每分钟可以旋转1500转,1转为360度,即电机的V为9000度/秒,用户可根据此参数设计PVT参数。
作为本实施例的一种举例说明,在所述步骤S304中,将所述循环次数发送给所述运动控制部件203是这样实现的:结合参考附图4,设置一个“更新”按键S406,,通过点击所述更新按键S406将所述循环次数S405发送给所述运动控制部件203。
所述更新按键S406可以是实体按键,也可以是显示屏幕上的一个功能选项、用于通过触摸屏/鼠标等进行点击。
作为一种变形,在所述步骤S304中,将所述循环次数发送给所述运动控制部件203还可以是在发送运动控制列表S400的运动参数的开始阶段后结束阶段发送所述循环次S405给运动控制部件203。
作为本实施例的又一举例说明,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405包括:
通过鼠标右击选择一个选项:在最后一条运动参数之后增加一条运动参数。
作为一种变形,还可以在人机交互单元201的显示界面上设置一个单独的按键选项,通过鼠标/触摸屏等点击该选项在最后一条运动参数之后增加一条运动参数。
作为又一种变形,还可以在人机交互单元201上设置一个实体按键,通过点击该实体按键在最后一条运动参数之后增加一条运动参数。
作为本实施例的又一举例说明,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405还可以包括:通过鼠标/触摸屏等选中一条运动参数,然后通过鼠标右击选择一个选项:在被选中的一条运动参数之后增加一条运动参数。
作为一种变形,还可以在人机交互单元201的显示界面上设置一个单独的按键选项,通过鼠标/触摸屏等点击该选项在此刻被选中的一条运动参数之后增加一条运动参数。
作为又一种变形,还可以在人机交互单元201上设置一个实体按键,通过点击该实体按键在此刻被选中的一条运动参数之后增加一条运动参数。
作为本实施例的又一举例说明,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405还可以包括:通过鼠标/触摸屏等选择并复制一条或多条运动参数,然后粘贴到最后一条运动参数之后,作为下一条/后续几条运动参数。
作为一种本实施例的又一举例说明,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405还可以包括:通过鼠标/触摸屏等选择并复制一条或多条运动参数后,然后粘贴到通过鼠标/触摸屏等被选中的当前一条运动参数之后,原本该条运动参数之后的所有运动参数都按序向下移动。
作为本实施例的又一举例说明,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405还可以包括:删除运动参数列表S405中的所有运动参数,使所述运动参数列表S405中仅显示第一条运动参数,且所述第一条运动参数的各项参数值均为0。
作为一种变形,步骤S301中编辑一组由多条运动参数组成的运动参数列表S405还可以包括:删除运动参数列表S405中的所有运动参数,使所述运动参数列表S405中的所有运动参数均被删除。
作为一种说明,所述运动参数列表S405中的多条运动参数中,后一条运动参数中的旋转时间的时间值大于上一条运动参数中的旋转时间的时间值;后一条运动参数中的丝杠移动时间的时间值大于上一条运动参数中的丝杠移动时间的时间值;此时各条运动参数均为有效运动参数,可以被解算并执行。当后一条运动参数中时间的时间值小于等于前一条运动参数中时间的时间值时,后一条运动参数可被视为无效参数、进而被忽略,或作出报警提示等。
在示例性的实施例中,本发明还提供了一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器(例如一台计算机)运行以执行上述的参数编辑方法S300。
在又一示例性的实施例中,本发明还提供了一种计算机,计算机包括有存储器和处理器,所述存储器,用于存储有在所述处理器上运行的计算机程序;所述处理器,用于运行所述计算机程序,以执行上述的参数编辑方法S300。
作为又一具体实施例,结合参考附图2,附图2中示出的运动控制部件203即为一种运动部件的控制装置,运动部件可以为单独的电机211,电机211的输出轴可以连接减速器、丝杠等部件。
在运动控制部件203中还设置有一个模式选择单元206,模式选择单元206用于依据一个模式选择命令,选择以第一模式处理接收到的运动参数或者选择以第二模式处理接收到的运动参数,所述模式选择命令来自于人机交互单元201,可以用户通过选择第一模式或第二模式的选项产生所述模式选择命令,还可以根据用户设置的运动参数的不同自动生成所述模式选择命令,然后所述人机交互单元201通过CAN数据线202发送给运动控制部件203上的CAN数据收发单元204,数据收发单元204可以直接将接收到的模式选择命令发送给模式选择单元206、也可以存储到缓存205后再由模式选择单元206读取后获得,模式选择单元206选择第一模式或第二模式后,运动控制部件203对接收到的运动参数的处理也以第一模式或第二模式进行。
当模式选择单元206选择第一模式处理运动参数:
解算单元207依次解算缓存205中的所有运动参数,解算得到一组波表数据,并存储在波表208中;
PWM波形发生器209依据一个循环次数从波表208中循环获取所述波表数据,生成控制所述运动部件(即电机211)的PWM波形数据,所述循环次数是用户通过人机交互单元201设置的,例如所述参数编辑方法S300中编辑的循环次数S405,本实施例中循环次数S405为5次。
电机驱动单元根据所述PWM波形数据产生控制电机211运动的脉冲,控制电机211运动。
当模式选择单元206选择第二模式处理运动参数:
解算单元207依次解算缓存205中的运动参数,解算得到一组波表数据,并存储在波表208中;
波表208被配置为具有一个固定存储深度,根据先入先出的方式存储所述波表数据;
PWM波形发生器209从所述波表208中依次获取波表数据,生成控制所述运动部件(即电机211)的PWM波形数据;
电机驱动单元根据所述PWM波形数据产生控制电机211运动的脉冲,控制电机211的运动。
在本实施例中,波表采用DDR存储器实现,存储深度可以高达几个GB。
当选择以第一模式处理运动参数时,可以将波表208配置为一个较大的存储深度,可以存储解算单元207依次解算得到的所有波表数据,在解算单元207解算完成后所有波表数据被存储到波表208的一段存储空间内不被改变,此时PWM波形发生器209可以依次从波表208逐个取出波表数据以生成PWM波形数据,当PWM波形发生器209从波表208一次取波表数据完成后、继续再从波表208取下一次数据,依次循环、直到循环取出5次波表数据才停止,实现了依据循环次数S405从波表208循环获取波表数据的步骤。
当PWM波形发生器209依据波表数据生成PWM波形数据后,将PWM波形数据发送给电机驱动单元210,电机驱动单元210依据PWM波形数据产生最终的电机211驱动信号、以驱动电机211运动。
此过程中,解算单元207仅需要解算一次缓存205中的运动参数即可,解算的运动参数较少,而解算过程慢是制约整个运动控制系统(例如机器人系统等)的实时性的一大问题,因此第一模式下的运动参数的处理速度快、执行快,实时性很好。
当选择以第二模式处理运动参数时,缓存205依次存储从人机交互单元201发送来的运动参数,当缓存205存储空间被填满、无法再存储时,人机交互单元201可以定时询问缓存205是否有存储空间,一旦缓存205没有存储空间(此时意味着解算单元207、PWM波形发生器209等还在处理数据),就需要继续等待;一旦缓存205有存储空间,人机交互单元201才能继续向缓存205发送运动参数。
波表208被配置为具有一个固定存储深度,根据先入先出的方式依次存储解算单元207解算得到的波表数据,解算单元207从缓存205具有两个运动参数时可以开始取出运动参数进行解算,解算过程中不断得到的波表数据被存储在波表208中的一段存储空间中,波表208中存储了一定数量的波表数据后可以通知PWM波形发生器209开始生成PWM波形数据,PWM波形数据是否开始取出波表数据来生成PWM波形数据可以直接开始、还可以由用户从人机交互单元201中产生开始命令来启动,PWM波形发生器209一旦开始从波表208中取出波表数据生成PWM波形数据,波表208就会产生新的存储空间,解算单元207可以继续向波表208中放入解算得到的波表数据,即意味着解算单元207可以从缓存205中取出新的运动参数进行解算,缓存205中才能产生存储空间来接收人机交互单元201发送的新的运动参数,上述处理过程依序不断被执行,最终达到控制电机211运动的目的。
从上述描述中可以看出,当选择第二模式处理运动参数时,缓存205中存储满运动参数后、需要等待解算单元207解算前面的运动参数并取出新的运动参数后才能具有存储空间,而解算单元207解算得到波表数据存储到波表208后也可能需要PWM波形发生器209从波表208中取出波表数据后、波表208才能有存储空间接收新的波表数据,整个过程实时性较差,经常需要用户等待某些处理过程完成后才能继续,用户体验不够好。
作为本实施例的一个举例说明,当所述模式选择单元206选择以第二模式处理运动参数,且所述解算单元207解算并存储到所述波表208的波表数据的数量达到一个阈值数量时,所述PWM波形发生器209开始从所述波表208中依次获取所述波表数据,生成控制所述运动部件(即电机211)的PWM波形数据;其中所述阈值数量小于所述固定存储深度。此过程即为自动执行的过程,整个过程不需要用户再次下发命令。
作为一种变形,当所述模式选择单元206选择以第二模式处理运动参数,且所述解算单元207解算并存储到所述波表208的波表数据的数量达到一个阈值数量时,可以通过人机交互单元201通知用户可以开始执行,然后由用户通过一个开始命令使,所述PWM波形发生器209开始从所述波表208中依次获取所述波表数据,生成控制所述运动部件(即电机211)的PWM波形数据。
作为本实施例的一种变形,所述波表208还可以由RAM存储器、SSD硬盘存储器等其他存储器实现。
作为本实施例的一种举例说明,所述人机交互单元201可以包括有:
编辑单元,用于编辑一组由多条运动参数组成的运动参数列表S400,以及所述循环次数S405;
查询单元,用于查询所述缓存单元205的存储空间允许的运动参数的阈值条数;
命令产生单元,用于当所述运动参数列表S400中的运动参数的条数大于等于所述阈值条数时,产生以第二模式处理运动参数的模式选择命令;当所述运动参数列表S400中的运动参数的条数小于所述阈值条数时,产生以第一模式处理运动参数的模式选择命令。
作为一种变形,所述人机交互单元201可以是一款可以安装在电脑上的软件,还可以是一款可以安装在手机/Pad等智能设备上的软件。
作为本实施例的一种举例说明,用户还可以从人机交互单元201产生一个停止命令,通过CAN数据线202发送给运动控制部件203,此时解算单元207依据所述停止命令产生一组从当前一条运动参数运动到数据为零的运动参数的波表数据,所述PWM波形发生器依据所述从当前一条运动参数运动到数据为零的运动参数的波表数据依序产生对应的PWM波形数据,来控制电机211从当前运动状态逐步到停止运动,可以较好的保护电机211。
作为一种变形,用户通过人机交互单元201产生停止命令后,所述解算单元207可以直接停止解算或者直接产生一个停止的波表数据,PWM波形发生器209可以直接不输出PWM波形,电机驱动单元210无输出,电机211自动停止。
作为一个示例性的实施例,本发明还提供了一种应用于运动控制部件203的控制方法S500,结合参考附图5,所述控制方法S500包括有如下步骤:
S501:依据一个模式选择命令,选择以第一模式处理运动参数或者以第二模式处理运动参数;
当选择以第一模式处理运动参数,执行如下步骤:
S502:依次解算所有的所述运动参数,生成一组波表数据;
S503:将所述波表数据存储到波表203中;
S504:依据循环次数S405从所述波表203中循环获取所述波表数据,生成控制所述运动部件(电机211)的PWM波形数据;
当选择以第二模式处理运动参数,执行如下步骤:
S505:依次解算所述运动参数,生成一组波表数据;
S506:根据先入先出方式将所述波表数据存储到所述波表203中,所述波表203具有一个固定存储深度;
S507:根据先入先出方式从所述波表203中获取波表数据,生成控制所述运动部件(电机211)的PWM波形数据。
作为又一个示例性的实施例,还提供一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行,以执行上述的控制方法S500。
作为又一示例性的实施例,还提供一种运动部件的控制系统,所述控制系统包括有存储器和处理器,所述存储器用于存储有在所述处理器上运行的计算机程序,所述处理器用于运行所述计算机程序、以执行上述的控制方法S500。
本发明提供的运动控制部件的参数编辑方法S300将运动参数和运动参数的循环次数分开编辑,然后判断运动控制部件的缓存空间的大小,一旦缓存空间允许存储的运动参数的阈值条数大于用户编辑的运动参数的条数,那么可以直接将运动参数和循环次数发送给运动控制部件,而不需要重复编辑很多次运动参数,也不需要当运动控制部件的缓存空间存满后、必须要等待后续执行后才能空出空间,然后才能再次向运动控制部件继续发送运动参数,可以满足用户的不同的需求,对用户更加友好,解决了背景技术中等待时间长、对用户不够友好的问题。
本发明提供的运动部件的控制装置200根据一个模式选择命令来选择不同的运动参数处理模式,特别是当选择第一模式时,解算单元仅需要将所有的运动参数解算一次即可,然后根据循环次数多次循环取出解算得到的波表数据,解算和执行的实时性更好,采用波表+PWM波形发生器的方式产生PWM波形,误差更小,满足了客户对误差的需求。
以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。