您现在的位置:智能制造网>PLC频道 >行业资讯

6ES7 468-1CC50-0AA0

2018年03月23日 09:52:16来源:上海朕锌电气设备有限公司

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之间传输,如果不做处理,会出现接收数据错位或接收数据延迟超出预期时间。
解决的方法有多种,如设置通讯中可能出现的zui长的数据长度作为接收区(AG_Recv的RCV参数)的固定长度,其他小于该长度的数据发送,也按此zui大长度进行发送(接收将出现多余字节)。这种方法是值得*的。又如,可以设置接收区长度为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 示例工作机制
示例假定发送方可以自由定制发送数据的内容及长度,且zui大数据发送量小于接收CPx43-1的zui大TCP数据包长度(如CP343-1的TCP数据包zui大为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 。

  • 凡本网注明"来源:智能制造网的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

热门频道