一、Socket简介
1 Socket 概述
套接字(Socket)是TCP/IP通信中位于网络层、传输层之上,应用层之下的中间软件抽象层,也就是位于应用层下的一组接口是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
套接字通常包含网络通信必须的五种信息:
1. 连接使用的协议
2. 本地主机的IP地址
3. 本地进程的协议端口
4. 远端主机的IP地址
5. 远端进程的协议端口
2 Socket 应用场景
在博图通信中一般在以下两种场景下会用到Socket通信,
一种是西门子S7系列的PLC与其他厂商的PLC/DCS控制模型之间的通信
(注意:不一定非要使用Socket,在一些不能使用总线协议以及TCP通信方式的控制模块中一般会使用Socket)
另一种是PLC与MES等一些个体或者企业=自主编写的上位机之间的通信方式。
(注:尽管TIA提供了OPC和S7这种便携稳定的通信方式,但是由于本身稳定性的要求,其通信数据传输效率并不高,在大规模数据通信中还是使用Socket较好)
为了读者能够更好的掌握S7-1200/1500的相关通信,给出常用通信协议的相关比较
通信 | 数据传输带宽 | 通信效益稳定性 |
---|---|---|
OPC UA | 较高 | 较高 |
OPC DA | 较高 | 较高 |
Socket | 最高 | 高 |
S7 | 高 | 高 |
TCP | 较高 | 高 |
RTU | 最低 | 较高 |
二、Socket通信博图编程
对于PC端的介绍博主会专门开一个上位机的系列进行阐述,现只给出博图的通信设置:
在博图中使用Socket通信是基于开放式用户指令的