功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据

功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据

ID:20760224

大小:166.00 KB

页数:12页

时间:2018-10-15

功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据_第1页
功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据_第2页
功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据_第3页
功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据_第4页
功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据_第5页
资源描述:

《功能和样例:通过tcp协议(利用fc5“ag_send”和fc6“ag_recv”)传送具有可变消息长度的数据》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WORD文档下载可编辑功能与样例:通过TCP协议(利用FC5“AG_SEND”和FC6“AG_RECV”)传送具有可变消息长度的数据显示订货号问题:如何利用通讯功能FC5“AG_SEND”和FC6“AG_RECV”,通过TCP协议传送具有可变消息长度的数据?解答:TCP协议的性能:当通过TCP传送数据时,该传送是基于数据流的形式。在这种情况下,不给出与消息长度、开始和结束有关的信息。发送消息时,这并不是问题,因为发送者知道要传送多少数据字节。然而,接收者无法分辨消息在数据流中的何处结束,下一个消息在何处开始。因此,对于通过纯TCP建立的链接

2、只有两个选项可选:1.使用固定消息长度,也就是说,发送者和接收者都使用预定义的数据长度。这意味着要始终明确定义消息限制。2.使用可变消息长度。在这种情况下,接收端和发送端都需要更多的时间,因为在开始字节中必须输入起始分隔符和要发送数据的数据长度。这样,>接收者就可以正确地解释已接收的消息。下面的实例程序包含一个TCP连接,通过该连接,具有可变消息长度的数据可以利用FC5发送给一个站,并利用FC6接收。实例程序:通过TCP协议(利用FC5“AG_SEND”和FC6“AG_RECV”)传送具有可变消息长度的数据常规描述:STEP7项目包括两个S

3、7-300站,它们均具有用于工业以太网通讯的CPU315-2DP和CP343-1。这两个站之间的通讯基础是TCP连接。如果在NetPro中通过“右键单击>对象属性”打开TCP连接属性,则可以查看通讯功能块的块参数“ID”。在调用FC5和FC6时,要注意该规范,以便可以通过TCP连接传送数据。

专业技术资料分享WORD文档下载可编辑图1:TCP连接的属性为了利用TCP协议传送数据,要传送的数据必须具有指定的结构。消息必须包括起始分隔符(以便接收者可以识别消息从何处开始),数据长度规范(定义接收缓冲区)和数据本身。在此实例中,定义了消息的

4、4个字节的起始分隔符(预置值为:0x11,0x12,0x13,0x14)和一个S7串。该S7串包括两个字节的长度信息和实际的数据串。使用S7串可以传送所有的ASCII字符。图2:消息的结构注意事项:专业技术资料分享WORD文档下载可编辑该实例程序基于如图2所示的消息结构,但也可以自行定义消息结构。如果希望使用不同的消息结构(例如,h起始分隔符只有3个字节),则可以依照用户的特定需求,简单地改变该实例程序。因此,希望利用FC5(AG_SEND)传送的数据,必须在数据块(DB220)中按照预定义的结构准备好。随后,该数据可以利用FC6(AG_R

5、ECV)按如下步骤接收:1.接收起始分隔符(逐字节地)并识别消息2.接收S7串的长度信息3.接收数据STEP7程序描述STEP7程序包括如下块:OB100,OB1,FB100,DB100(FB100的背景DB),FB101(DB100中的多重背景),DB220,DB221,FC5,FC6。·OB100OB100是启动OB,当CPU重启(暖重启)时,运行该OB。在此OB中,发送的首个通讯触发器的版本为M1.0和M0.1。图3:OB100·OB1周期性调用OB1。该OB包括具有M1.0和M0.1的FB100(背景OB:OB100)的调用。一旦运

6、行FB100,则复位M1.0。专业技术资料分享WORD文档下载可编辑---------------图4:OB1·FB100:在OB1周期中调用FB100。该FB包括FC5“AG_SEND”和FB101“AG_RECV_VARIABLE”的调用。发送块FC5“AG_SEND”当时钟标记M10.7为上升沿,且未置位“SND_BUSY”时,输入参数“ACT”h可以激活FC5。当作业运行时,置位“SND_BUSY”,并且,在此期间不能触发任何功能。该功能块特别重要,因为该功能是异步的,且占有多个周期。如果对该功能持续激活,而不是等待其中止,则会导致

7、通讯过载。输入参数“ID”和“LADDR”只能从NetPro(图1)中的TCP连接属性对话框中获取。在“SEND”参数中,需要指定要发送数据的地址(P#DB220.DBX0.0BYTE48)。在“LEN”参数中,输入要发送的字节数(48)。输出参数“DONE”,“ERROR”和“STATUS”对于作业评估是必需的,而且只在同一个周期内有效。专业技术资料分享WORD文档下载可编辑图5:FB100-调用FC5如果块运行无错误,则复位“SND_BUSY”,并再次调用FC5。如果该块因出错而终止,则保存块的状态字用于错误分析,同样复位“SND_BU

8、SY”。专业技术资料分享WORD文档下载可编辑图6:FB100-FC5调用的评估接收块FB101“AG_RECV_VARIABLE”当调用FB101“AG_RECV_VARIAB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。