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





