• {{item.name}}
{{item.name}}
{{item2.name}}
更多
常问问题

CPx43-1之间变长TCP数据包接收

star star star star star
5.0 分
  • 使用操作
文档编号:F0585| 文档类型:常问问题| 发布时间:2024年02月02日
  • 0
  • 194
  • 1596
内容预览: 描述: 本文介绍了CPx43-1之间变长TCP数据包接收 ......

1 本文描述的的TCP通讯适用范围
TCP通讯是众多的S7-300/S7-400通讯方式之一,可以在:CPx43-1、集成PN口的CPU、调用套接字编写的程序、第三方支持开发以太网通讯的设备之间相互通讯。
本文描述的TCP通讯,仅适用于CP343-1/CP443-1(支持TCP通讯的版本)之间,建立TCP connection,调用AG_Send / AG_Recv的情形。对于CPx43-1通过TCP连接接收其他设备发送的数据,如果对方设备可以协调使用本文方法也可以使用。
CPx43-1的TCP通讯,在发送接收固定长度数据时没有任何问题。但是在设备应用过程中,往往有不同长度的数据需要在两个S7 PLC之间传输,如果不做处理,会出现接收数据错位或接收数据延迟超出预期时间。
解决的方法有多种,如设置通讯中可能出现的最长的数据长度作为接收区(AG_Recv的RCV参数)的固定长度,其他小于该长度的数据发送,也按此最大长度进行发送(接收将出现多余字节)。这种方法是值得推荐的。又如,可以设置接收区长度为1字节, 把对方发过来的数据逐字节逐字节的接收,也可以解决问题,但是这种方法是不推荐的,因为这种方式会使TCP接收变得极其缓慢,远远低于对方发送的速度。
本文示例介绍另外一种方式。

2 示例使用的主要PLC模块

CPU315站(接收端)
CPU315F-2DP6ES7315-6FF01-0AB0V2.6
CP343-16GK7343-1EX30-0XE0V2.4

CPU319站(发送端)
CPU319-3PN/DP6ES7315-6FF01-0AB0V2.6
CP343-1 Adv6GK7343-1GX21-0XE0V1.1

软件: STEP 7 V5.5 SP1

3 示例工作机制
示例假定发送方可以自由定制发送数据的内容及长度,且最大数据发送量小于接收CPx43-1的最大TCP数据包长度(如CP343-1的TCP数据包最大为240字节)。
实现的方法是,把一个数据包分割成2个部分接收,约定前部分为整包有效发送数据长度,后部分为有效数据。示例的第一部分按1字节作为长度处理,发送方按此格式发送。

3.1 发送流程
发送方在发送之前,在AG_Send的Send参数第一个字节加入数据长度,后跟待发送数据串,Len参数为数据长度加1个字节, 然Act = True触发发送。

3.2 接收流程
先把AG_Recv的RCV参数长度设置为一个字节接收,NDR = True后,把RCV的长度调整为接收到的字节所设定的长度,再次启动接收,把有效数据完整的一次接收,这样不会发生错位。

4 相关参考
示例中所涉及的TCP组态及基本编程,请参考下载中心文档“通过CP343-1实现S7-300之间的以太网通讯”编号为A0020 ;对于ANY 指针的格式,请参考请参考下载中心文档“S7-300和S7-400寻址”,编号F0215 。

!示例程序仅供参考,由于该软件是免费的,因此不提供任何担保、错误纠正或热线支持。

Tcp_demo.zip (654 KB) ( 654 KB )

关键词
TCP通讯,TCP连接, PLC通讯, S7通讯, CP343-1, CP443-1, AG_Send, AG_Recv

您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。