支持工业以太网接口的激光跟踪仪在线实时测量系统
2018-03-15肖文磊王翔宇张鹏飞赵罡
肖文磊,王翔宇,张鹏飞,赵罡
随着智能制造概念的提出,柔性更高,精度更高,效率更高的制造设备在工业各领域快速发展,搭载多种传感器的工业机器人制造设备被更多地投放到生产当中。然而机器人制造存在刚度不够导致制造精度降低的问题,这要求智能制造系统能够实时对机器人的位姿精确定位来实现修正,同时使不同传感器的数据能够实时地通信。在机器人测量方面,机器人协同测量的技术以及测量数据处理的技术是当前技术的研究难点[1-3]。为了在制造过程中实时精确地反映机器人状态,多种传感器诸如CCD、激光跟踪仪、激光扫描仪等,都被用到了机器人末端位姿的测量过程中。在文献[2]中,作者为了解决测量系统自动化程度低,实时性不好的缺陷,提出了一种基于光电扫描的三维坐标测量系统,该系统虽然解决了实时的问题却并没有提出总线的概念,无法更进一步地实现不同传感器数据的归一化处理;在文献[4]中,作者利用线性光源和CCD照相机的方式在实时监视柱面的加工过程,最终实现了制造过程中的在线测量;在文献[5]中,作者利用视觉传感器替代传统的CMM来对引擎表面的空洞进行测量,解决了制造过程中的自动化和在线测量问题;在文献[6]中,作者设计了一种利用视觉传感器和激光跟踪仪组合测量的白车身质量在线检测系统,提高了测量系统的柔性,并实现了在线测量,但没有研究测量的实时性;在文献[7]中,作者利用两个固定的激光扫描系统来实时获取工件的关键信息,并以视觉系统作为辅助,实现了对长度的高速动态测量;在文献[8]中,作者利用CCD照相机监视和校正轮轴的磨损,进而对机械加工过程进行补偿;在文献[9]中作者针对机器人在连续运动过程中可能出现的自身参数变化导致其重复精度下降的问题,提出了一种主要基于视觉传感器的在线测量和补偿手段。
利用视觉的方式对制造过程进行在线检测,是一种比较直观的方式,通过加以图像处理的算法,可以得到理想精度的位置测量结果,但是测量结果需要经过繁琐的算法解析,同时没有强调数据实时通信的问题。因此本文提出一种更加直接的位置在线测量方法,并首次将EtherCAT现场工业以太网总线的概念引入激光跟踪仪的使用过程中,通过嵌入式模块将激光跟踪仪开发成为EtherCAT从站,利用激光跟踪仪这种直接反映被测对象坐标的高精度坐标测量机器来实时检测被测对象的位置,省去了解算坐标的过程,同时可以达到微米级的测量精度和优良的实时性能。
1 系统硬件总体设计
本文主要介绍了一种支持工业以太网接口的激光跟踪仪在线实时测量系统的设计与实施方法,实现激光跟踪仪较高频率的在线实时测量,并将测量数据返回给主站供后续制造过程利用。传统的激光跟踪仪通过以太网与计算机相连,并在计算机上利用第三方提供的商业软件来控制激光跟踪仪完成测量任务。采用得到测量数据后,离线分析处理的方式,不能将数据实时导出。激光跟踪仪提供了底层接口函数,为激光跟踪仪的二次开发提供了可能性。为了将激光跟踪仪接入现场以太网总线当中,就需要这样一种介质,它既可以通过以太网协议来与激光跟踪仪进行通信,又可以通过一种方式与EtherCAT总线进行通信。为了实现这样的功能,本文在从站的设计过程中引入了实时嵌入式系统。
首先,激光跟踪仪采用TCP/IP通信协议进行数据传输,因此需要在嵌入式模块中设计相应的网络模块来与激光跟踪仪进行通信。本文中选择DMA9000以太网接口芯片,该芯片采用LQFP-48P封装,集成10/100 M物理层接口,遵循IEEE802.3以太网传输协议,IO读写时间10 ns,完全满足系统需求。其次,为了解决嵌入式模块与EtherCAT总线的通信问题,引入了EtherCAT串行通信终端模块EL6021与EtherCAT从站控制器EK1100。EL6021端子模块是德国倍孚自动化公司生产的一种串行总线接口端子模块,通过EL6021端子模块,可以连接带RS422或RS485接口的设备,这些设备通过耦合器与自动化设备通信,其通信通道独立于上一层总线系统,并且可以在全双工或半双工模式下工作,其通信速率可以达到115.2 Kbaud。配置EL6021端子模块对象数据字典如表1所示。
表1 EL6021的CoE设置Table 1 CoE configuration of EL6021
本文为了增强接口的抗干扰能力,使信号经过电气隔离处理,采用符合RS422协议规范的差分信号进行数据的传输,这样就可以实现利用全双工串行通信的方式来读取嵌入式主控芯片中的数据。最后,根据上述的需求来选择嵌入式微处理器芯片,最终选择了Cortex-M3架构的32位嵌入式微处理器STM32F103ZE。该处理器具备优异的实时性能,集成整合性高,并且 可以满足网络通信和串口通信的需求。最终系统的总体设计如图1所示。其中微处理器与EL6021间的通信通过RS422芯片处理,采用全双工RS422模式,微处理器与激光跟踪仪的通信通过DMA9000芯片,采用标准的以太网协议进行通信。
图1 系统总体设计结构Fig. 1 General system structure
2 系统软件设计
系统软件部分主要解决EtherCAT激光跟踪仪从站模块三端的通信问题:1)从站与激光跟踪仪之间的通信;2)嵌入式微处理器与EtherCAT从站控制模块的通信;3)EtherCAT从站与EtherCAT主站之间的通信。
首先,从站与激光跟踪仪之间的通信通过发送和解析激光跟踪仪数据报文的方式,来实现从站对激光跟踪仪的完全控制以及从站读取激光跟踪仪返回的数据报文。激光跟踪仪数据报文结构如图2所示。采用Socket网络编程实现从站模块与激光跟踪仪的TCP/IP连接,按照激光跟踪仪接口函数中的数据格式对发送数据进行打包处理以及对激光跟踪仪返回数据进行解包处理。在微处理器程序中,将激光跟踪仪的所有指令根据其数据格式写成不同的接口函数,处理器通过解析EL6021端子发送的Modbus数据报文来调用相应的接口函数,再通过以太网协议将指令发送给激光跟踪仪。在本软件设计中,通过将激光跟踪仪所有的指令进行编号的方式,简化程序的处理过程。程序流程如图3所示。当嵌入式微处理器解析激光跟踪仪返回数据以后,会立即实时地将数据按照Modbus报文格式经过EL6021端子模块发送给从站,以供主站实时扫描从站获取激光跟踪仪返回的数据。
图2 激光跟踪仪数据报文Fig. 2 Laser tracker data frame
图3 嵌入式程序工作流程Fig. 3 Embedded system program flow chart
其次,微处理器与EtherCAT串行通信终端EL6021之间的通信采用标准的Modbus协议进行全双工串行通信。格式如图4所示,包含激光跟踪仪站号,指令的功能码,报文字节数,指令参数以及16位循环冗余校验码(CRC)。在这个过程中,主站向从站控制器EK1100发出相应的指令,接着从站根据主站发出的指令,生成相应的Modbus报文并通过EL6021端子模块将报文传送到嵌入式微处理器,微处理器对报文进行解析之后做出对应指令的响应,生成相应的以太网数据报文发送给激光跟踪仪。
图4 Modbus数据帧Fig. 4 Modbus data frame
最后,EtherCAT从站与EtherCAT主站之间的通信通过EK1100完成。根据通信的实时性要求,采用过程数据处理的方式(process data object,PDO)来处理激光跟踪仪从站所发回的数据报文。在PLC程序中建立变量与过程数据字典对象的一一映射关系,如表2所示。通过在主站中进行PLC编程,在主站中生成Modbus报文发送到从站当中,并通过EL6021端子模块将报文最终发送到嵌入式微处理器内存当中。此外,主站还需要不断地扫描从站中的过程数据,来实时刷新激光跟踪仪的状态数据。为了实现这一功能,在主站中建立了两个任务,其中一个用于前台的数据发送和接收,即从站与从站设备激光跟踪仪,另外一个用于后台的数据交换,即主站与从站之间的数据交换。后台的通信程序主要通过调用COMportControl_MASTER函数来实现。前台的程序需要实现串行通信数据的收发功能[10]。要在不断循环的PLC程序中实现这一功能并考虑到之后使用的便利性,本文采用状态机的方式来实现这一功能,如图5所示。在程序中给串行通信定义了3种状态,即发送、延时和接收。每一种状态的结束会通过给变量nState赋值的方式来迫使程序进入下一种状态从而实现了3种状态之间的循环执行。同时,为了实现每一次主站操作只发送对应指令一次的模式,程序设计了指令发送确认变量Com_Confirm以及指令计数器变量Com_Counter,通过设计条件语句保证每个指令在主站一次操作中只被执行一次,其对应的条件如表3所示。
图5 主站程序状态机Fig. 5 Master program state machine
表2 数据字典映射关系Table 2 Object data dictionary mapping
表3 发送指令判断条件Table 3 Judgment for sending command
解决了各个模块之间的通信问题之后,需要对激光跟踪仪的数据传输最小周期进行测定,以满足数据处理的实时性要求。激光跟踪仪数据传输周期的测定实验通过示波器进行测定,如图6所示。每当激光跟踪仪回传一次测量结果,就将微处理器的一个IO进行翻转,通过逐渐缩短激光跟踪仪数据数据传输周期的方式来寻找编程可以实现的最小数据传输周期,最终测定结果为100 ms,可以满足较高频率测量的要求。
根据数据传输的最小周期,就可以进行后续的应用程序开发。如图7所示,应用程序需要在100 ms的数据周期内,完成对激光跟踪仪数据报文的解析,对数据的简单处理,然后将数据通过串口发送给从站控制器并留有一定的时间余量。这就要求在设计的过程中,应该提高应用程序的执行速度。
图6 激光跟踪仪周期测量Fig. 6 Laser Tracker cycle measurement
经过对两端通信的逻辑关系确定之后,从站应用程序工作流程如图8所示。系统将所有的接收发送任务均做了最简化处理,来缩短程序处理数据的时间以尽可能地满足实时性能要求。同时,系统运行在RT-Thread实时操作系统上,这又从另一方面提高了程序运行的实时性,通过在系统内部创建了激光跟踪仪数据接收和处理线程,主站数据接收和处理线程,以及用于状态指示的LED线程,可以使嵌入式程序稳定可靠的运行。
图7 应用程序实时性要求Fig. 7 Program real-time requirement
图8 应用程序流程Fig. 8 Application flow chart
3个线程的关系如表4所示,其中激光跟踪仪数据接收和处理线程和主站数据接收和处理线程具备相同的优先级,两者采用时间片轮转的方式进行交替运行,确保两端通信的可靠性,LED灯线程具备低于前两者的优先级,主要用于指示程序是否正常运行。采用这种工作模式,有利于提高软件运行效率和响应的实时性,同时使应用程序层次清晰,各个模块之间不会出现过多的耦合,从而降低了程序卡死的情况,提高了执行的效率[11]。
表4 线程主要配置参数Table 4 Thread configurations
通过执行该应用程序,可以建立从站与激光跟踪仪之间的连接,配置激光跟踪仪测量所需要的各种参数,包括选定测量模式,补偿模式等。完成所有必须的配置之后,再通过应用程序向激光跟踪仪发送开始测量指令,之后应用程序进入接收工作模块,并且实时将接收到的数据在要求时间内通过串行通信的方式发送到从站控制器供主站实时扫描利用。
3 实验测试
应用程序的实验被测量对象为KUKA机器人,该机器人用于复杂零件的增减材制造,如图9所示。实验过程中机器人运行速度为30%,通过自带示波器功能将激光跟踪仪返回坐标测量数据连接到示波器当中,可以执行监视数值的实时显示。
图9 实验测试环境Fig. 9 Experimental environment
测量结果如图10所示,分别监视了被测量机器人末端的3个坐标数值(X, Y, Z),通过观察数据的周期性变化,验证系统的可行性。局部放大后,根据阶梯形周期性变化规律,可以得到数据刷新的周期为100 ms,与激光跟踪仪返回数据的周期完全匹配,同时,通过将示波器数据导出对具体的数据信息进行分析。部分ΔT导出数据整理后如表5和图11所示,表5和图11示意了图10所示示波器中经过整理后的原始数据。其中,表5中主站数据时间戳由主站自动标记,从站数据时间戳由解析激光跟踪仪返回数据报文获得,从图表中也可以看出,两者匹配良好,达到了预期的100 ms的反馈周期,达到了预期的实时性能。
图10 示波器实验结果Fig. 10 Experimental result of scope view
表5 示波器导出数据整理Table 5 Scope exported data collation
图11 示波器导出数据绘图Fig. 11 Drawing of the exported data from scope
4 结束语
本文详细阐述了一种激光跟踪仪在线实时测量系统的设计和实现方法。通过利用嵌入式模块和EtherCAT从站控制器模块,将激光跟踪仪开发成为了一种工业以太网总线的从站,使其支持了工业以太网接口,实现了将激光跟踪仪接入现场总线,并且实时的把测量数据发送到总线当中的功能。从系统硬件的选择到软件系统的开发都做了详尽的阐述,并且通过实验测试了系统的可靠性。通过实验证明了系统达到了预期的100 ms的反馈周期,并且具备理想的数据精度,可以将系统应用于一些需要在线测量的制造过程当中,从而拓展了激光跟踪仪的使用范围。
[1]李明富, 马建华, 张玉彦. 基于机器人的空间坐标测量技术研究现状及发展趋势[J]. 机械科学与技术, 2014, 33(12):1818–1825.LI Mingfu, MA Jianhua, ZHANG Yuyan. The state and development tendency of the space coordinate measuring technology via robots[J]. Mechanical science and technology for aerospace engineering, 2014, 33(12): 1818–1825.
[2]端木琼, 杨学友, 邾继贵, 等. 基于光电扫描的三维坐标测量系统[J]. 红外与激光工程, 2011, 40(10): 2014–2019.DUANMU Qiong, YANG Xueyou, ZHU Jigui, et al. 3D coordinate measurement system based on optoelectronic scanning[J]. Infrared and laser engineering, 2011, 40(10):2014–2019.
[3]隋少春, 楚王伟, 李卫东. 数控加工在线测量技术应用探讨[J]. 航空制造技术, 2010(22): 44–46.SUI Shaochun, CHU Wangwei, LI Weidong. Application of on-line measurement technology in NC machining process[J]. Aeronautical manufacturing technology, 2010(22):44–46.
[4]YIN Peng, SUN Changku, WANG Peng, et al. Online measurement system for the surface inclination of metal workpieces[C]//International Conference on Optical Instruments and Technology. Beijing, China: SPIE, 2013: 90460Q.
[5]SHI Yongqiang, SUN Changku, MA Yukun, et al. Highprecision automatic online measurement system of engine block top surface holes[J]. Optical engineering, 2012, 51(5):53604.
[6]GUO Yin, YANG Xueyou, LIU Changjie, et al. Flexible coordinate measurement system based on robot for industries[C]//Proceedings of the 5thInternational Symposium on Advanced Optical Manufacturing and Testing Technologies.Dalian, China: SPIE, 2010: 76567D.
[7]GUO Yongcai, ZHOU Sen, GAO Chao. Development of a novel high-speed dynamic length measurement system for mobile and large-scale cylinder workpiece[J]. Proceedings of the institution of mechanical engineers, part B: journal of engineering manufacture, 2014, 229(5): 823–834.
[8]CHEN jiang, WU Kaihua. CCD calibration method for wheel set wear online measurement[C]//Optical Metrology and Inspection for Industrial Applications. Beijing, China:SPIE, 2010, 7855: 785521.
[9]LIU Changjie, ZHANG Zhongkai, CHEN Yiwei. A method of robot parameters rapid error compensation for online flexible measurement system[C]//Proceedings of the 4th International Seminar on Modern Cutting and Measuring Engineering. Beijing, China: SPIE, 2011, 7997: 79971F.
[10]单春荣, 刘艳强, 郇极. 工业以太网现场总线EtherCAT及驱动程序设计[J]. 制造业自动化, 2007, 29(11): 79–82.SHAN Chunrong, LIU Yanqiang, HUA Ji. EtherCAT-industrial Ethernet fieldbus and its driver design[J]. Manufacturing automation, 2007, 29(11): 79–82.
[11]马军贤, 周侗, 杨志家, 等. EtherCAT从站的设计与实现[J]. 自动化与仪表, 2011, 36(8): 37–40.MA Junxian, ZHOU Tong, YANG Zhijia, et al. Design and implementation of EtherCAT slave[J]. Automation and instrumentation, 2011, 36(8): 37–40.