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(S7-1200 / S7-1500) 节拍与运动控制 OB1 / FB / FC 通信管理 PROFINET / TCP 安全与联锁 急停 / 光栅 配方与数据 DB 块 / 追溯 感知层 · 机器视觉系统 相机 + 镜头 GigE / USB3 光源与控制器 频闪 / 常亮 视觉算法 定位 / 测量 / OCR 结果输出 OK/NG + 坐标 交互层 · HMI / 上位机 / 工程师站 HMI 触摸屏 MES / SCADA TIA Portal / 视觉软件 触发 / 配方 结果 / 状态 显示 / 追溯 通信通道:PROFINET IO(周期)| TCP/IP Socket(非周期)| RS-232/485(串口)| 硬线 I/O(触发/结果)

二、通信角色:谁主谁从

在协同系统中,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 连续报警 图像质量异常、算法失败、相机掉线自检
配方管理 存储配方号并下发切换指令 根据配方号加载对应算法参数与标定文件

边界清晰后,通信数据表就可以固定下来,后续编程、调试、验收都有据可依。

四、学习路线:从认知到落地

本课程后续章节将沿着“认知—通信—编程—标定—协同—排障”的路径展开。建议的学习顺序是:

  1. 先建立系统观:理解三层架构与角色分工,能画出自己项目的通信拓扑。
  2. 再打通通信:掌握 PROFINET IO 设备组态、GSD 文件导入、IO 数据区映射,以及 TCP/串口开放式通信指令。
  3. 然后写协同逻辑:在 PLC 侧实现触发、握手、结果处理、超时与报警;在视觉侧实现触发响应、结果输出与配方切换。
  4. 接着做标定与精度验证:完成像素当量标定、手眼标定(若涉及机器人),并用标准件验证重复精度。
  5. 最后做联调与排障:用状态字、诊断缓冲区、抓包工具定位通信与节拍问题。
学习建议:每学完一个通信知识点,就在 TIA Portal 中建一个最小示例项目,只保留一个触发位和一个结果字,先让数据“动起来”,再逐步叠加配方、超时、报警等逻辑。这样比一次性搭完整系统更容易定位问题。
常见误区:把视觉系统当成“黑盒”,只关心 OK/NG 结果,不关心触发时序与数据有效性。实际项目中,触发抖动、结果未更新、通信延迟都会导致误判。务必在 PLC 侧对结果数据加“数据有效位”或“序号递增”校验。

本章不涉及具体编程细节,但需要你建立一个基本判断:PLC 与视觉的协同,本质是“时序 + 数据 + 边界”三件事。时序决定节拍能否匹配,数据决定信息是否准确,边界决定责任是否清晰。后续每一章,都会围绕这三件事中的一个具体问题展开。