跳到主要内容

快速开始

本章引导您从零开始使用 Vision Studio,完成一个完整的视觉检测流程:添加相机 → 创建视觉程序 → 配置触发条件 → 运行并查看结果。

前提条件

  • 已安装 Darra RT IDE 并打开一个 PLC 项目
  • 已连接至少一个相机(UVC、GigE 或 GenTL)
  • 已准备一个 ONNX 模型(可选,可使用内置示例模型)

第一步:添加相机

  1. 在 IDE 左侧面板中选择 视觉系统 标签页
  2. 点击 添加相机 按钮,打开相机扫描对话框
  3. 系统自动扫描可用相机:
┌─────────────────────────────────────┐
│ 添加相机 │
│ │
│ ● 扫描到 3 个设备 │
│ │
│ ┌───────────────────────────────┐ │
│ │ USB 相机 #1 (USB 3.0) │ │
│ │ Hikvision MV-CA013-UC │ │
│ │ 1280×1024 30fps │ │
│ ├───────────────────────────────┤ │
│ │ GigE 相机 #1 (192.168.1.100) │ │
│ │ Basler acA2440-75um │ │
│ │ 2448×2048 75fps │ │
│ ├───────────────────────────────┤ │
│ │ GenTL 采集卡 #1 │ │
│ │ Matrox Radient eV-CL │ │
│ │ 4096×3072 60fps │ │
│ └───────────────────────────────┘ │
│ │
│ [ 添加选中设备 ] [ 刷新扫描 ] │
└─────────────────────────────────────┘
  1. 勾选要添加的相机,点击 添加选中设备
  2. 在相机属性面板中配置采集参数:
参数说明推荐值
触发模式软件触发 / 硬件触发软件触发 (开发阶段)
分辨率采集图像尺寸1280×1024
帧率每秒采集帧数30 fps
曝光时间微秒5000 µs
增益dB0 dB

第二步:创建第一个视觉程序

  1. 在视觉系统面板中,右键点击 视觉程序新建视觉程序
  2. 选择程序类型:卡片图(本教程使用)
  3. 输入程序名称:MyFirstVision
  4. 点击 确定,进入卡片图编辑器

搭建基本流程

从左侧工具箱拖拽以下卡片到编辑区,按顺序连接:

[ 图像采集 ] ──→ [ 图像预处理 ] ──→ [ 目标检测 ] ──→ [ 结果输出 ]

卡片配置

卡片关键参数配置值
图像采集选择相机选择刚才添加的相机
图像预处理预处理类型转灰度 (Grayscale)
目标检测模型文件选择 ONNX 模型文件
结果输出输出目标写入 PLC 变量

配置图像采集

  1. 双击 图像采集 卡片,打开属性面板
  2. 相机选择:下拉选择 USB 相机 #1
  3. 采集模式:单帧采集
  4. 超时时间:5000 ms

配置目标检测

  1. 双击 目标检测 卡片
  2. 模型文件:点击浏览,选择您的 ONNX 模型文件
  3. 输入尺寸:640 × 640(与模型要求一致)
  4. 置信度阈值:0.5
  5. NMS 阈值:0.45
  6. 标签文件:选择类别标签文件(.txt,每行一个类别名)

第三步:配置触发条件

视觉程序需要配置触发方式才能运行:

  1. 打开视觉程序属性面板
  2. 触发设置 中选择触发类型:
触发方式说明适用场景
软件触发手动点击运行按钮,或通过 PLC 变量触发开发调试
硬件触发相机 Line 触发信号产线高速采集
定时触发按固定周期自动运行连续监控
PLC 变量触发PLC 变量上升沿触发与 PLC 逻辑联动
  1. 选择 PLC 变量触发,绑定 PLC 变量 VIS_TRIGGER_01
触发条件配置
┌──────────────────────────────────────┐
│ 触发方式: ● PLC 变量触发 │
│ │
│ 触发变量: VIS_TRIGGER_01 │
│ 触发沿: ● 上升沿 ○ 下降沿 │
│ 触发后去抖: 50 ms │
│ 超时时间: 5000 ms │
│ 超时动作: 输出默认值 │
│ │
│ [ 确定 ] [ 取消 ] │
└──────────────────────────────────────┘

第四步:运行并查看结果

手动触发测试

  1. 在视觉程序编辑器中点击 运行 按钮
  2. 观察实时图像显示区:
┌──────────────────────────────────────┐
│ 实时图像 (1280×1024) │
│ ┌───────────────────────────────┐ │
│ │ │ │
│ │ ● 检测到 3 个目标 │ │
│ │ ┌────┐ ┌────┐ │ │
│ │ │bot.│ │top.│ │ │
│ │ └────┘ └────┘ │ │
│ │ ┌────┐ │ │
│ │ │lid │ │ │
│ │ └────┘ │ │
│ └───────────────────────────────┘ │
│ 检测结果: 3 个目标 │
│ ┌──────────┬──────┬──────────────┐│
│ │ 类别 │ 置信度 │ 位置 (x,y) ││
│ ├──────────┼──────┼──────────────┤│
│ │ bottle │ 0.92 │ (320, 240) ││
│ │ cap_top │ 0.88 │ (640, 200) ││
│ │ lid │ 0.76 │ (800, 500) ││
│ └──────────┴──────┴──────────────┘│
└──────────────────────────────────────┘

查看结果输出

检测结果同时输出到两个位置:

  1. 视觉系统面板结果视图:显示当前检测结果
  2. PLC 变量监控:绑定的输出变量实时更新

结果变量映射

PLC 变量类型说明示例值
VIS_RESULT_COUNTINT检测目标数量3
VIS_RESULT_01_CLASSSTRING[32]目标 1 类别"bottle"
VIS_RESULT_01_CONFREAL目标 1 置信度0.92
VIS_RESULT_01_XREAL目标 1 中心 X (像素)320.0
VIS_RESULT_01_YREAL目标 1 中心 Y (像素)240.0
VIS_RESULT_01_WREAL目标 1 宽度 (像素)80.0
VIS_RESULT_01_HREAL目标 1 高度 (像素)120.0
VIS_JOB_BUSYBOOLJob 正在执行FALSE
VIS_JOB_DONEBOOLJob 完成TRUE
VIS_JOB_ERRORBOOLJob 异常FALSE
VIS_JOB_ERROR_IDDWORD错误码0

下一步