快速开始
本章引导您从零开始使用 Vision Studio,完成一个完整的视觉检测流程:添加相机 → 创建视觉程序 → 配置触发条件 → 运行并查看结果。
前提条件
- 已安装 Darra RT IDE 并打开一个 PLC 项目
- 已连接至少一个相机(UVC、GigE 或 GenTL)
- 已准备一个 ONNX 模型(可选,可使用内置示例模型)
第一步:添加相机
- 在 IDE 左侧面板中选择 视觉系统 标签页
- 点击 添加相机 按钮,打开相机扫描对话框
- 系统自动扫描可用相机:
┌─────────────────────────────────────┐
│ 添加相机 │
│ │
│ ● 扫描到 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 │ │
│ └───────────────────────────────┘ │
│ │
│ [ 添加选中设备 ] [ 刷新扫描 ] │
└─────────────────────────────────────┘
- 勾选要添加的相机,点击 添加选中设备
- 在相机属性面板中配置采集参数:
| 参数 | 说明 | 推荐值 |
|---|---|---|
| 触发模式 | 软件触发 / 硬件触发 | 软件触发 (开发阶段) |
| 分辨率 | 采集图像尺寸 | 1280×1024 |
| 帧率 | 每秒采集帧数 | 30 fps |
| 曝光时间 | 微秒 | 5000 µs |
| 增益 | dB | 0 dB |
第二步:创建第一个视觉程序
- 在视觉系统面板中,右键点击 视觉程序 → 新建视觉程序
- 选择程序类型:卡片图(本教程使用)
- 输入程序名称:
MyFirstVision - 点击 确定,进入卡片图编辑器
搭建基本流程
从左侧工具箱拖拽以下卡片到编辑区,按顺序连接:
[ 图像采集 ] ──→ [ 图像预处理 ] ──→ [ 目标检测 ] ──→ [ 结果输出 ]
卡片配置:
| 卡片 | 关键参数 | 配置值 |
|---|---|---|
| 图像采集 | 选择相机 | 选择刚才添加的相机 |
| 图像预处理 | 预处理类型 | 转灰度 (Grayscale) |
| 目标检测 | 模型文件 | 选择 ONNX 模型文件 |
| 结果输出 | 输出目标 | 写入 PLC 变量 |
配置图像采集
- 双击 图像采集 卡片,打开属性面板
- 相机选择:下拉选择
USB 相机 #1 - 采集模式:
单帧采集 - 超时时间:
5000 ms
配置目标检测
- 双击 目标检测 卡片
- 模型文件:点击浏览,选择您的 ONNX 模型文件
- 输入尺寸:
640 × 640(与模型要求一致) - 置信度阈值:
0.5 - NMS 阈值:
0.45 - 标签文件:选择类别标签文件(.txt,每行一个类别名)
第三步:配置触发条件
视觉程序需要配置触发方式才能运行:
- 打开视觉程序属性面板
- 在 触发设置 中选择触发类型:
| 触发方式 | 说明 | 适用场景 |
|---|---|---|
| 软件触发 | 手动点击运行按钮,或通过 PLC 变量触发 | 开发调试 |
| 硬件触发 | 相机 Line 触发信号 | 产线高速采集 |
| 定时触发 | 按固定周期自动运行 | 连续监控 |
| PLC 变量触发 | PLC 变量上升沿触发 | 与 PLC 逻辑联动 |
- 选择 PLC 变量触发,绑定 PLC 变量
VIS_TRIGGER_01:
触发条件配置
┌──────────────────────────────────────┐
│ 触发方式: ● PLC 变量触发 │
│ │
│ 触发变量: VIS_TRIGGER_01 │
│ 触发沿: ● 上升沿 ○ 下降沿 │
│ 触发后去抖: 50 ms │
│ 超时时间: 5000 ms │
│ 超时动作: 输出默认值 │
│ │
│ [ 确定 ] [ 取消 ] │
└──────────────────────────────────────┘
第四步:运行并查看结果
手动触发测试
- 在视觉程序编辑器中点击 运行 按钮
- 观察实时图像显示区:
┌──────────────────────────────────────┐
│ 实时图像 (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) ││
│ └──────────┴──────┴──────────────┘│
└──────────────────────────────────────┘
查看结果输出
检测结果同时输出到两个位置:
- 视觉系统面板 的 结果视图:显示当前检测结果
- PLC 变量监控:绑定的输出变量实时更新
结果变量映射
| PLC 变量 | 类型 | 说明 | 示例值 |
|---|---|---|---|
VIS_RESULT_COUNT | INT | 检测目标数量 | 3 |
VIS_RESULT_01_CLASS | STRING[32] | 目标 1 类别 | "bottle" |
VIS_RESULT_01_CONF | REAL | 目标 1 置信度 | 0.92 |
VIS_RESULT_01_X | REAL | 目标 1 中心 X (像素) | 320.0 |
VIS_RESULT_01_Y | REAL | 目标 1 中心 Y (像素) | 240.0 |
VIS_RESULT_01_W | REAL | 目标 1 宽度 (像素) | 80.0 |
VIS_RESULT_01_H | REAL | 目标 1 高度 (像素) | 120.0 |
VIS_JOB_BUSY | BOOL | Job 正在执行 | FALSE |
VIS_JOB_DONE | BOOL | Job 完成 | TRUE |
VIS_JOB_ERROR | BOOL | Job 异常 | FALSE |
VIS_JOB_ERROR_ID | DWORD | 错误码 | 0 |
下一步
- 了解 卡片图编辑器 的详细用法
- 学习使用 Vision SCL 编写更复杂的视觉程序
- 探索 算子参考 中的完整算子列表
- 参考 应用示例 了解实际产线案例