凌华科技PCIe-833x运动控制卡在晶圆AOI检测中的应用
晶圆AOI检测设备,使用线扫描相机,沿X方向对晶圆上的每个晶粒进行扫描,同时在扫描到每个晶粒时,相机会在Z方向做上下的微调整,用于准确地对焦。当一行扫描完成后,相机会在Y方向移动到下一行晶粒,继续之前的动作,直到整个晶圆扫描完成。
PCIe-833x EtherCAT运动控制卡介绍
凌华科技PCIe-833x是一款基于硬件的EtherCAT运动控制卡,能够同时支持多达64个同步轴和超过10,000 个I/O 点。PCIe-833x具有专用的隔离紧急停止输入(EMG) 和可配置的隔离高速数字输入,不仅具有通用传感器输入,而且具有高达1MHz 输入频率的脉冲输入。
在250μs 的最小通讯周期内提供最佳的抖动控制,优化半导体、电子制造等自动化应用领域的同步I/O 性能。
PCIe-833x产品特性
•通过EtherCAT 可实现多达64 轴的运动控制和10,000 个I/O 点控制
•EtherCAT 控制周期高达250μs
•兼容大多数EtherCAT从站
•专用的紧急停止输入
•板卡自带4通道隔离数字输入/4通道隔离数字输出
•单通道脉冲输入
•针对轨迹应用的点表功能
•支持最高达16D直线插补,3D圆弧插补和3D螺旋插补
•对于独立的应用,提供8个程序可下载功能
•支持从站ID设置
晶圆AOI检测
晶圆AOI检测功能需求
1)两轴插补功能。
2)2D触发功能(在扫描过程中,相机在Z轴方向做上下对焦动作)。
PCIe-833x解决方案:
1)两轴插补中使用PT功能,客户可以指定在同一个时间点X及Z的位置,以及相关各轴的速度,用到的函数和语法如下,
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端的编程环境,在单个硬件平台上实现应用程序的集中控制,从而降低成本,提高系统可靠性和安全性。