前言:在项目实际应用中,经常会遇到两个不同厂家的PLC需要互联进行通信交换数据,由于各自的通信协议有所不同,实现起来的难度较大,通常的做法是借助第三方的网关。本文介绍的是AB PLC与西门子S7-1200直接互联,不借助网关,通过编程方式实现以太网通信。
一、AB PLC端
1. Socket接口
-
Logix5000控制器使用Socket接口,通过EerthNet/IP模块与不支持EerthNet/IP应用程序协议的以太网设备(如条形码扫描仪、RFID读卡器或其他标准以太网设备)进行通信。
-
Logix5000控制器程序通过MSG指令与Socket对象通信,对Socket对象的MSG请求与大多数计算机操作系统中的Socket API调用类似,Socket对象服务允许您打开连接、接受传入连接、发送数据和接收数据。
2. 支持Socket应用的模块
-
1756-EN2T
-
1756-EN2TR
-
1756-EN2F
-
1756-EN3TR
-
5370,5380,5580 Controllers
3. TCP通信协议流程
(1) TCP客端户建立TCP通信流程
(2) TCP服务端建立TCP通信流程
4. MSG编程
(1) 建立Socket,即建立一个Socket编程对象,MSG类型选择CIP Generic.
(2) 打开连接,让S7-1200能连接到该Socket,Service类型选择OpenConnetion.
(3) 接受连接,从该Socket连接到S7-1200,Service类型选择AcceptConnetion.
(4) 从Scoket读取数据,即从该接口接受S7-1200发送过来的数据,Service类型选择ReadSocket.
(5) 从Scoket发送数据,即从该接口发送数据到S7-1200,Service类型选择WriteSocket.
(6) 删除Scoket,通信完成后需要释放该Scoket接口,Service类型选择WriteSocket.
(7) 编写通信程序.
二、S7-1200端
编写程序,定义通信端口、交换的数据等参数。
三、通信视频
可到公众号观看
结束语:
本文只是介绍了AB PLC与西门子PLC直接互联进行以太网通信的方法,如何具体编程请参考《ENET-AT002C-EN-P》手册和博途编程手册.