1. 协同工程认知
在自动化产线中,PLC 与机器视觉的协同并不是把一台相机接到 PLC 上那么简单。它本质上是一个“控制域 + 感知域”的实时协作系统:PLC 负责节拍、运动、安全与执行机构,视觉系统负责成像、测量、识别与判定,两者通过确定的通信接口交换“触发、结果、状态、配方”四类信息。理解这套系统的典型架构与角色分工,是后续所有编程、标定、通信配置与故障排查工作的前提。
一、典型架构:三层结构
从工程视角看,一套典型的西门子 PLC 与机器视觉协同系统可以划分为三层:
- 控制层:以 S7-1200/1500 PLC 为核心,运行用户程序,管理产线节拍、气缸、伺服、输送线,并作为视觉系统的“主站”或“协调者”。
- 感知层:由工业相机、镜头、光源、视觉控制器或工控机(含 Halcon、VisionPro、康耐视 In-Sight 等)组成,完成图像采集与算法处理,输出 OK/NG、坐标、角度、字符、条码等结果。
- 交互层:包括 HMI、上位机 MES、SCADA 以及工程师站(TIA Portal、视觉软件),用于参数下发、结果显示、配方切换与数据追溯。
三层之间通过工业以太网(PROFINET)、串口(RS-232/485)、I/O 硬线或 Modbus TCP 等方式连接。其中 PROFINET 是西门子生态中最主流的方案,视觉设备可作为 PROFINET IO 设备接入 PLC,实现周期性数据交换;若视觉系统只提供 TCP/IP 或串口接口,则通常由 PLC 侧调用开放式通信指令(如 TCON、TSEND、TRCV 或 TSEND_C/TRCV_C)完成非周期数据交互。
二、通信角色:谁主谁从
在协同系统中,PLC 与视觉设备的角色必须明确,否则会出现“谁等谁”的节拍死锁。常见有三种角色模式:
- PLC 主控、视觉从动:PLC 发出拍照触发信号,视觉完成采集与处理,将结果写回 PLC。这是最典型的模式,适用于定位引导、有无检测、尺寸测量等场景。
- 视觉主控、PLC 执行:视觉系统完成判定后,直接向 PLC 发送动作指令(如“抓取坐标”),PLC 驱动伺服或机器人执行。适用于视觉引导机器人抓取。
- 双向握手:双方通过“请求—应答—完成”信号完成一次交互,确保数据不丢失、不重复。PROFINET 场景下通常用 IO 数据区的控制字与状态字实现。
以 PROFINET 为例,PLC 侧通常配置一个输入区(视觉→PLC)和一个输出区(PLC→视觉),各占若干字节。例如:输出区 4 字节用于发送触发位、配方号、曝光时间;输入区 8 字节用于接收 OK/NG、X/Y 坐标、角度、条码长度等。PLC 程序中通过 MOVE 或直接赋值操作 IO 地址,视觉侧则通过其 PROFINET 接口映射对应数据。
三、工程边界:哪些事该谁做
协同工程最容易出问题的地方,是边界不清。以下边界需要在项目初期就明确:
| 边界项 | PLC 侧职责 | 视觉侧职责 |
|---|---|---|
| 触发时机 | 根据编码器/光电开关位置,在工件到位时输出触发位 | 收到触发后启动采集,不自行决定拍照时刻 |
| 结果判定 | 接收 OK/NG 并执行分拣、报警、计数 | 完成图像处理并输出判定结果与测量值 |
| 标定与坐标 | 提供机械基准、工件坐标系定义 | 完成像素→毫米标定,输出物理坐标 |
| 异常处理 | 通信超时、结果超时、NG 连续报警 | 图像质量异常、算法失败、相机掉线自检 |
| 配方管理 | 存储配方号并下发切换指令 | 根据配方号加载对应算法参数与标定文件 |
边界清晰后,通信数据表就可以固定下来,后续编程、调试、验收都有据可依。
四、学习路线:从认知到落地
本课程后续章节将沿着“认知—通信—编程—标定—协同—排障”的路径展开。建议的学习顺序是:
- 先建立系统观:理解三层架构与角色分工,能画出自己项目的通信拓扑。
- 再打通通信:掌握 PROFINET IO 设备组态、GSD 文件导入、IO 数据区映射,以及 TCP/串口开放式通信指令。
- 然后写协同逻辑:在 PLC 侧实现触发、握手、结果处理、超时与报警;在视觉侧实现触发响应、结果输出与配方切换。
- 接着做标定与精度验证:完成像素当量标定、手眼标定(若涉及机器人),并用标准件验证重复精度。
- 最后做联调与排障:用状态字、诊断缓冲区、抓包工具定位通信与节拍问题。
本章不涉及具体编程细节,但需要你建立一个基本判断:PLC 与视觉的协同,本质是“时序 + 数据 + 边界”三件事。时序决定节拍能否匹配,数据决定信息是否准确,边界决定责任是否清晰。后续每一章,都会围绕这三件事中的一个具体问题展开。