服务热线 :0755-28197030
EtherCAT控制方案案例
凌华科技SuperCAT运动控制器在锡膏印刷机上的应用


凌华科技SuperCAT运动控制器在锡膏印刷机上的应用


应用背景

        高精密PCB锡膏印刷机采用涂布技术,通过压力和镀膜刮刀来控制锡膏的厚度和形状。操作流程主要包括:板上定位、锡膏供料、锡膏印刷、印刷检测和清洁,最终完成一个PCB电路板的制作。早期的设备都采用脉冲卡的方式实现精准的运动控制,随着设备功能的不断升级和精度的不断提高,越来越多的客户在开发新设备的时候会考虑采用软件控制器平台的方式,这样一方面可以使功能升级变得更加容易,另一方面也有助于设备的整体后续维护的成本降低。

SuperCAT产品概述

        SuperCAT是凌华科技打造的基于软件控制的EtherCAT运动控制器,其核心的控制软件来自于凌华二十多年运动控制经验的积累,整合了凌华脉冲卡和EtherCAT总线卡的所有功能,系统通讯周期相比硬件的EtherCAT总线卡得到了大幅提升,同时可以满足更多轴数的应用需求。

SuperCAT产品特性:

• 具备EtherCAT主站功能

• 运动控制周期高达125us

• 最多支持128轴运动控制

• 最低 API 延迟<10us

• APS SDK 支援

• MotionCreatorPro2 支援

• 支持开发语法 C#, .NET, C/C++, Python, Java…etc

• 支援多任务与实时程序运行


锡膏印刷机功能需求:

1) 轴运动控制以点位运动和两轴插补功能为主。

2) 需要在高速运行状态下实现2D触发,用于视觉定位和飞拍应用,通过软件触发的方式在高速运行状态下无法满足设备的需求。


SuperCAT解决方案:

        该设备的核心运动控制单元采用SuperCAT主控软件,搭配凌华ECAT-TRG4模块,实现了多应用接口的扩展以及高速2D位置比较触发功能,用于替代传统的脉冲控制解决方案,该组合不仅帮助用户提升了设备的产能,同时也为后续新产品的开发选定了新的开发平台。

1) 两轴插补中用到的函数和语法如下,

APS_pt_motion_add_point

Syntax: C/C++:

I32 APS_pt_motion_add_point ( I32 Axis_ID, I32 ArraySize, F64 *PositionArray, F64 *TimeArray ); Visual Basic: APS_pt_motion_add_point(ByVal Axis_ID As Long, ByVal ArraySizeAs Long, PositionArrayAs Double, TimeArrayAs Double) As Long

APS_pt_motion_get_status

Syntax: C/C++:

I32 APS_pt_motion_get_status( I32 Axis_ID, I32 *FreeSize, I32 *PointCount, I32 *State ); Visual Basic: APS_pt_motion_get_status (ByVal Axis_ID As Long, FreeSize As Long, PointCountAs Long, StateAs Long) As Long

APS_pt_motion_start

Syntax: C/C++:

I32 APS_pt_motion_start (I32 Dimension, I32 *Axis_ID_Array, I32 Enable ); Visual Basic: APS_pt_motion_start(ByVal Dimension As Long, Axis_ID_Array As Long, ByVal Enable As Long) As Long

APS_pt_motion_reset

Syntax: C/C++:

I32 APS_pt_motion_reset (I32 Axis_ID); Visual Basic: APS_pt_motion_reset (ByVal Axis_ID As Long) As Long

调试界面如下,


2)2D触发功能

2D触发功能通过外接ECAT-TRG4 4通道高速位置比较和触发模块实现,ECAT-TRG4 是 EtherCAT从端模块,具有高速位置比较触发和编码器单个信号中继功能,该模块的规格如下,


• 4 通道点表触发-最大10 MHz带FIFO 255 点

• 4 通道线性触发 - 最大10MHz

• 4 通道位置锁存 - 最大3 MHz带 255 点

• 硬件紧急停止接口

• 通过主站最多支持 32 组龙门功能

• 轴参数的断电记忆

• 支持编码器信号中继功能

• 支持高级点表

需要用到的函数和语法如下,

APS_set_field_bus_multi_trigger_table

Syntax:

C/C++:

I32 APS_set_field_bus_multi_trigger_table( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 MTCmpCh, I32 Dimension, MCMP_POINT *DataArray, I32 ArraySize , I32 Window );

APS_get_field_bus_multi_trigger_table_cmp

Syntax:

C/C++:

I32 APS_get_field_bus_multi_trigger_table_cmp( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 MTCmpCh, I32 Dimension, MCMP_POINT *CmpVal );

APS_get_field_bus_multi_table_cmp_remain_count

Syntax:

C/C++:

I32 APS_get_field_bus_multi_table_cmp_remain_count( I32 Board_ID, I32 BUS_No, I32 MOD_No, I32 MTCmpCh, I32 *Cnt );



        用户可通过PC端的编程环境,在单个硬件平台上实现应用程序的集中控制,从而降低成本,提高系统可靠性和安全性。