3. PLC侧开发环境与通信基础

在VisionPro与PLC协同的产线系统中,PLC侧承担着“动作执行者”和“数据中转站”的双重角色。VisionPro完成定位、测量、缺陷判定后,需要把结果以PLC能理解的方式写入其数据区;PLC再根据这些结果驱动气缸、伺服、分拣机构,并把触发信号、状态字回传给视觉系统。因此,PLC侧的开发环境选择、以太网通信配置、IP地址规划以及VisionPro通信端口设置,构成了整条数据链路的物理与逻辑基础。本节围绕西门子、三菱、欧姆龙三大主流平台展开,重点讲清楚“用什么软件、怎么配网络、地址怎么分、端口怎么对”。

一、主流PLC编程软件与工程组织

三大平台各有自己的工程体系,理解它们的差异有助于后续通信配置不混淆。

  • 西门子:中小型项目常用S7-1200/1500,编程软件为TIA Portal(博途),集成了硬件组态、PLC编程、HMI和网络配置。通信指令主要使用TSEND_C/TRCV_C或开放式用户通信(OUC),也可用PUT/GET。对于与VisionPro的交互,通常采用TCP或ISO-on-TCP连接。
  • 三菱:FX5U、Q/L系列常用GX Works3或GX Works2。以太网通信可通过内置以太网端口使用“套接字通信”指令(如SP.SOCOPEN、SP.SOCSND、SP.SOCRCV),也可用MC协议让上位机主动读写软元件。
  • 欧姆龙:NJ/NX系列使用Sysmac Studio,CP/CJ系列使用CX-Programmer。NJ/NX支持EtherNet/IP和TCP套接字,常用SktTCPConnect、SktTCPSend、SktTCPRcv等指令;CJ系列则多用FINS/TCP或FINS/UDP。

选择软件时要注意版本与固件匹配。例如TIA Portal V17组态的S7-1200固件为V4.5,若实际CPU固件低于组态版本,下载会报错。三菱GX Works3需与FX5U固件对应,欧姆龙Sysmac Studio需与NJ控制器版本一致。工程建立后,先在软件中完成CPU型号、机架、电源、I/O模块的硬件组态,再分配以太网端口参数,最后编写通信程序。

二、以太网通信配置的关键参数

无论哪个品牌,PLC侧以太网配置都围绕几个核心参数:IP地址、子网掩码、默认网关、端口号、通信协议。以西门子S7-1200为例,在TIA Portal的“设备组态—PROFINET接口—以太网地址”中设置:

IP地址:192.168.1.10
子网掩码:255.255.255.0
默认网关:192.168.1.1

三菱FX5U在GX Works3的“模块参数—以太网端口—基本设置”中设置IP地址,并在“对象设备连接配置设置”中添加“SLMP连接设备”或“套接字通信”对象。欧姆龙NJ在Sysmac Studio的“控制器设置—内置EtherNet/IP端口设置”中配置IP,若使用TCP套接字则还需在程序中调用SktTCPConnect指定远端IP和端口。

这里有一个容易忽略的点:PLC的以太网端口通常同时承担编程下载、HMI通信和视觉通信。如果三者共用一个网口,建议通过交换机划分,并确保各设备IP在同一网段、端口不冲突。若PLC有两个网口,可将编程/HMI与视觉通信分开,降低耦合。

三、IP地址规划与端口分配

产线网络中,IP规划应遵循“网段统一、角色分段、地址固定”的原则。假设一条产线包含1台PLC、1台VisionPro工控机、1台HMI、1台交换机,可采用如下示例规划(属于教学示例,实际项目需按现场网段调整):

设备IP地址端口用途
PLC(S7-1200)192.168.1.102000与VisionPro TCP通信
VisionPro工控机192.168.1.205000视觉结果服务端
HMI192.168.1.30—触摸屏监控
编程电脑192.168.1.100—调试下载

端口号选择要避开系统保留端口(0~1023)和已知服务端口。VisionPro侧常用5000、6000、8000等作为监听端口,PLC侧主动连接时使用临时端口或固定端口。若PLC作为客户端主动连接VisionPro,则PLC侧端口可设为2000;若PLC作为服务端等待VisionPro连接,则PLC侧监听端口需与VisionPro目标端口一致。方向不同,端口配置位置也不同,这是初学者最容易混淆的地方。

建议在项目初期就建立一张“IP—端口—角色”对照表,贴在电柜门内侧或项目文档首页,后续调试和排障时可直接对照,避免反复翻查组态。

四、VisionPro通信端口设置与PLC的对应关系

VisionPro侧通常通过Cognex的通信工具或自定义TCP/IP服务与PLC交互。以常见的“PLC主动连接VisionPro”为例,VisionPro工控机上运行一个TCP服务端,监听5000端口;PLC作为客户端,使用TSEND_C或SP.SOCSND向192.168.1.20:5000发起连接并发送触发命令。VisionPro处理完成后,将结果字符串或结构体回传给PLC,PLC再用TRCV_C或SP.SOCRCV接收。

若采用“VisionPro主动写PLC”的方式,则PLC侧需开放一个服务端端口(如2000),VisionPro作为客户端连接PLC的IP和端口,直接写入DB块或软元件。两种方向的数据流如下图所示:

PLC与VisionPro通信方向与端口对应关系 PLC IP: 192.168.1.10 客户端端口: 2000 服务端监听: 2000 VisionPro工控机 IP: 192.168.1.20 服务端监听: 5000 客户端端口: 动态 工业交换机 192.168.1.0/24 方向A:PLC主动连接VisionPro PLC(客户端:2000) → 交换机 → VisionPro(服务端:5000) 触发命令/心跳 方向B:VisionPro主动写PLC VisionPro(客户端:动态) → 交换机 → PLC(服务端:2000) 结果/坐标/判定

图中展示了两种典型方向。方向A中,PLC作为客户端主动连接VisionPro的5000端口,适合“PLC先发触发、视觉再处理”的节拍;方向B中,VisionPro作为客户端连接PLC的2000端口,适合“视觉常驻监听、结果主动上报”的场景。实际项目中,两种方向可以同时存在,但必须保证端口不冲突、连接不互相阻塞。

五、配置完成后的验证方法

配置完成后不要直接上产线,先在调试环境下验证。以西门子S7-1200与VisionPro为例,可按以下顺序检查:

  1. 在TIA Portal中在线访问PLC,确认IP地址已生效,用“在线和诊断”查看PROFINET接口状态。
  2. 在编程电脑上打开命令提示符,执行 ping 192.168.1.10 和 ping 192.168.1.20,确认物理链路通。
  3. 用网络调试助手在工控机上监听5000端口,PLC侧调用TSEND_C发送一串测试字符,观察是否收到。
  4. VisionPro侧收到后回传固定字符串,PLC侧用TRCV_C接收并写入DB块,在线监控DB块数值是否变化。
  5. 若使用三菱FX5U,可用GX Works3的“以太网诊断”查看连接状态和收发计数;欧姆龙NJ可用Sysmac Studio的“EtherNet/IP诊断”查看连接。
常见问题:PLC与VisionPro不在同一网段时,ping不通但交换机指示灯正常;端口被防火墙拦截时,TCP连接超时;PLC侧同时开启多个连接时,资源耗尽导致新连接失败。排查时先看物理层,再看IP层,最后看端口和应用层。

最后强调一点:IP地址规划和端口分配不是一次性工作,而是贯穿项目始终的约束条件。建议在PLC程序里为通信状态字预留一个WORD,用位表示“连接建立、发送完成、接收完成、超时、错误码”,这样在HMI上就能直观看到通信健康度,也为后续排障留下依据。