1. 课程导入与集成全景
在一条典型的自动化装配线上,视觉系统往往不是孤立存在的。它需要从相机获取图像,经过算法处理得到测量值、判定结果或识别字符串,再把这些结果交给PLC、机器人、MES或数据库去驱动下一步动作。VisionPro正是处在这个链条的中间位置:向下连接相机与光源等成像硬件,向上连接生产控制与信息系统。理解它的定位,是理解整门课程的前提。
VisionPro是康耐视(Cognex)推出的机器视觉软件开发平台,核心由QuickBuild交互式开发环境和VisionPro SDK组成。QuickBuild面向快速搭建与调试,通过拖拽工具、连接输入输出即可完成一个视觉作业(Job);SDK面向定制化开发,允许用C#或VB.NET调用VisionPro的算法库,把视觉能力嵌入到自己的应用程序中。两者共享同一套工具集,例如CogFindCircle、CogBlobTool、CogCaliperTool、CogPMAlignTool等,区别在于使用方式:一个偏配置,一个偏编程。
从数据流角度看,VisionPro的一次完整运行可以概括为:图像采集→预处理→特征定位→测量/检测/识别→结果输出。图像采集由CogAcqFifoTool完成,它负责触发相机、接收图像并交给后续工具;预处理可能包括滤波、形态学或图像增强;定位工具(如CogPMAlignTool)找到产品基准,建立坐标系;测量工具在基准坐标系下提取边缘、圆、斑点等特征;最后通过CogResultsAnalysisTool或脚本把结果整理成布尔量、数值或字符串,输出给外部系统。这条链路中的每一步都会产生可被下游使用的数据,而“集成”的本质,就是让这些数据以正确的格式、在正确的时刻、通过正确的通道到达生产系统。
上图展示了VisionPro在整条链路中的位置。左侧是成像硬件层,相机、镜头、光源和采集卡负责把物理世界变成数字图像;中间是VisionPro处理层,QuickBuild作业或SDK程序完成从图像到结果的转换;右侧是生产系统层,PLC、机器人、MES和数据库消费视觉结果并驱动后续动作。图中还标出了一条反向的控制流:生产系统通过触发信号告诉相机“什么时候拍”,这在实际产线中通常由PLC或光电传感器发出。
理解这个全景之后,可以进一步区分“视觉数据”和“生产系统集成”两个概念。视觉数据是VisionPro内部产生的结构化信息,包括工具状态(Pass/Fail)、测量值(如直径12.03mm)、坐标(如X=125.4, Y=88.7)、角度、字符串(如条码内容“SN20240501”)以及图像本身。生产系统集成则是把这些数据通过某种通道传递出去,常见通道包括:数字I/O(如PLC的输入点)、串口/RS-232、以太网TCP/IP、Modbus TCP、EtherNet/IP、Profinet,以及数据库写入或文件输出。选择哪种通道,取决于目标系统的接口能力、实时性要求和数据量大小。
举个具体的教学示例。假设一条电机端盖装配线,需要检测端盖上的三个螺栓是否拧紧、轴承孔直径是否在公差内、以及端盖表面是否有划痕。视觉方案可以这样组织:用CogPMAlignTool定位端盖中心,建立以端盖圆心为原点的坐标系;用三个CogCaliperTool分别测量螺栓头的高度差,判断是否拧紧;用CogFindCircleTool测量轴承孔直径,假设标准值为30.00mm,公差±0.05mm;用CogBlobTool检测表面划痕面积,假设面积阈值设为500像素。所有工具的结果汇总到一个CogResultsAnalysisTool中,输出一个总判定Pass/Fail,以及各测量项的数值。然后通过以太网TCP/IP把结果字符串发送给PLC,PLC根据Pass/Fail决定放行或剔除。这个例子中,VisionPro负责“看和判断”,PLC负责“执行”,两者通过结果数据连接起来。
学习本课程时,建议沿着“单工具→作业→通信→系统集成”的路径推进。先掌握每个视觉工具的参数含义和调参方法,再学会在QuickBuild中把工具串成作业并验证结果,然后配置通信终端把结果发出去,最后在SDK中把整个流程封装成可部署的应用程序。实战目标不是记住某个按钮的位置,而是能够独立完成一个从取像到结果输出的完整视觉作业,并让它与PLC或上位机稳定交互。