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.10 | 2000 | 与VisionPro TCP通信 |
| VisionPro工控机 | 192.168.1.20 | 5000 | 视觉结果服务端 |
| HMI | 192.168.1.30 | — | 触摸屏监控 |
| 编程电脑 | 192.168.1.100 | — | 调试下载 |
端口号选择要避开系统保留端口(0~1023)和已知服务端口。VisionPro侧常用5000、6000、8000等作为监听端口,PLC侧主动连接时使用临时端口或固定端口。若PLC作为客户端主动连接VisionPro,则PLC侧端口可设为2000;若PLC作为服务端等待VisionPro连接,则PLC侧监听端口需与VisionPro目标端口一致。方向不同,端口配置位置也不同,这是初学者最容易混淆的地方。
四、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块或软元件。两种方向的数据流如下图所示:
图中展示了两种典型方向。方向A中,PLC作为客户端主动连接VisionPro的5000端口,适合“PLC先发触发、视觉再处理”的节拍;方向B中,VisionPro作为客户端连接PLC的2000端口,适合“视觉常驻监听、结果主动上报”的场景。实际项目中,两种方向可以同时存在,但必须保证端口不冲突、连接不互相阻塞。
五、配置完成后的验证方法
配置完成后不要直接上产线,先在调试环境下验证。以西门子S7-1200与VisionPro为例,可按以下顺序检查:
- 在TIA Portal中在线访问PLC,确认IP地址已生效,用“在线和诊断”查看PROFINET接口状态。
- 在编程电脑上打开命令提示符,执行
ping 192.168.1.10和ping 192.168.1.20,确认物理链路通。 - 用网络调试助手在工控机上监听5000端口,PLC侧调用TSEND_C发送一串测试字符,观察是否收到。
- VisionPro侧收到后回传固定字符串,PLC侧用TRCV_C接收并写入DB块,在线监控DB块数值是否变化。
- 若使用三菱FX5U,可用GX Works3的“以太网诊断”查看连接状态和收发计数;欧姆龙NJ可用Sysmac Studio的“EtherNet/IP诊断”查看连接。
最后强调一点:IP地址规划和端口分配不是一次性工作,而是贯穿项目始终的约束条件。建议在PLC程序里为通信状态字预留一个WORD,用位表示“连接建立、发送完成、接收完成、超时、错误码”,这样在HMI上就能直观看到通信健康度,也为后续排障留下依据。