前言:在项目实际应用中,经常会遇到两个不同厂家的PLC需要互联进行通信交换数据,由于各自的通信协议有所不同,实现起来的难度较大,通常的做法是借助第三方的网关。本文介绍的是AB PLC与西门子S7-1200/1500直接互联,不借助网关,通过编程方式实现以太网通信。
【非诚勿扰】:本工作室提供AB PLC、西门子PLC两端的TCP通信源代码程序,以及技术支持服务,不过是付费的,详情可通过:公众号留言,或加微信oness918咨询,或在淘宝小店购买:https://shop360942370.taobao.com/
一、实际项目
已正式上线的某项目,1台西门子CPU S7-1200与2台AB CPU 1769-L18ER,直接通过开放式TCP协议进行通信交换数据。
二、AB PLC端
1. Socket接口
-
Logix5000控制器使用Socket接口,通过EerthNet/IP模块与不支持EerthNet/IP应用程序协议的以太网设备(如条形码扫描仪、RFID读卡器或其他标准以太网设备)进行通信。
-
Logix5000控制器程序通过MSG指令与Socket对象通信,对Socket对象的MSG请求与大多数计算机操作系统中的Socket API调用类似,Socket对象服务允许您打开连接、接受传入连接、发送数据和接收数据。
2. 支持Socket应用的模块或CPU
-
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类型选择DeleteSocket.
(7) 在RSLogix 5000 v20.01中编写通信程序.
(8) TCP通信程序代码,已进行AOI封装,直接调用即可。
(9) 数据测试,成功发送数据到S7-1200,成功接收S7-1200发送过来的数据。
三、S7-1200/1500端
(1)在博途v14中,编写通信程序,定义通信端口、交换的数据等。
(2) 数据测试,成功发送数据到AB PLC,成功接收AB PC发送过来的数据。
四、商品详情
(1) AB PLC和S7-1200/1500通信源代码(无加密,完全开源);
(2) AB PLC和西门子S7-1200/1500通信程序详细说明(DPF文档);
(3) 通信测试工具NetAssit.exe;
(4) 提供技术支持。
结束语:
支持Socket编程的AB CPU以及以太网模块,不仅支持与西门子S7-1200/1500直接连接通过TCP协议交互数据,而且还能与其他支持TCP协议的设备或软件进行数据交互。这样省去了网关,大大的节省了项目成本。
-- 公众号abseMe:坚持原创,注重实用