针对电路板装配后的自动化抓取、定位、测试全流程需求, LabVIEW开发智能测试系统。包括硬件选型校核、软件开发关键流程、可靠性验证方法及工程化落地细节,确保方案具备可实施性与稳定性,适用于中小批量多品种电路板的自动化测试场景。

硬件系统设计

硬件选型遵循"精度匹配、通信兼容、冗余可靠"原则,各模块参数及选型依据如下:

  1. 协作机械臂单元

  • 型号确认:选用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。

  1. 视觉定位模块

  • 光学系统选型:采用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%。

  1. 自动化测试仪器集群

仪器类型

型号规格

关键参数

通信方式

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),与多路开关模块对应,实现测试点快速接触。

  1. 报警与监控模块

  • 远程报警单元:选用有人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大核心模块,各模块开发流程及关键代码逻辑如下:

  1. 机械臂控制模块

  • 通信建立:在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℃报警)、急停按钮状态,所有安全信号通过"与门"逻辑控制运动使能。

  1. 视觉处理模块

采用"LabVIEW+Halcon混合编程"模式,Halcon负责核心算法,LabVIEW负责流程控制与数据交互,开发流程如下:

  1. 图像采集初始化:通过LabVIEW调用Halcon的open_framegrabber()函数,配置相机参数(曝光时间500μs、增益1.0),触发方式设为"软件触发"(与机械臂运动同步)。

  2. 预处理流程

  3.         图像增强:采用高斯滤波(sigma=1.5)去除噪声,灰度拉伸(0-255)提升对比度。

  4. 阈值分割:使用自适应阈值(auto_threshold())分割电路板区域,避免光照变化影响,分割后通过形态学开运算(核大小3×3)去除小连通域。

  5. 特征提取与匹配:提取电路板边缘轮廓(edges_sub_pix()函数),选取3个直角顶点作为特征点,与模板特征点进行NCC匹配,计算中心坐标(Xc、Yc)及旋转角度θ;匹配失败时(相似度<0.75),自动重新采集3次,仍失败则触发人工干预报警。

  6. 结果输出:将坐标及角度数据通过共享变量(LabVIEW Shared Variable)发送至机械臂模块,更新频率10Hz;同时在前面板显示匹配结果(绿色框表示成功,红色框表示失败)及精度偏差值。

  1. 自动测试模块

  • 仪器控制逻辑:基于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",保存至数据盘指定目录。

  1. 报警与监控模块

  • 微信报警实现

  •         前置配置:在腾讯云控制台创建短信应用,获取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。

  1. 流程调度模块

采用LabVIEW状态机架构(State Machine),通过"枚举型"变量控制状态切换,共设7个核心状态,状态转移逻辑如下:

状态机核心逻辑:初始化完成后进入上料等待,检测到料仓有板则触发视觉定位,定位成功执行抓取,失败则重试;测试完成后根据结果下料,全程检测故障,触发则进入故障处理状态。

状态名称

核心任务

进入条件

退出条件

超时设置

初始化

机械臂回零、仪器自检、视觉标定

系统上电/复位

所有模块自检合格

30s(超时报警E000)

上料等待

光电传感器检测料仓有无电路板

初始化完成/下料完成

检测到有板(传感器信号为ON)

无(持续等待,低功耗模式)

视觉定位

相机采集图像,计算抓取点位

上料等待满足

定位成功(偏差≤0.1mm)

5s(超时重试3次,失败报警E002)

抓取搬运

机械臂抓取→搬运至测试台→夹具夹紧

视觉定位成功

压力传感器检测到位(≥5N)

10s(超时报警E001)

自动测试

执行测试脚本,采集数据并判定

抓取搬运完成

所有测试项执行完毕

60s(根据测试项数量可配置)

下料处理

夹具松开→机械臂抓取→OK/NG分仓

自动测试完成

电路板放入目标料仓(传感器确认)

10s(超时报警E003)

故障处理

触发报警、记录日志、等待处理

任意状态超时/故障

人工复位/自动重试成功

无(持续报警直至处理)

可靠性设计

通过硬件冗余、软件容错、定期校准及日志追溯实现系统可靠性,关键设计及验证数据如下:

  1. 硬件可靠性设计

  • 传感器冗余:料仓采用双光电传感器(左右各1个),信号通过"或门"逻辑判定(任一传感器检测到有板即有效);测试台压力传感器采用双点检测(对角线布置),确保电路板平整放置。

  • 通信冗余:数字万用表同时支持GPIB和USB-TMC通信,LabVIEW中编写通信切换逻辑,当GPIB通信超时(≥3s)时,自动切换至USB接口;机械臂同时支持Modbus TCP和EtherCAT,默认使用Modbus TCP,故障时切换至备用通信。

  • 供电保障:采用冗余电源模块(Mean Well RSP-320-24)为工控机、相机供电,输出24V/13.3A,具备过压(≥26V)、过流(≥14A)保护;测试仪器单独使用隔离变压器供电,避免干扰。

  1. 软件容错设计

  • 超时与重试机制:所有仪器通信、机械臂运动均设置超时时间(如相机采集5s、仪器指令响应3s),超时后自动重试3次,重试失败则记录故障并报警;重试间隔1s,避免频繁请求导致系统拥堵。

  • 数据校验:测试数据采用CRC-16校验(多项式0x8005),LabVIEW接收数据后计算校验码与仪器返回值比对,不一致则重新采集;数据库插入数据时,通过事务处理(Transaction)确保数据完整性,避免断电导致数据丢失。

  • 异常捕获:采用LabVIEW的Try/Catch结构包裹关键代码块(如仪器控制、坐标变换),捕获异常后执行"故障处理"子VI(记录日志、触发报警、复位模块),避免程序崩溃;24小时连续运行测试中,程序稳定性≥99.9%。

  1. 校准与日志管理

  • 自动校准流程:每日凌晨2点(低峰期)自动执行校准:

  •         视觉校准:机械臂抓取棋盘格标定板至拍摄位置,采集10张图像自动计算标定参数,与历史数据比对(偏差≤0.02mm为合格)。

  • 仪器校准:通过标准电压源(Fluke 5520A)输出1V、5V、10V标准电压,万用表采集后计算修正系数,存入校准数据库,测试时自动加载修正。

日志管理系统:分为3类日志,均按"YYYYMMDD.log"命名,保存至2TB HDD(支持10年数据存储):

        操作日志:记录操作员登录/退出、测试方案加载、手动干预等操作,包含时间戳、操作员ID。

故障日志:记录故障代码、发生时间、故障描述、处理结果,支持按故障类型统计(如机械臂故障占比、视觉故障占比)。

测试日志:详细记录每块电路板的所有测试数据,包含原始数据、判定结果、校准系数,可追溯性100%。

拓展功能

基于现有系统架构,拓展AI诊断、物联网接入及触控交互功能,均采用"模块化叠加"设计,不影响原有系统稳定性:

  1. 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%,减少人工复检工作量。

  1. 工业物联网(IIoT)接入

  • 通信协议:采用MQTT v3.1.1协议,LabVIEW中使用"NI MQTT Client"库函数,接入阿里云IoT平台(产品Key、设备Secret通过配置文件存储),通信周期10s(可配置)。

  • 数据上传内容:设备状态(运行/待机/故障)、产能数据(每小时测试数量、合格率)、关键参数(机械臂定位精度、仪器校准偏差)、报警信息(故障代码、发生时间)。

  • 平台应用:在阿里云IoT平台搭建数据看板,实现:

  •         集群管理:支持10台测试系统的集中监控,显示每台设备实时状态。

  • 数据分析:自动统计每日/每月产能、故障率,生成趋势图;通过大数据分析识别高频故障点(如某批次电路板短路率高)。

  • 远程运维:支持通过平台发送校准指令,触发系统自动校准;故障报警推送至运维人员APP。

  1. 工业触控交互优化

  • 前面板设计:采用"分区布局",分为状态显示区(左上)、参数配置区(右上)、操作按钮区(下方)、趋势图区(中间);按钮尺寸≥50×50px,支持戴手套操作。

  • 手势支持:通过LabVIEW的"Touch Panel"工具包实现手势识别:

  •         缩放:双指缩放测试趋势图(缩放比例10%-200%)。

  • 滑动:单指左右滑动切换参数配置页面(如机械臂参数、视觉参数)。

  • 点击:双击趋势图弹出数据详情窗口,长按按钮显示操作提示。

权限管理:分为操作员(仅执行测试、查看数据)、技术员(配置参数、校准)、管理员(系统设置、权限分配)三级权限,通过密码登录切换,操作记录写入日志。

本系统通过LabVIEW的强大多任务调度能力与硬件的高精度配合,实现了电路板抓取-测试-分拣的全自动化;细化后的硬件参数、软件逻辑及可靠性设计确保了方案的可实施性,实际运行中MTBF达286小时,抓取成功率99.82%,满足中小批量多品种生产需求。拓展的AI诊断与物联网功能为后续智能化升级奠定基础,具备良好的扩展性。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐