基于EtherCAT总线的工业机器人控制系统及方法与流程

文档序号:16216832发布日期:2018-12-08 08:31阅读:444来源:国知局
本发明涉及机器人控制领域,尤其涉及一种基于ethercat总线的工业机器人控制系统及方法。
背景技术
:目前国内外大部分工业机器人运动控制器均采用基于dsp和fpga的多轴运动控制卡方式,其控制器一般带有pci接口,集成于pc的pci插槽。这种常规的控制系统中,机器人控制系统只能作为从站,需要额外的plc控制器作为主站,即机器人的控制系统只是单一的控制伺服电机的工作状态,当机器人上还存有外围的信号输入,比如开关信息,这时需要用到输入输出端口,和plc控制器进行控制。因此,通过额外的plc控制器外围的自动化设备的控制信号,增加了一体化系统的成本,而且这样的系统布线复杂、可靠性差,以及技术封闭,拓展性差、价格昂贵,不易和工厂其他设备集成在一个控制系统中。名词解释:codesys:是controlleddevelopmentsystem的简写,由德国3s(smartsoftwaresolutions)公司开发的一种与设备无关的plc编程系统,codesys是一款集成了工程编程、可视化界面、安全、总线配置、实时运行核(runtime)、motioncnc功能的软件平台。ethercat总线:是一个以以太网为基础的开放架构的现场总线系统,ethercat名称中的cat为controlautomationtechnology(控制自动化技术)首字母的缩写。技术实现要素:为了解决上述技术问题,本发明的目的是提供一种基于codesys平台和ethercat总线的一体化控制器的工业机器人控制系统。本发明的另一目的是提供一种基于codesys平台和ethercat总线的一体化控制器的工业机器人控制方法。本发明所采用的技术方案是:基于ethercat总线的工业机器人控制系统,包括一体化控制器、ethercat总线、总线io模块和若干个运动模块,各所述运动模块均包括伺服电机和用于驱动伺服电机的总线式伺服驱动器,所述一体化控制器包括codesys控制模块和动态链接库,所述codesys控制模块通过ethercat总线分别与总线式伺服驱动器和总线io模块连接,所述codesys控制模块和动态链接库连接;所述总线io模块用于传输控制机器人的开关信息和控制信号;所述codesys控制模块用于接收到开关信息后,根据预设的执行信息实时从动态链接库调用预设的函数,并根据函数获取机器人的运动参数后,将运动参数通过ethercat总线发至总线式伺服驱动器;所述一体化控制器作为ethercat主站,所述运动模块和总线io模块均作为ethercat从站。进一步,还包括示教器,所述一体化控制器还包括编译器,所述示教器通过编译器与codesys控制模块连接。进一步,所述总线io模块包括总线耦合器、远程数字开关量单元、远程数字模拟量单元、非总线伺服单元、安全单元和视觉单元,所述ethercat总线通过总线耦合器分别与远程数字开关量单元、远程数字模拟量单元、非总线伺服单元、安全单元和视觉单元连接。进一步,所述伺服电机上设有编码器,所述编码器与总线式伺服驱动器连接。进一步,所述codesys控制模块包括运动控制单元和外部逻辑控制单元,所述ethercat总线分别与运动控制单元和外部逻辑控制单元连接,所述运动控制单元和外部逻辑控制单元连接;所述运动控制单元用于驱动运动模块实现机器人的运动状态的控制;所述外部逻辑控制单元用于传输并处理总线io模块的外部逻辑信号。进一步,所述codesys控制模块上采用实时操作系统,所述每个总线式伺服驱动器均在运动控制单元上有对应的位置轴,且配置相应的运动控制参数。本发明所采用的另一技术方案是:基于ethercat总线的工业机器人控制方法,包括以下步骤:s1、总线io模块获取用户输入的开关信息后,发送开关信息至codesys控制模块;s2、codesys控制模块接收到开关信息后,根据预设的执行信息实时从动态链接库调用预设的函数,并根据函数获取机器人的运动参数后,将运动参数通过ethercat总线发至总线式伺服驱动器;s3、总线式伺服驱动器根据运动参数控制伺服电机进行旋转。进一步,还包括以下步骤:示教器获取用户输入的控制信息后,将控制信息发至编译器;编译器对控制信息进行编码后获得执行信息,并将执行信息发至codesys控制模块;所述控制信息包括直线运动指令、点对点运动指令、圆弧运动指令、条件选择指令、程序调用、焊接指令和码垛指令中的至少一种。进一步,还包括以下步骤:编码器实时采集伺服电机的旋转参数,并将旋转参数发送至总线式伺服驱动器;总线式伺服驱动器通过ethercat总线将旋转参数反馈至codesys控制模块。进一步,所述预设的函数包括运动学函数和轨迹规划函数,所述步骤s2中根据函数获取机器人的运动参数的步骤,具体包括以下步骤:根据轨迹规划函数获取机器人的运动步长和动态参数,以及根据运动学函数获取机器人的关节角度和坐标参数;结合运动步长、动态参数、关节角度和坐标参数获取机器人的运动参数。本发明的有益效果是:本发明通过将一体化控制器作为主站,使运动模块和总线io模块共享ethercat总线,实现了机器人和控制设备的一体化控制,无需额外增加额外的plc控制器作为主站,降低了控制成本;另外,ethercat总线的特性保证了机器人运动控制过程中数据传输的实时性及可靠性,提高控制系统的扩展性和稳定性。附图说明图1是本发明基于ethercat总线的工业机器人控制系统的结构框图;图2是本发明基于ethercat总线的工业机器人控制方法的步骤流程图。具体实施方式如图1所示,基于ethercat总线的工业机器人控制系统,包括一体化控制器、ethercat总线、总线io模块和若干个运动模块,各所述运动模块均包括伺服电机和用于驱动伺服电机的总线式伺服驱动器,所述一体化控制器包括codesys控制模块和动态链接库,所述codesys控制模块通过ethercat总线分别与总线式伺服驱动器和总线io模块连接,所述codesys控制模块和动态链接库连接;所述总线io模块用于传输控制机器人的开关信息和控制信号;所述codesys控制模块用于接收到开关信息后,根据预设的执行信息实时从动态链接库调用预设的函数,并根据函数获取机器人的运动参数后,将运动参数通过ethercat总线发至总线式伺服驱动器;所述一体化控制器作为ethercat主站,所述运动模块和总线io模块均作为ethercat从站。上述系统的工作原理:一体化控制器作为ethercat主站,运动模块和总线io模块均作为ethercat从站,将运动模块和总线io模块共享ethercat总线,所述总线io模块主要传输开关信息、模拟信号以及机器人外部使能、外部停止、外部加减速等信号,比如自动化的工业机器人系统,通过外部开关控制机器人的开启和关闭,此时通过总线io模块传输相应的开关信息。当用户自动化设备上输入开启信号时,信号总线io模块将开启信号通过ethercat总线传输至一体化控制器,所述一体化控制器内设有codesys控制模块,codesys控制模块根据开启信号控制机器人运动,由于在codesys控制模块内存储有预设的执行信息,codesys控制模块根据执行信息实时从动态链接库调用预设的函数,比如需要控制机器人执行直线运动,而该运动的执行信息已保存在codesys控制模块,所以codesys控制模块直接控制机器人的运动状态。所述总线io模块除了传输开启信号,还可传输其他信号。该系统无需额外增加一个plc控制器,降低了系统的成本。其中,运动模块1代表第一个运动模块,运动模块n代表第n个运动模块,根据实际需要,选择运动模块的个数。进一步作为优选的实施方式,还包括示教器,所述一体化控制器还包括编译器,所述示教器通过编译器与codesys控制模块连接。所述示教器通过网线依次连接编译器和codesys控制模块。所述示教器采用触摸屏来实现,通过示教器,用户可输入对工业机器人的控制信息,所述控制信息包括直线运动指令、点对点运动指令、圆弧运动指令、条件选择指令、程序调用、焊接指令和码垛指令中的至少一种、条件跳转以及运动速度和动态参数等相关信息,并可通过示教器设置机器人的不同位置点(包含坐标)。总的来说,示教器主要负责系统的示教编程以及程序再现,以及机器人关节角度显示、坐标系的转换、文件管理、系统转态信息监控等功能。编译器主要负责在示教器示教编程的编译,将直线运动指令(lin)、点对点运动指令(ptp)、圆弧运动指令、条件选择指令、程序调用、焊接指令、码垛指令等指令进行解码,转化成codesys控制模块识别的可执行程序,即执行信息,为机器人运动学及轨迹规划所需的参数调用,最后实现示教程序的再现。编译系统的具体执行过程是:示教器源代码(sourcecode)→预处理器(preprocessor)→编译器(compiler)→目标代码(objectcode)→链接器(linker)→可执行程序(executables)。进一步作为优选的实施方式,所述总线io模块包括总线耦合器、远程数字开关量单元、远程数字模拟量单元、非总线伺服单元、安全单元和视觉单元,所述ethercat总线通过总线耦合器分别与远程数字开关量单元、远程数字模拟量单元、非总线伺服单元、安全单元和视觉单元连接。总线io模块的信号主要有开关信息和模拟量,主要为机器人控制过程中的控制信号,信号的采用都由基于ethercat总线耦合器进行地址映射,包括开关量、模拟量、非总线式伺服等相关信号及控制对象;如果采用带增量式编码器的伺服产品,开关信息包括用于机器人各轴的回零信号,如果采用非总线伺服开关信息包括伺服电机使能、报警输出、清除报警等。进一步作为优选的实施方式,所述伺服电机上设有编码器,所述编码器与总线式伺服驱动器连接。机器人每个关节转到什么位置,通过编码器可以实时获取每个关节的电机数值,从而可以计算当前每个机器人关节的位置角度等信息。伺服电机上设有编码器,编码器实时反馈至总线式伺服驱动器,总线式伺服驱动器将接收到的信息通过ethercat总线发送至一体化控制器,一体化控制器获得伺服电机当前的位置,形成闭环反馈,提高控制精度。进一步作为优选的实施方式,所述codesys控制模块包括运动控制单元和外部逻辑控制单元,所述ethercat总线分别与运动控制单元和外部逻辑控制单元连接,所述运动控制单元和外部逻辑控制单元连接;所述运动控制单元用于驱动运动模块实现机器人的运动状态的控制;所述外部逻辑控制单元用于传输并处理总线io模块的外部逻辑信号。运动控制单元负责机器人的运动控制,包括机器人的运动学(正逆解)、坐标系转换、轨迹规划和速度规划等功能;外部逻辑控制单元负责外围信号采样、逻辑控制等功能。进一步作为优选的实施方式,所述codesys控制模块上采用实时操作系统,所述每个总线式伺服驱动器均在运动控制单元上有对应的位置轴,且配置相应的运动控制参数。常规机器人控制系统中,只能控制有限的机器人轴数,若添加机器人轴时只能再添加运动控制卡,不利于系统扩展机器人轴数,且传统脉冲控制使得系统布局布线复杂,机器人控制系统运动控制的数据传输的实时性及可靠性也得不到保证。在本发明中,codesys控制模块上采用实时操作系统(codesysruntime),伺服轴的组态配置中添加伺服ethercat_slave从站时,伺服从站采用分布式时钟与主站进行通讯交互数据,在codesys控制模块中配置总线式伺服驱动器的pdo和sdo过程数据,伺服运动采用同步周期位置插补模式,同时在codesys设备树的组态里添加位置轴sm_drive_poscontrol,配置运动控制softmotion相关参数,为运动学、动力学及轨迹规划等算法做相关参数如目标转速、目标位置、目标转矩等参数的接口。如此可以随意地增加运动模块的个数,当需要增加机器人的轴和伺服电机时,只需在codesys控制模块上添加从站,并配置相应的信息,更加方便对机器人的控制和调整。本发明的控制系统中,一体化控制器采用x86架构硬件平台,运行于os操作系统(wince),负责机器人的任务规划、外部通讯、参数配置等上层任务;一体化控制器作为控制系统的主站(ethercat_master),是机器人控制系统的核心,主要负责控制算法、运动控制、逻辑控制的执行。总线式伺服驱动器、总线io模块等作为控制系统的从站(ethercat_slave),控制系统主站与从站采用分布式时钟进行通讯,采用ethercat总线通讯,通讯速度快,保证信号的实时性,保证系统的及时性及稳定性。总线io模块的信号主要有开关信息和模拟量,主要为机器人控制过程中的控制信号,信号的采用都由基于ethercat总线耦合器进行地址映射,包括开关量、模拟量、非总线式伺服等相关信号及控制对象。在一体化控制器设有codesys控制模块,codesys控制模块包括运动控制单元和外部逻辑控制单元。运动控制单元负责机器人的运动控制模块,包括机器人的运动学(正逆解)、坐标系转换、轨迹规划和速度规划等功能;外部逻辑控制单元负责外围信号采样、逻辑控制等功能。在运动控制单元中,运动学、动力学及轨迹规划等算法是通过c语言编程,设置相关接口,生成动态链接库(dll),作为codesys控制模块的外部库(codesys_library)调用;在控制器实时操作系统的sdk(开发环境中)编写不同的功能块,codesys控制模块中编写创建codesysieclibrary,并设置成外部功能块,与dll输入输出的相关接口对应,最后在codesys中进行运动学及轨迹规划动态链接库(dll)的实时调用,完成运动学、轨迹规划的程序功能的实现。运动控制单元在控制机器人的运动时,实时从动态链接库中调取函数,并根据函数快速地计算运动参数,并将运动参数发送至运动模块。外部逻辑控制单元主要工作是逻辑控制、模式管理、轴控制数据的更新、i/o系统的控制等。包括对外部逻辑信号的采样、处理。并在外部逻辑控制单元和运动控制单元之间交换数据。plc部分的工作主要还包括配置和逻辑控制,配置包括:配置任务、配置i/o、配置伺服、配置机器人轴参数;逻辑控制程序部分则负责数据的采样计算处理、机器人轴伺服驱动输入输出控制、i/o系统输入输出控制。运动控制单元和外部逻辑控制单元两者可以通过共享内存的方式进行数据交换。上述系统,机器人控制系统作为一体化控制的主站,能轻易的配置不同的总线从站,无须再配置额外的plc,降低系统的成本,采用ethercat的总线式控制系统,理论上能实现无限轴的控制,无须像rs485、canopen通讯等模式下需配置id、设置传输速率等参数,而且还容易受环境干扰等影响,提高了系统的稳定性和安全性。另外,整个系统的结构清晰明了,易于掌握,安装简单,使用方便。实施例二基于ethercat总线的工业机器人控制方法,包括以下步骤:b1、总线io模块获取用户输入的开关信息后,发送开关信息至codesys控制模块。b2、codesys控制模块接收到开关信息后,根据预设的执行信息实时从动态链接库调用预设的函数,并根据函数获取机器人的运动参数后,将运动参数通过ethercat总线发至总线式伺服驱动器;b3、总线式伺服驱动器根据运动参数控制伺服电机进行旋转。用户通过自动化控制设备输入开关信息,所述开关信息通过ethercat总线发送至一体化控制器,一体化控制器内的codesys控制模块根据开关信息,选择相应的工作模式,和启动机器人。在codesys控制模块控制过程中,实施从动态链接库调用函数,并根据函数计算机器人的运动参数,再将运动参数通过ethercat总线发送至总线式伺服驱动器,总线式伺服驱动器根据运动参数控制伺服电机进行旋转,从而控制机器人的工作状态。所述总线io模块不仅传输开关信号,还可传输控制机器人运动模式的控制信号,再或者视觉信号等。上述方法,总线io模块的信号和控制机器人的信息都是通过ethercat总线进行传输,无需额外的plc控制器,降低了成本,也提高了信号的稳定性和可靠性。实施例三如图2所示,基于ethercat总线的工业机器人控制方法,包括以下步骤:a1、示教器获取用户输入的控制信息后,将控制信息发至编译器。a2、编译器对控制信息进行编码后获得执行信息,并将执行信息发至codesys控制模块。所述控制信息包括直线运动指令、点对点运动指令、圆弧运动指令、条件选择指令、程序调用、焊接指令和码垛指令中的至少一种。a3、总线io模块获取用户输入的开关信息后,发送开关信息至codesys控制模块。a4、codesys控制模块接收到开关信息后,根据预设的执行信息实时从动态链接库调用预设的函数,并根据函数获取机器人的运动参数后,将运动参数通过ethercat总线发至总线式伺服驱动器。其中,所述预设的函数包括运动学函数和轨迹规划函数,步骤a4包括a41~a42:a41、根据轨迹规划函数获取机器人的运动步长和动态参数,以及根据运动学函数获取机器人的关节角度和坐标参数。a42、结合运动步长、动态参数、关节角度和坐标参数获取机器人的运动参数。a5、总线式伺服驱动器根据运动参数控制伺服电机进行旋转。a6、编码器实时采集伺服电机的旋转参数,并将旋转参数发送至总线式伺服驱动器,总线式伺服驱动器通过ethercat总线将旋转参数反馈至codesys控制模块。上述控制方法的工作原理为:用户通过示教器完成示教编程代码,生成指令直线运动lin、ptp点对点、圆弧指令、条件跳转以及运动速度和动态参数等相关信息,并且设置不同的位置点(包含坐标),此时一体化控制器系统读取客户完成示教器的编程代码,通过编译器进行示教编程的解码,转化成codesys控制模块可识别的可执行程序代码,codesys控制模块实时调用动态链接库(dll)的函数,完成运动学正逆解计算、机器人坐标系的转换以及轨迹规划的相关配置参数(速度规划以及位置规划),当机器人自动运行时候,codesys控制模块完成的运动学计算结果、轨迹规划后的位置、速度规划,通过ethercat总线通讯,将位置、速度、力矩等运动参数实时发送至总线式伺服驱动器,总线式伺服驱动器收到codesys控制模块经过插补算法计算得到的运动步长、目标位置、目标速度、加减速度、加减速时间等运动参数,每个运行周期执行对应的步长,实现伺服电机的正转、反转,从而完成实现机器人本体的连续运行,同时伺服电机上的编码器实时反馈至总线式伺服驱动器内,一体化控制器通过ethercat总线通讯读取电机当前的位置。在示教器中,实时显示机器人关节角度、工具坐标和用户坐标数值,方便用户实时了解机器人的运动状况,更加精准地控制机器人。以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1