功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx

上传人:b****5 文档编号:20347253 上传时间:2023-01-22 格式:DOCX 页数:13 大小:110.73KB
下载 相关 举报
功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx_第1页
第1页 / 共13页
功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx_第2页
第2页 / 共13页
功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx_第3页
第3页 / 共13页
功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx_第4页
第4页 / 共13页
功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx

《功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx》由会员分享,可在线阅读,更多相关《功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

功能与样例通过TCP协议利用FC5 AGSEND和FC6AGRECV 传送具有可变消息长度的数据Word文档格式.docx

这样,>

接收者就可以正确地解释已接收的消息。

下面的实例程序包含一个TCP连接,通过该连接,具有可变消息长度的数据可以利用FC5发送给一个站,并利用FC6接收。

实例程序:

通过TCP协议(利用FC5“AG_SEND”和FC6“AG_RECV”)传送具有可变消息长度的数据

常规描述:

STEP7项目包括两个S7-300站,它们均具有用于工业以太网通讯的CPU315-2DP和CP343-1。

这两个站之间的通讯基础是TCP连接。

如果在NetPro中通过“右键单击>

对象属性”打开TCP连接属性,则可以查看通讯功能块的块参数“ID”。

在调用FC5和FC6时,要注意该规范,以便可以通过TCP连接传送数据。

<

/p>

图1:

TCP连接的属性

为了利用TCP协议传送数据,要传送的数据必须具有指定的结构。

消息必须包括起始分隔符(以便接收者可以识别消息从何处开始),数据长度规范(定义接收缓冲区)和数据本身。

在此实例中,定义了消息的4个字节的起始分隔符(预置值为:

0x11,0x12,0x13,0x14)和一个S7串。

该S7串包括两个字节的长度信息和实际的数据串。

使用S7串可以传送所有的ASCII字符。

图2:

消息的结构

注意事项:

该实例程序基于如图2所示的消息结构,但也可以自行定义消息结构。

如果希望使用不同的消息结构(例如,h起始分隔符只有3个字节),则可以依照用户的特定需求,简单地改变该实例程序。

因此,希望利用FC5(AG_SEND)传送的数据,必须在数据块(DB220)中按照预定义的结构准备好。

随后,该数据可以利用FC6(AG_RECV)按如下步骤接收:

1.接收起始分隔符(逐字节地)并识别消息

2.接收S7串的长度信息

3.接收数据

STEP7程序描述

STEP7程序包括如下块:

OB100,OB1,FB100,DB100(FB100的背景DB),FB101(DB100中的多重背景),DB220,DB221,FC5,FC6。

∙OB100

OB100是启动OB,当CPU重启(暖重启)时,运行该OB。

在此OB中,发送的首个通讯触发器的版本为M1.0和M0.1。

图3:

OB100

∙OB1

周期性调用OB1。

该OB包括具有M1.0和M0.1的FB100(背景OB:

OB100)的调用。

一旦运行FB100,则复位M1.0。

---------------

图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”,并且,在此期间不能触发任何功能。

该功能块特别重要,因为该功能是异步的,且占有多个周期。

如果对该功能持续激活,而不是等待其中止,则会导致通讯过载。

输入参数“ID”和“LADDR”只能从NetPro(图1)中的TCP连接属性对话框中获取。

在“SEND”参数中,需要指定要发送数据的地址(P#DB220.DBX0.0BYTE48)。

在“LEN”参数中,输入要发送的字节数(48)。

输出参数“DONE”,“ERROR”和“STATUS”对于作业评估是必需的,而且只在同一个周期内有效。

图5:

FB100-调用FC5

如果块运行无错误,则复位“SND_BUSY”,并再次调用FC5。

如果该块因出错而终止,则保存块的状态字用于错误分析,同样复位“SND_BUSY”。

图6:

FB100-FC5调用的评估

接收块FB101“AG_RECV_VARIABLE”

当调用FB101“AG_RECV_VARIABLE”时,必须从NetPro(图1)中的连接属性对话框中获取参数“ID”和“LADDR”h。

在“RECV_BUF”中,需要指定要接收数据的存储位置(P#DB221.DBX0.0BYTE50)。

输出参数“NDR”,“ERROR”和“STATUS”对于作业评估是必需的,而且只在同一个周期内有效。

图7:

FB100-调用FB101

如果块运行无错误,则保存接收到的数据长度。

如果该块因出错而终止,则保存块的状态字用于错误分析。

图8:

FB100-FB101调用的评估

∙FB101(“AG_RECV_VARIABLE”):

状态机:

通过变量“STATE_CNT”来定义FB101中程序的输入点。

根据变量“STATE_CNT”的状态,跳过与程序的进一步的处理相关的程序段。

按照“STATE_CNTP”的程序处理:

"

STATE_CNT"

描述

已收到起始分隔符的第一个字节

(从NW9跳至NW13)

1

已收到起始分隔符的第二个字节

(从NW10跳至NW14)

2

已收到起始分隔符的第三个字节

(从NW11跳至NW15)

3

已收到起始分隔符的第四个字节

(从NW12跳至NW16)

4

已识别起始分隔符。

正在接收数据信息

 

(从NW3跳至NW17)

5

已创建接收缓冲区且数据已接收

(从NW4跳至NW20)

接收起始分隔符(逐字节)并识别消息(程序段5-16)

使用FC6“AG_RECV”,逐字节地接收起始分隔符(4字节)。

当调用FC6“AG_RECV”时,参数“ID”和“LADDR”来自FB101的输入参数。

在“RECV”中,需要指定已接收字节的存储位置(SD缓冲区:

字节变量)。

输出参数“NDR”,“ERROR”和“STATUS”对于作业评估是必需的,而且只在同一个周期内有效。

如果块运行无错误,则保存接收的字节,用于进一步的处理。

已接收字节后,检验已定义的起始信息。

(Byte0=11;

Byte1=12;

Byte2=13;

Byte3=14)。

图9:

通过起始分隔符识别消息

接收S7串的长度信息(程序段3,17-20)

如果已接收的信息被识别为起始分隔符,那么利用FC6“AG_RECV”接收S7串的长度信息(两个字节)。

在“RECV”中,需要指定两个长度信息字节的存储位置(VAR_LEN:

由两个字节构成)。

输出参数“NDR”,“ERROR”和“STATUS”对于作业评估是必需的,而且只在同一个周期内有效。

如果块运行无错误,则已接收数据的实际长度用于接收缓冲区(ANY指针)。

如果该块因出错而终止,则块的状态字作为FB101的输出参数显示。

图10:

接收长度信息 

在创建接收缓冲区(ANY指针)时,有关串(VAR_LEN.ACT_LEN)的实际长度的信息是必需的。

在此,当调用FB101时,使用数据的实际长度来检验已指定的接收缓冲区(ANY指针),并将其存储在临时的ANY指针(VAR_BUF)。

图11:

创建接收缓冲区

接收数据(程序段4,21-23)

随后,利用FC6接收数据。

在“RECV”中,需要指定数据的存储位置(VAR_BUF:

临时ANY指针)。

如果块运行无错误,则保存已接收数据的长度,并将其作为输出参数发送给FB101。

如果该块因出错而终止,则块的状态字作为FB101的输出参数显示。

图12:

接收数据

∙DB220:

与FC5一起使用的数据结构位于DB220。

图13:

DB220-发送数据结构

∙DB221:

与FC6一起接收的数据存储在DB221。

该下载包括已描述的实例程序,通过STEP7V5.3和SIMATICNETV6.2创建。

T_cp_data.exe

将“Tcp_data.exe”文件复制到一个单独的目录中,然后通过双击来启动该文件。

STEP7项目将自动解压所有的子目录。

随后,p可以使用SIMATIC管理器来打开并处理该项目。

过滤标准:

硬件平台:

IndustrialEthernet,SIMATICS7-300/S7-400

软件:

STEP7uptoV5.x

帖子内容:

功能组件/工具

条目号:

8707570

日期:

2005-06-23

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1