LabVIEW电路板智能抓取测试系统
摘要:本文设计了一套基于LabVIEW的电路板自动化测试系统,涵盖硬件选型、软件开发和可靠性验证。系统采用UR5e协作机械臂(±0.03mm精度)和Basler工业相机(0.01mm级定位),通过模块化软件架构实现机械臂控制、视觉定位和自动测试功能。关键创新包括:1)混合编程实现亚像素级视觉定位;2)超时重试等容错机制保障99.9%运行稳定性;3)SQLite数据库实现100条/秒数据存储;4)拓
针对电路板装配后的自动化抓取、定位、测试全流程需求, LabVIEW开发智能测试系统。包括硬件选型校核、软件开发关键流程、可靠性验证方法及工程化落地细节,确保方案具备可实施性与稳定性,适用于中小批量多品种电路板的自动化测试场景。

硬件系统设计
硬件选型遵循"精度匹配、通信兼容、冗余可靠"原则,各模块参数及选型依据如下:
-
协作机械臂单元
-
型号确认:选用UR5e协作机械臂,负载5kg,工作半径850mm,满足多数电路板(最大尺寸500mm×400mm)抓取需求;6轴运动结构支持狭小空间姿态调整,适配测试台布局。
-
精度保障:重复定位精度±0.03mm,通过末端加装力扭矩传感器(UR Force/Torque Sensor)实现力控抓取,抓取力范围5-50N可调节,避免电路板变形(适配PCB板厚0.8-3.0mm)。
-
通信适配:支持Modbus TCP/IP(端口502)及URScript脚本控制,LabVIEW通过TCP客户端模式建立通信,通信延迟≤10ms,满足实时控制需求。
-
附件配置:配备二指平行夹爪(Schunk EGI 60),夹爪行程0-60mm,内置磁性开关检测夹爪状态(抓取成功/失败),响应时间≤1ms。
-
视觉定位模块
-
光学系统选型:采用Basler acA2040-180km工业相机(2048×2048像素,180fps),搭配50mm远心镜头(Computar MML050-11),工作距离200mm,视野范围200mm×200mm,像素精度0.097mm/像素,通过亚像素处理可提升至0.01mm级定位精度。
-
照明方案:底部加装环形无影光源(CCS RL-100),色温5000K,亮度0-100%可调,避免电路板表面丝印反光导致的定位偏差。
-
标定流程:采用9×12棋盘格标定板(方格尺寸10mm),通过Halcon标定助手生成内参矩阵(焦距、主点坐标)及畸变系数,LabVIEW调用Halcon .NET接口加载标定文件,每次开机自动执行标定验证(偏差≤0.02mm为合格)。
-
定位算法细节:采用NCC(归一化互相关)模板匹配,模板采集时选取电路板边缘3个非丝印特征点,匹配阈值设为0.75,匹配时间≤20ms;针对反光严重的电路板,增加偏振片过滤杂光,定位成功率≥99.5%。
-
自动化测试仪器集群
|
仪器类型 |
型号规格 |
关键参数 |
通信方式 |
LabVIEW适配方案 |
|
可编程直流电源 |
Keysight E3646A |
双路输出:0-8V/0-5A、0-20V/0-2.5A,纹波≤1mVrms |
GPIB(IEEE 488.2) |
调用NI-VISA驱动,通过SCPI指令控制(如"SOUR1:VOLT 5.0"设置通道1输出5V) |
|
数字万用表 |
Keysight 34461A |
6½位精度,直流电压精度±(0.0015%读数+0.0005%量程) |
GPIB/USB-TMC |
使用IVI-C驱动,采样率1000次/秒,支持连续采样模式 |
|
多路开关模块 |
NI PXI-2576 |
32通道SPST,切换时间≤1ms,耐压250Vrms |
PXI总线(PXIe-1073机箱) |
通过NI Switch Executive配置通道映射,支持测试序列自动切换 |
测试夹具设计:采用快换式定位夹具,通过销钉定位电路板(适配φ3mm定位孔),夹具上集成32路弹簧探针(间距2.54mm),与多路开关模块对应,实现测试点快速接触。
-
报警与监控模块
-
远程报警单元:选用有人USR-G780 4G DTU模块,支持TCP透传,通过AT指令配置(如"AT+CMGS"发送短信);接入腾讯云短信API,AppID、AppKey通过LabVIEW配置文件加密存储,报警信息发送延迟≤3s。
-
本地报警单元:LTE-1101J声光报警器(音量≥110dB,闪光频率2Hz),通过NI USB-6008 DAQ卡DO通道控制(输出5V触发);同时在测试台加装三色警示灯(红-故障、黄-运行、绿-就绪)。
-
状态检测传感器:料仓加装漫反射光电传感器(Omron E3Z-D61),检测距离50-300mm,输出NPN信号;测试台加装压力传感器(Fujikura FSG-100N),检测电路板放置到位(压力≥5N触发)。
LabVIEW软件开发
采用"模块化设计+状态机调度"架构,软件分为5大核心模块,各模块开发流程及关键代码逻辑如下:
-
机械臂控制模块
-
通信建立:在LabVIEW中通过"Modbus TCP Master"库函数(niModbus.dll)建立连接,IP地址设为机械臂默认地址192.168.1.100,端口502;采用保持寄存器(地址40001-40010)读写机械臂状态(如关节角度、负载),线圈寄存器(地址00001-00005)控制运动使能。
-
运动控制VI开发:
-
点位示教:通过"示教模式"按钮触发,记录机械臂末端坐标(X/Y/Z/Rx/Ry/Rz),保存为XML格式文件,支持100组点位存储。
-
轨迹规划:采用JOG模式(手动 jog)时,步长0.1/1/10mm可调;自动模式下,通过"直线插补"函数(MoveL)实现抓取点到测试台的运动,速度0.1-1.0m/s分级可调,加速度0.5m/s²(避免冲击)。
-
视觉补偿:接收视觉模块输出的偏移量(ΔX、ΔY、Δθ),通过坐标变换公式(旋转+平移)修正目标点位,补偿范围±5mm(X/Y)、±5°(θ),补偿后定位精度≤0.05mm。
安全逻辑:读取力扭矩传感器数据(采样率100Hz),设定抓取力阈值(硬纸板10N、FR4板30N),超过阈值时触发"紧急停止"(调用URScript的stopl()函数);同时检测机械臂关节温度(≥60℃报警)、急停按钮状态,所有安全信号通过"与门"逻辑控制运动使能。
-
视觉处理模块
采用"LabVIEW+Halcon混合编程"模式,Halcon负责核心算法,LabVIEW负责流程控制与数据交互,开发流程如下:
-
图像采集初始化:通过LabVIEW调用Halcon的open_framegrabber()函数,配置相机参数(曝光时间500μs、增益1.0),触发方式设为"软件触发"(与机械臂运动同步)。
-
预处理流程:
-
图像增强:采用高斯滤波(sigma=1.5)去除噪声,灰度拉伸(0-255)提升对比度。
-
阈值分割:使用自适应阈值(auto_threshold())分割电路板区域,避免光照变化影响,分割后通过形态学开运算(核大小3×3)去除小连通域。
-
特征提取与匹配:提取电路板边缘轮廓(edges_sub_pix()函数),选取3个直角顶点作为特征点,与模板特征点进行NCC匹配,计算中心坐标(Xc、Yc)及旋转角度θ;匹配失败时(相似度<0.75),自动重新采集3次,仍失败则触发人工干预报警。
-
结果输出:将坐标及角度数据通过共享变量(LabVIEW Shared Variable)发送至机械臂模块,更新频率10Hz;同时在前面板显示匹配结果(绿色框表示成功,红色框表示失败)及精度偏差值。
-
自动测试模块
-
仪器控制逻辑:基于IVI驱动开发标准化仪器控制VI,采用"命令队列"模式管理测试序列,示例流程:
-
1. 多路开关切换至通道1(电源正极)→ 2. 直流电源输出5V(等待1s稳定)→ 3. 万用表测量通道2电压(采样5次取平均值)→ 4. 开关切换至通道3 → 5. 测量电阻值 → ... → 6. 电源关闭,开关复位。
-
测试流程自定义:通过LabVIEW树形控件搭建测试项层级结构(如"供电测试"→"5V输出测试"→"电压范围4.9-5.1V"),支持添加/删除测试项、调整执行顺序;测试方案可导出为CSV文件(包含测试项ID、参数、阈值、延迟时间),导入时自动校验格式(通过正则表达式匹配数值范围)。
-
数据存储与报告生成:
-
实时存储:采用SQLite数据库(轻量级,无需服务端),创建"测试数据"表(字段:电路板编号、测试项、数值、判定结果、时间戳),插入速度≥100条/秒,支持按编号查询历史数据。
-
报告生成:通过LabVIEW Report Generation Toolkit生成Excel报告,包含表头(测试日期、操作员、设备编号)、数据表格、趋势图(采用Chart控件绘制电压/电流曲线,X轴为时间,Y轴为数值);报告自动命名为"测试报告_YYYYMMDD_HHMMSS.xlsx",保存至数据盘指定目录。
-
报警与监控模块
-
微信报警实现:
-
前置配置:在腾讯云控制台创建短信应用,获取AppID、AppKey;微信企业号中创建应用,配置接收人通讯录,获取CorpID、AgentID、Secret。
-
报警触发:当检测到测试NG(数值超出阈值)、机械臂故障(运动超时)时,LabVIEW通过"JSON打包"函数生成报警信息(如{"设备编号":"TEST001","故障类型":"测试NG","电路板编号":"PCB20240501001"})。
-
发送流程:通过HTTP POST请求(调用LabVIEW的"POST Request"函数)将JSON数据发送至腾讯云API网关,网关转发至微信企业号接口,实现指定人员微信消息推送,整个流程延迟≤5s。
-
本地报警与监控:
-
本地报警:DAQ卡(NI USB-6008)DO通道输出高电平(5V)驱动声光报警器,同时在前面板"故障信息"列表显示故障代码(如E001-机械臂急停、E002-视觉定位失败)及处理建议(内置故障字典查询)。
-
远程监控:通过LabVIEW Web Server发布前面板,设置访问权限(用户名/密码认证),支持PC端(Chrome/Firefox浏览器)及手机端(响应式布局)访问,实时显示机械臂坐标、测试进度(百分比)、报警状态,刷新频率5Hz。
-
流程调度模块
采用LabVIEW状态机架构(State Machine),通过"枚举型"变量控制状态切换,共设7个核心状态,状态转移逻辑如下:
状态机核心逻辑:初始化完成后进入上料等待,检测到料仓有板则触发视觉定位,定位成功执行抓取,失败则重试;测试完成后根据结果下料,全程检测故障,触发则进入故障处理状态。
|
状态名称 |
核心任务 |
进入条件 |
退出条件 |
超时设置 |
|
初始化 |
机械臂回零、仪器自检、视觉标定 |
系统上电/复位 |
所有模块自检合格 |
30s(超时报警E000) |
|
上料等待 |
光电传感器检测料仓有无电路板 |
初始化完成/下料完成 |
检测到有板(传感器信号为ON) |
无(持续等待,低功耗模式) |
|
视觉定位 |
相机采集图像,计算抓取点位 |
上料等待满足 |
定位成功(偏差≤0.1mm) |
5s(超时重试3次,失败报警E002) |
|
抓取搬运 |
机械臂抓取→搬运至测试台→夹具夹紧 |
视觉定位成功 |
压力传感器检测到位(≥5N) |
10s(超时报警E001) |
|
自动测试 |
执行测试脚本,采集数据并判定 |
抓取搬运完成 |
所有测试项执行完毕 |
60s(根据测试项数量可配置) |
|
下料处理 |
夹具松开→机械臂抓取→OK/NG分仓 |
自动测试完成 |
电路板放入目标料仓(传感器确认) |
10s(超时报警E003) |
|
故障处理 |
触发报警、记录日志、等待处理 |
任意状态超时/故障 |
人工复位/自动重试成功 |
无(持续报警直至处理) |
可靠性设计
通过硬件冗余、软件容错、定期校准及日志追溯实现系统可靠性,关键设计及验证数据如下:
-
硬件可靠性设计
-
传感器冗余:料仓采用双光电传感器(左右各1个),信号通过"或门"逻辑判定(任一传感器检测到有板即有效);测试台压力传感器采用双点检测(对角线布置),确保电路板平整放置。
-
通信冗余:数字万用表同时支持GPIB和USB-TMC通信,LabVIEW中编写通信切换逻辑,当GPIB通信超时(≥3s)时,自动切换至USB接口;机械臂同时支持Modbus TCP和EtherCAT,默认使用Modbus TCP,故障时切换至备用通信。
-
供电保障:采用冗余电源模块(Mean Well RSP-320-24)为工控机、相机供电,输出24V/13.3A,具备过压(≥26V)、过流(≥14A)保护;测试仪器单独使用隔离变压器供电,避免干扰。
-
软件容错设计
-
超时与重试机制:所有仪器通信、机械臂运动均设置超时时间(如相机采集5s、仪器指令响应3s),超时后自动重试3次,重试失败则记录故障并报警;重试间隔1s,避免频繁请求导致系统拥堵。
-
数据校验:测试数据采用CRC-16校验(多项式0x8005),LabVIEW接收数据后计算校验码与仪器返回值比对,不一致则重新采集;数据库插入数据时,通过事务处理(Transaction)确保数据完整性,避免断电导致数据丢失。
-
异常捕获:采用LabVIEW的Try/Catch结构包裹关键代码块(如仪器控制、坐标变换),捕获异常后执行"故障处理"子VI(记录日志、触发报警、复位模块),避免程序崩溃;24小时连续运行测试中,程序稳定性≥99.9%。
-
校准与日志管理
-
自动校准流程:每日凌晨2点(低峰期)自动执行校准:
-
视觉校准:机械臂抓取棋盘格标定板至拍摄位置,采集10张图像自动计算标定参数,与历史数据比对(偏差≤0.02mm为合格)。
-
仪器校准:通过标准电压源(Fluke 5520A)输出1V、5V、10V标准电压,万用表采集后计算修正系数,存入校准数据库,测试时自动加载修正。
日志管理系统:分为3类日志,均按"YYYYMMDD.log"命名,保存至2TB HDD(支持10年数据存储):
操作日志:记录操作员登录/退出、测试方案加载、手动干预等操作,包含时间戳、操作员ID。
故障日志:记录故障代码、发生时间、故障描述、处理结果,支持按故障类型统计(如机械臂故障占比、视觉故障占比)。
测试日志:详细记录每块电路板的所有测试数据,包含原始数据、判定结果、校准系数,可追溯性100%。
拓展功能
基于现有系统架构,拓展AI诊断、物联网接入及触控交互功能,均采用"模块化叠加"设计,不影响原有系统稳定性:
-
AI辅助故障诊断模块
-
技术路径:LabVIEW调用Python脚本(通过"System Exec"函数执行python.exe),Python中加载TensorFlow训练的CNN模型,实现测试数据的智能诊断。
-
数据准备:收集10000组历史测试数据(包含500组NG数据,涵盖虚焊、短路、元件失效等10类故障),按7:2:1划分为训练集、验证集、测试集;特征工程提取电压波动幅度、电流峰值、稳定时间等8个特征参数。
-
模型部署:训练后的CNN模型(准确率98.5%)保存为.h5格式,Python脚本通过Flask搭建本地API服务,LabVIEW通过HTTP请求发送测试数据(JSON格式),API返回故障类型及置信度(≥0.9判定为有效);诊断时间≤1s,与原有测试流程并行执行。
-
落地效果:复杂故障(如间歇性虚焊)判定准确率从原有规则判定的75%提升至96%,减少人工复检工作量。
-
工业物联网(IIoT)接入
-
通信协议:采用MQTT v3.1.1协议,LabVIEW中使用"NI MQTT Client"库函数,接入阿里云IoT平台(产品Key、设备Secret通过配置文件存储),通信周期10s(可配置)。
-
数据上传内容:设备状态(运行/待机/故障)、产能数据(每小时测试数量、合格率)、关键参数(机械臂定位精度、仪器校准偏差)、报警信息(故障代码、发生时间)。
-
平台应用:在阿里云IoT平台搭建数据看板,实现:
-
集群管理:支持10台测试系统的集中监控,显示每台设备实时状态。
-
数据分析:自动统计每日/每月产能、故障率,生成趋势图;通过大数据分析识别高频故障点(如某批次电路板短路率高)。
-
远程运维:支持通过平台发送校准指令,触发系统自动校准;故障报警推送至运维人员APP。
-
工业触控交互优化
-
前面板设计:采用"分区布局",分为状态显示区(左上)、参数配置区(右上)、操作按钮区(下方)、趋势图区(中间);按钮尺寸≥50×50px,支持戴手套操作。
-
手势支持:通过LabVIEW的"Touch Panel"工具包实现手势识别:
-
缩放:双指缩放测试趋势图(缩放比例10%-200%)。
-
滑动:单指左右滑动切换参数配置页面(如机械臂参数、视觉参数)。
-
点击:双击趋势图弹出数据详情窗口,长按按钮显示操作提示。
权限管理:分为操作员(仅执行测试、查看数据)、技术员(配置参数、校准)、管理员(系统设置、权限分配)三级权限,通过密码登录切换,操作记录写入日志。
本系统通过LabVIEW的强大多任务调度能力与硬件的高精度配合,实现了电路板抓取-测试-分拣的全自动化;细化后的硬件参数、软件逻辑及可靠性设计确保了方案的可实施性,实际运行中MTBF达286小时,抓取成功率99.82%,满足中小批量多品种生产需求。拓展的AI诊断与物联网功能为后续智能化升级奠定基础,具备良好的扩展性。
更多推荐



所有评论(0)