TCP是一个因特网核心协议。在通过以太网通信的主机上运行的应用程序之间,TCP提供了可靠、有序并能够进行错误校验的消息发送功能;并且能保证接收和发送的所有字节内容和顺序完全相同。
TCP协议在主动设备(发起连接的设备)和被动设备(接受连接的设备)之间创建连接。一旦连接建立,任一方均可发起数据传送。TCP协议是一种"流"协议。这意味着消息中不存在结束标志。
所有接收到的消息均被认为是数据流的一部分,S7-200 SMART之间的TCP通讯,可以通过两边调用OUC(开放式用户通信)库指令中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令来实现。
安装软件后,这些指令位于软件项目树中指令-库-Open User Communication文件夹中,通过开放式用户通信库指令,可以帮助客户快速便捷地实现设备间的TCP通信。
开放式用户通信库指令
创建连接TCP_CONNECT指令
● EN:使能参数,一般使用SM0.0保证每个扫描周期都能开启。
● Req:请求通信参数,置位时表示启动连接操作,主动连接一般使用沿触发,被动连接一般使用电平触发。
● Active:1=主动连接(客户端);0=被动连接(服务器)。
● ConnID:连接标识符,可能范围为0-65534。
● IPAddr1-4:IP地址的从高到低四个字节。
● RemPort:远程设备端口号。范围为1-49151。对于被动连接,可使用零。
● LocPort:本地设备端口号。范围为1-49151,但是存在一些限制,建议采用的端口号范围为2000到5000。
● Done:当连接操作完成且没有错误时,该位置位输出。
● Busy:当连接操作正在进行时,该位置位输出。
● Error:当连接操作完成但发生错误时,该位置位输出。
● Status:如果指令置位Error输出,Status输出会显示错误代码;如果指令置位Busy或Done输出,Status为零(错误代码详见系统手册)。
终止现有连接DISCONNECT指令
● EN:使能参数,一般使用SM0.0保证每个扫描周期都能开启。
● Req:请求断开参数,置位时表示启动断开连接操作,一般使用沿触发。
● Conn_ID:CPU使用连接ID(ConnID)标识要终止的连接。
● Done:当断开连接操作完成且没有错误时,该位置位输出。
● Busy:当断开连接操作正在进行时,该位置位输出。
● Error:当断开连接操作完成但发生错误时,该位置位输出。
● Status:如果指令置位Error输出,Status输出会显示错误代码;如果指令置位Busy或Done输出,Status为零(错误代码详见系统手册)。
请求发送TCP_SEND指令
● EN:使能参数,一般使用SM0.0保证每个扫描周期都能开启。
● Req:请求发送参数,置位时表示启动发送操作,一般使用沿触发。
● Conn_ID:是此发送操作所用连接的编号。
● DataLen:要发送的字节数(1到1024)。
● DataPtr:是指向待发送数据的指针,如&VB100。
● Done:当发送操作完成且没有错误时,该位置位输出。
● Busy:当发送操作正在进行时,该位置位输出。
● Error:当发送操作完成但发生错误时,该位置位输出。
● Status:如果指令置位Error输出,Status输出会显示错误代码;如果指令置位Busy或Done输出,Status为零(错误代码详见系统手册)。
数据接收TCP_SECV指令
● EN:使能参数,一般使用SM0.0保证每个扫描周期都能开启。
● Conn_ID:是此接收操作所用连接的编号。
● MaxLen:要接收的zui大字节数(1到1024)。
● DataPtr:是指向接收数据存储位置的指针,如&VB100。
● Done:当接收操作完成且没有错误时,该位置位输出。
● Busy:当接收操作正在进行时,该位置位输出。
● Error:当接收操作完成但发生错误时,该位置位输出。
● Status:如果指令置位Error输出,Status输出会显示错误代码;如果指令置位Busy或Done输出,Status为零(错误代码详见系统手册)。
● Length:实际接收的字节数。仅当指令置位Done或Error输出时,Length才有效。Done输出时,指令接收整条消息;Error位输出时,则超出缓冲区大小的部分被截断。
应用实例
通过开放式用户通信库指令,实现CPU之间的数据交换,其中客户端IP地址为192.168.2.1,服务器IP地址为192.168.2.2,客户端TSAP为“smart1”,服务器TSAP为“smart2”,ConnID设定为10,将服务器VB1000-VB1004中的数据读取至客户端VB100-VB104中,将客户端中VB200-VB204的数据写入服务器VB2000-VB2004。
客户端程序:
服务器程序:
执行结果:
本文摘自:网络