西门子开放式用户通讯TCP指令使用介绍
西门子PLC以太网通讯协议有多种,其中开放式用户通讯(OUC)TCP通讯协议属于应用较为广泛的一种。
只要通讯对方支持TCP协议,均可以使用PLC自带的网口进行通讯。
下面介绍S7-1500 cpu使用OUC TCP通讯的方法▼
以太网TCP通讯的介绍
在 ISO-OSI 参考模型中,TCP协议位置如下▼
TCP特点
1.位于OSI参考模型中的第4层:传输层,他连接了上三层和下三层。
2.基于以太网的方式。
3.具有传输控制功能,比如故障重发。
TCP其他介绍
1.TCP是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
2.TCP通讯是一种全双工通讯方式,通讯建立连接后,通讯双方可以同时接收和发送。
3.它是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠 的包交换。
4.TCP通讯双方称之为:服务器、客户端。
其中:
一个服务器可以同时连接多个客户端
一个客户端可以同时连接多个服务器
TCP通讯连接使用“四要素”用于区分多个连接
四要素分别是:本地IP,本地port,目标IP,目标port
实现两个S7-1500的TCP通讯
开放式用户通信 (OUC) 是通过 S7-1200/1500 和 S7-300/400 CPU 集成的 PN/IE 接口进行程序控制通信过程的名称。这种通信过程可以使用各种不同的连接类型。
开放式用户通信的主要特点是在所传送的数据结构方面具有高度的灵活性。这就允许 CPU 与任何通信设备进行开放式数据交换,前提是这些设备支持该集成接口可用的连接类型。由于此通信仅由用户程序中的指令进行控制,因此可建立和终止事件驱动型连接。在运行期间,也可以通过用户程序修改连接。
对于具有集成 PN/IE 接口的 CPU,可使用 TCP、UDP 和 ISO-on-TCP 连接类型进行开放式用户通信。通信伙伴可以是两个 SIMATIC PLC,也可以是 SIMATIC PLC 和相应的第三方设备。
指令位于“通信”->"开放式用户通信"部分▼
以下请注意
第一步——硬件组态
1.硬件组态
2.建立两个CPU
3.IP地址更改为192.168.0.1、 192.168.0.2
第二步——写程序
目的:两个连接,互相收发
1.每个PLC分别建立两个连接
▲如上图,PLC1程序
▲如上图,PLC1主动发
▲如上图,PLC1被动收
▲如上图,PLC2程序
▲如上图,PLC2被动收
▲如上图,PLC2主动发
▲如上图,PLC1连接生成的数据块,PLC2查看方式类似
第三步——查看状态
▲如上图,网络视图中,在线查看到的连接状态,在属性中有更为具体的信息
注意事项
1)由于一个CPU可以建立多个TCP通讯连接,不同连接的通讯指令是可以同时进行的。
2)如上图所示,通过CPU的属性中的“连接资源”可以查看CPU允许的最大OUC通讯连接数(TCP通讯属于OUC范围)以及已经组态的连接数。如果建立连接是直接选择同一个项目中的CPU时,服务器CPU的属性也可以显示已经组态的连接数。如果选择的是“未指定”,则无法显示,需要人工进行核算是否超过最大的连接数。
3)CPU网口既可以作为一个连接的服务器,又可以作为另一个连接的客户端。只要在规定的连接数范围即可。
其他要点
1.主动连接方需要知道对方的IP地址和端口号port。
2.被动连接方可以不需要知道对方的IP地址和端口号,但是必须得分配端口号并告知主动方。
3.主动方的端口号port如果没有事先主动设置,在连接建立后,操作系统会自动分配一个port。
4.同一个PLC的不同连接的ID不能重复。
5.不同PLC的同一个TCP连接的连接ID可以不同,PLC之间并非通过ID号进行识别。
6.一个PLC的不同TCP连接的端口号port,可以不同,可以相同。但是不同TCP连接的四个要素组合要是唯一的。 一个port端口号某一时刻只能存在一个TCP连接。
7.通过CONT管脚可以控制TCP连接底层的握手和挥手。连接一旦建立,即可全双工通信。