当前位置:首页 >> 信息与通信 >>

工业以太网S7-300 400 CPs-通信组态和编程


自动化技术 > 工业通信 > 工业以太网 > 系统接口 > SIMATIC S7 工业以太网S7-300/400 CPs -- 通信组态和编程 -- 调用通信块 调用 TRCV 指令的时候如何使能 ad-hoc 模式? 在 STEP 7 Professional (TIA Portal) 中,如何基于S7-300/S7-400 的工业以太网 CP 卡使用M

ODBUS/TCP 通信块? 如何从样例项目中将用于开放的 MODBUS / TCP的"Modbus"的 CFC 程序块拷贝到用户项目中? Modbus TCP 块的初始化和运行参数之间的差异是什么? 为什么尽管输入了正确的 Modbus TCP 授权,仍然输出 A090(HEX) 状态值? 对于 Modbus TCP 块,授权版本和下载的演示版本之间有什么差异? 使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS 的值一直保持 A083 (十六进制) ? 可变消息长度的数据是如何通过TCP协议传送并被S7-300 站的工业以太网CP接收的? 怎样在 S7-300 的 S7 程序中用功能块 FB14 "GET" 和 FB15 "PUT" 来编程实现超过 160 个字节的数据传送? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 UDP 传输协议通信的例子和文档? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 ISO 传输协议通信的例子和文档? 如何对FC10 “AG_CNTRL”进行编程? IE CP 支持FC10 "AG_CNTRL" 功能的哪些命令(CMD)? 通过CP343-1进行S7 通讯时,在S7-300 CPU中可以同时进行多少通讯任务? 哪些通信口可以进行 Modbus/TCP 通讯,作为 Modbus 服务器的 SIMATIC S7 CPU 可以与多少个 Modbus 客户端通信? 如何通过 CPU集成的PROFINET 接口或是通过CP443-1 Advanced 使用 FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和 FB66 "TDISCON" 通讯块实现 ISO-on-TCP 协议的数据交换? 如何编写 PROFINET IO 设备通讯块 FC11 和 FC12 在多个运行程序中执行通讯处理器块调用 在作业运行期间改变用户块"AG_SEND"和"AG_RECV"的输入参数 当调用通信功能块 FC5/50 "AG_SEND/AG_LSEND" 和 FC6/60 "AG_RCV/AG_LRCV" 传送 "REAL" 类型的变量时应该注意些什 么? 当使用通信函数FC53"AG_SSEND" 和FC63 "AG_SRECV"应注意什么? 当在 STEP 7的 CPU 中用户程序里调用 FC5/50 和 FC6/60 通讯块时需要记住的要点有哪些? 如何使用通讯功能块FC11和FC12用于PROFINET IO 控制器编程? 如何在 SIMATIC S7 上建立OPEN MODBUS/TCP 通讯,如何查找相关信息? 怎样使用通讯功能块 FC50 和 FC60 编程? 在S7-400控制器上利用Send/Receive通信时,功能块FC6 / FC60 (AG_SEND)上出现错误状态“0x7000” 如何使用通信功能块FC5和FC6编程? 样例程序:在S7-400中使用SFB14 ("GET") 和SFB15 ("PUT")模块进行S7通信 示例程序:通过CPU 317-2PN/DP的功能块FB14("GET")和FB15 ("PUT")实现S7通讯 S7-300 中如何编程通信块 FB8 "USEND" 和 FB9 "URCV" 进行数据交换? “STATUS = 27”(0x001B) 和在 S7-300 上可加载的 S7 通讯 在 S7-300 的数据通信中如何编程使用通信功能块 FB14 “GET”和 FB15 “PUT”? S7-300中如何使用通信功能块FB12 "BSEND" 和 FB13 "BRCV"进行数据交换? 当“BRCV”t 块(SFB13)处于“ disabled”状态(“EN_R = 0”) 时,重复“BSEND”作业(SFB12)

调用 TRCV 指令的时候如何使能 ad-hoc 模式? 描述 可以通过在 S7-300,S7-400,S7-1200 或者 S7-1500 的用户程序中调用 TRCV 指令,经由工业以太网通过开放式用户通信的方式接 收数据。 接收数据时,只有按照参数 LEN 的指定的长度将数据完全接收后,数据才能被访问。 为了使数据即 使没 有按照 LEN 所示长度被完全接收也可以立即被使用,必须使 用 ad-hoc 模式。当通过工业以太网使用 TCP 协议进 行开放式用户通信时,可以使用 ad-hoc 模式。 当在 ad-hoc 模式下调用 TRCV 指令时,接口中所有可用的数据都被获取到,使用这个方式可以立即访问数据。 在S7-300,S7-400 和 S7-1200 中使能 ad-hoc 模式 在 S7-300,S7-400 和 S7-1200 中使能 ad-hoc 模式,需要将 TRCV 指令的 LEN 引脚设置为“0”。 接收区域由 DATA 参数指定。

图 01 在 S7-1200 V2.0 及以上版本中使能 ad-hoc 模式 在 S7-1200 V2.0 及以上版本中使能 ad-hoc 模式时,需要将 TRCV 指令的 LEN 引脚设为 "65535 (0xFFFF)"。 接收区域由 DATA 参数指定。

图 02 在 S7-1500 中使能 ad-hoc 模式 TRCV 指令在 S7-1500 中有新的隐藏参数。当调用 TRCV 指令的时候需要打开块查看隐藏参数。

图 03 通过 ADHOC 参数使能 ad-hoc 模式。设置参数为 TRUE 来激活 ad-hoc 模式。在 LEN 参数设置能够被传送的数据的最大长度。

图 04 补充信息 TRCV 指令的详细使用方法可以查看 STEP 7 V12 (TIA 博途) 的在线帮助,或者参考手册“STEP 7 Professional V12.0 SP1”,下载地 址的链接参考条目 77991795。 创建环境 FAQ 中的截屏都是在 STEP 7 V12 (TIA 博途) 环境下创建的。 在 STEP 7 Professional (TIA Portal) 中,如何基于S7-300/S7-400 的工业以太网 CP 卡使用MODBUS/TCP 通信块? 指令

用于 S7-300/S7-400 工业以太网 CP 卡的 MODBUS/TCP 通信块可以以指令库的形式提供下 载:"Modbus_TCP_CP"。
http://www.siemens .com/s7modbus

"Modbus_TCP_CP" 库可以安装在已安装了 STEP 7 V5.4 或V5.5 的电脑上。为了能够在 STEP 7 Professional (TIA Portal) 中 使用 "Modbus_TCP_CP" 库中的块,必须在 TIA Portal 中进行块的移植。 下述文档描述了如何将 "Modbus_TCP_CP" 库中的块移植到STEP 7 Professional (TIA Portal) 中以便使用。

NET_Migration_Library_Modbus_CP_en.pdfNET_Migration_Library _Modbus_CP_en.pdf ( 1185 KB ) 用于 STEP 7 Professional V11 (TIA Portal) 的下载

该下载中包含的 "MODBUS_TCP_CP_EXAMPLE.zip" 项目是在 STEP 7 Professional V11 (TIA Portal) 中创建的,该 项目包含了 CP343-1 / CP443-1 与第三方设备之间使用移植的 Modbus 块进行 Modbus/TCP 通讯的例程。共有四 个例程用于 CP343-1 和 CP443-1: CP 配置为客户端且支持功能 FC10"AG_CNTRL" 的命令 6和 7。 CP 配置为服务器且支持功能 FC10"AG_CNTRL" 的命令 6 和 7。 CP 配置为客户端且不支持功能 FC10"AG_CNTRL" 的命令 6和 7。 CP 配置为服务器且不支持功能 FC10"AG_CNTRL" 的命令6和 7。 将 "MODBUS_TCP_CP_EXAMPLE.zip" 文件拷贝到一个单独的文件夹后双击打开该文件。之后使用 STEP 7 打 开并处理解压后的项目数据。

MODBUS_TCP_CP_EXAMPLE.zipMODBUS_TCP_CP_EXAMPLE.z ip ( 3288 KB ) 用于 STEP 7 Professional V12 (TIA Portal) 的下载

该下载中包含的 "MODBUS_TCP_CP_EXAMPLE_V12.zip" 项目是在 STEP 7 Professional V12 (TIA Portal) 中创建 的,该项目包含了 CP343-1 / CP443-1 与第三方设备之间通过移植的 Modbus 块进行 Modbus/TCP 通讯的例程。 共有四个例程用于 CP343-1 和 CP443-1: CP 配 CP 配 CP 配 CP 配 置为客户端且支持功能FC10"AG_CNTRL" 的 命令 6 和 7。 置为服务器且支持功能FC10"AG_CNTRL" 的 命令 6和 7。 置为客户端且不支持功能FC10"AG_CNTRL" 的 命令 6和 7。 置为服务器且不支持功能FC10"AG_CNTRL" 的 命令 6和 7。

将 "MODBUS_TCP_CP_EXAMPLE_V12.zip" 文件拷贝到一个单独的文件夹后双击打开该文件。之后使用 STEP 7 打开并处理解压后的项目数据。

MODBUS_TCP_CP_EXAMPLE_V12.zipMODBUS_TCP_CP_EXAMPLE_V12.z ip ( 5023 KB )

用于 STEP 7 Professional V12 (TIA Portal) 的下载

该下载中包含的 "MODBUS_TCP_CP_EXAMPLE_V12_SP1_Upd2.zip" 项目是在 STEP 7 Professional V12 (TIA Portal) 中创建的,该项目包含了 CP343-1 / CP443-1 与第三方设备之间通过移植的 Modbus 块进行 Modbus/TCP 通讯的例程。共有四个例程用于 CP343-1 和 CP443-1: CP 配置为客户端且支持功能 FC10"AG_CNTRL" 的命令6和 7。 CP 配置为服务器且支持功能 FC10"AG_CNTRL" 的命令 6 和 7。 CP 配置为客户端且不支持功能 FC10"AG_CNTRL" 的命令6 和 7。 CP 配置为服务器且不支持功能 FC10"AG_CNTRL" 的命令6 和 7。 将 "MODBUS_TCP_CP_EXAMPLE_V12_SP1_Upd2.zip" 文件拷贝到一个单独的文件夹后双击打开该文件。之后 使用 STEP 7 打开并处理解压后的项目数据。

MODBUS_TCP_CP_EXAMPLE_V12_SP1_Upd2.zipMODBUS_TCP_CP_EXAMPLE_V12_SP1_Upd2.zip ( 5498 KB ) 附加信息 关于 MODBUS/TCP 通迅的详细信息请参考: http://www.siemens .com/s7modbus 如何从样例项目中将用于开放的 MODBUS / TCP的"Modbus"的 CFC 程序块拷贝到用户项目中?

描述

以下产品可用于 SIMATIC S7 建立 SIMATIC S7 和第三方设备通过 MODBUS TCP 之间的连接。
OPEN MODBUS OPEN MODBUS OPEN MODBUS OPEN MODBUS / / / / TCP TCP TCP TCP CP Redundant Redundant V2 PN-CPU

在这个链接,S7OpenModbus/TCP,您将找到以上所列产品最新的手册、样列项目和以上列出的产品的硬件要求。

关于"Modbus"的 CFC 样例项目在以上产品中也已包含。

Fig. 01

当从样列项目中复制的 CFC 图表“Modbus”到用户项目时,你可能会在任务列表中得到如下错误讯息。

Fig. 02

打开样列项目中的符号表。在符号表中删除条目 OB100。

Fig. 03

编译 CFC 图 “Modbus”,在样列项目用鼠标右键单击图文件夹并在弹出菜单中选择“编译”。 现在您可以将 CFC 图表“Modbus” 复制到用户项目。

Fig. 04

详细信息 有关 SIMATIC S7 的开放式 MODBUS / TCP 的详细信息参阅条目 ID 22660304。

Modbus TCP 块的初始化和运行参数之间的差异是什么? 描述 这个条目讲述 Modbus TCP 块的初始化和运行参数之间的差异。用于通信的 Modbus 块在 SIMATIC S7 用户程序中被调用。 初始化参数用小写字母表示,这使得它与运行参数更容易被区分。初始化参数只有在 OB100 中调用时方可评估,并被传送到 Modbus 块的背景数据块中。在运行过程中改变初始化参数没有任何影响,因为只有已存储的值被处理。初始化参数指定实现什么功能,如果要 改变这些参数,比如在测试模式下,背景数据块必须通过 CPU 的重启(STOP>运行)才能进行重新初始化。在初始化参数中,例如 Modbus 寄存器的数据类型被定义(data_type_1)。此外,初始化参数还定义了 CPU 是服务器或是客户端(server_client)。 运行参数用大写字母表示,可以在循环模式下改变,运行参数定义了当前的工作。然而当“CPU/ CP 是客户端”模式时,运行中的输入参 数是无法修改的。直到DONE_NDR 或错误被置位,即前一个作业已结束,才能为下一个作业做准备并对相关参数做修改。当“CPU/ CP 是服务器”模式时,只有 DONE_NDR 置位时才能评估输出参数。输出参数是动态显示的,因此只在1个 CPU 循环周期内有效。任 何需要进一步处理或在变量表显示的输出参数,都必须存储在不同的内存区域。 为什么尽管输入了正确的 Modbus TCP 授权,仍然输出 A090(HEX) 状态值? 描述:

尽管输入了正确的授权,仍然输出 A090(HEX) 状态值,这有不同的原因。 原因 解决办法

没有在项目中插入功能 FC10 "EQ_STRNG" ,或是功能 FC10 "EQ_STRNG"具 确定在项目中插入了功能FC10 "EQ_STRNG" 。这 有不同的 FC 号. 可在STEP 7标准库的 "IEC Function Bloc ks -> Block s"下找到. 这会影响以下产品和版本: 如果在用户程序中已经使用了该 FC n号,必须在 Modbus块中对功能FC10 "EQ_STRNG" 重新布线为 S7 OpenMODBUS/TCP (V4.0 and V4.1) 新的FC号. S7 OpenMODBUS/TCP PN-CPU (V2.0, V2.1, V2.2, V2.3 and V2.4) SIMATIC Modbus/TCP RED V2 (V2.0) 注意 不会影响上述所列产品的后续版本,也不会影响 SIMATIC Modbus/TCP SENTRON PAC 和SIMATIC Modbus/TCP PN CPU Redundant . 仅在授权数据块的数据视图下输入了授权密钥 如果在授权数据块的数据视图下输入授权密钥,它会 在CPU重启时被初始值覆盖。所以,必须在声明视图 中作为初始值输入授权密钥。之后在数据视图中授权 密钥可以被初始化。 确定字符串 REG_ KEY 只包含字母。 从 OB121中移除Modbus块的调用。.

在REG_ KEY中使用了数字 0 (零) 而不是字母 O . 在OB121中调用了Modbus块. 这会影响以下产品: S7 OpenMODBUS/TCP S7 OpenMODBUS/TCP PN-CPU (only V2.2 and higher) SIMATIC Modbus/TCP RED V2 SIMATIC Modbus/TCP SENTRON PAC SIMATIC Modbus/TCP PN CPU Redundant

对于 Modbus TCP 块,授权版本和下载的演示版本之间有什么差异? 描述 一个演示版本的用于连接 SIMATIC 控制器和不同厂家系统的 S7 Open Modbus TCP 软件,可以通过下面的链接下载。 S7 OpenModbus/TCP 下载的演示版本没有任何功能和时间限制, Modbus 通讯也可以在没有一个有效的授权的情况下运行。 如果 Modbus 块没有授权,CPU 的 INTF 灯 或 SF 灯将闪烁。此外,信息周期进入 CPU 的诊断缓冲区,在用户程序中的 Modbus 模 块上,输出状态值 A090(十六进制)。 使用 Modbus TCP 通讯块,为何输入管脚 ENQ_ENR 设置为 true 时输出管脚 STATUS 的值一直保持 A083 (十六进制) ? 描述 在 SIMATIC S7 中下列产品的 Modbus 块可以用于 Modbud 通讯。 产品 Modbus TCP CP Modbus TCP Redundant Modbus TCP Redundant V2 Modbus TCP PN CPU Modbus 块 FB108 FB1733 FB909, FB907 FB102

在 CPU 的用户程序调用相关的Modbus 块。 对 Modbus 块的 ENQ_ENR 输入管脚设置为 true,则其输出管脚 STATUS 则保持为 A083( 十六进制)。 当有输入参数 ENQ 或 ENQ_ENR 为 true 触发则输出管脚 STATUS 的值为 A083(十六进制)表示有新的 Modbus 消息,尽管上一个 任务还在运行。

状态值 A083(十六进制)的产生原因和补救如下: Modbus 块参数化为客户端时,A083(十六进制)的值只出现在输出参数 STATUS 。如果 S7 CPU 应工作在服务器时其状态值 输出了 A083(十六进制),则必须在 OB100 中正确参数化 Modbus 块。 触发 Modbus 消息总是终止与 DONE / DONE_NDR 或 ERROR。一个消息正在处理时不能处理新消息。 如果当一个Modbus 工作运行时 S7 CPU 作为服务器不能访问,在重连后可能呈现状态值 A083(十六进制)。这种情况下,设置 ENQ_ENR 时插入下面的条件: O "CONTROL DAT".DONE_NDR O "CONTROL DAT".ERROR AN "CONTROL DAT".BUSY S "CONTROL DAT".ENQ_ENR

可变消息长度的数据是如何通过TCP协议传送并被S7-300 站的工业以太网CP接收的? 说明 为了通过在NetPro中组态的TCP连接传送数据到S7-300,必须在S7程序中调用如下功能: FC5 "AG_SEND" 发送数据 FC6 "AG_RECV" 接收数据 通过TCP协议的数据传输是采用数据流的方式,没有传送任何关于消息长度或起始的任何信息,发送程序填充数据到TCP连接,数据通 过TCP协议以字节为单位以透明数据流来传送。 接收程序必须评估数据流来确定在数据流中消息的起止。 发送方定义可被接收方解释的消息结构,消息结构包含用户数据,本例中为ASCII字符和最后的控制字符(比如回车),最后的控制字符 标志着消息的结束。 S7程序说明 本例子程序说明了一个S7-300 站通过TCP协议如何接收可变消息长度的数据,功能块FB103 "AG_RECV_TCP_xVAR"实现此功能。

FB103 "AG_RECV_TCP_xVAR" 内部调用了FC6 "AG_RECV"以便通过TCP协议来接收可变消息长度的数据。 FB103 "AG_RECV_TCP_xVAR"功能块对于时间做了优化,可在一个OB循环中接收可变字节数的数据,特别是包含了把ASCII 字符作 为消息结束标志,可根据需要调整FC6 "AG_RECV"在一个OB1循环周期中接收的最大字节数。

下面的文件给出了S7程序的详细说明:

NET_receive_TCP_variable_data_en.pdfNET_receive_TCP_variable_data_en.pdf ( 312 KB ) S7 程序下载 S7程序中包含了一个调用功能块FB103 "AG_RECV_TCP_xVAR" 的例子程序,该项目程序使用Step7 V5.5创建。

TCP_xVAR.zipTCP_xVAR.z ip ( 46 KB ) 怎样在 S7-300 的 S7 程序中用功能块 FB14 "GET" 和 FB15 "PUT" 来编程实现超过 160 个字节的数据传送? 描述 为了通过 S7-300 在 NetPro 中组态的 S7 连接传送数据, 您必须在 S7 程序中调用以下功能块: FB14 "GET" FB15 "PUT" 功能块 FB14 "GET" 用来从伙伴 CPU 读取数据, 而功能块 FB15 "PUT" 则用来向伙伴 CPU 写入数据. 不必在通信双方都组态 S7 连接, 因为通过 FB14 "GET" 和 FB15 "PUT" 实现的 S7 通信是基于服务器-客户机模式的. S7 编程 此示例程序演示了在 S7-300 的 S7 程序中如何顺序调用 FB14 "GET" 和 FB15 "PUT" 功能块来实现通过 S7 连接传送超过 160 字节 的数据。

FB14 "GET"在一行中通过相同连接号被调用3次来接受 400 字节的数据。 FB15 "PUT" 在一行中通过相同连接号被调用3次来传送 240 字节的数据。 下面的文件详细描述了此 S7 程序。

PUT_GET_Sequencer_en.pdfPUT_GET_Sequencer_en.pdf ( 1121 KB ) 下载 S7 程序 这个 STEP 7 项目中包含了一个能够顺序调用 FB14 "GET" 和 FB15 "PUT“ 功能块的 S7 程序,通过此程序 S7-300 通过一个 S7 连接 可接收和发送的数据量分别为 400 字节和 240字节。

Sequencer.zipSequencer.zip ( 41 KB ) 注意: 如果是在 S7-300 站上使用工业以太网模块 CP 或者 PROFIBUS CP 来实现基于 S7 连接的数据通信,请使用 "CP 300 > Bloc ks" 下面的 "SIMATIC_NET_CP" 库中的 FB14 "GET" 和 FB15 "PUT" 功能块。 如果是使用 CPU 集成的 PROFINET 接口实现基于 S7 连接的数据通信,请使用 "CPU_300" 中 "Standard Library -> Communication Blocks -> Block s" 下的 FB14 "GET" 和 FB15 "PUT" 功能块。 关于组态S7-300和S7-400的工业以太网CP的S7连接通信的信息可参考条目号:17628518。

哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 UDP 传输协议通信的例子和文档?

描述 本条目包括工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过ISO传输协议通信的例子和文档。 UDP 协议第 4 层服务 "SEND" 和 "RECEIVE" 用于数据传输。 主动方 S7 CP343-1 CP443-1 S5 CP1430 CP1430 被动方 S5 CP1430 CP1430 S7 CP343-1 CP443-1 SR_UDP_CP1430_V20.z ipSR_UDP_CP1430_V20.zip SR_UDP_CP343-1_V20.z ipSR_UDP_CP343( 3 KB ) 1_V20.zip ( 68 KB ) SR_UDP_CP1430_V20.z ipSR_UDP_CP1430_V20.zip SR_UDP_CP443-1_V20.z ipSR_UDP_CP443( 3 KB ) 1_V20.zip ( 79 KB ) SR_UDP_CP343-1_V20.z ipSR_UDP_CP3431_V20.zip ( 68 KB ) SR_UDP_CP443-1_V20.z ipSR_UDP_CP4431_V20.zip ( 89 KB ) SR_UDP_CP1430_V20.z ipSR_UDP_CP1430_V20.z ip ( 3 KB ) SR_UDP_CP1430_V20.z ipSR_UDP_CP1430_V20.z ip ( 3 KB ) 主动方示例程序 被动方示例程序

说明: 更多关于 SIMATIC S5 和 SIMATIC S7 模块通信的信息可参见以下条目: 描述 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 ISO 传输协议通信的例子和文档? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档? UDP 协议有何属性、优势和特点? 用于SIMATIC NET S7 CP的功能 (FC) 和功能块 (FB) 编程手册 条目号 47905848 47944739 26484229 30564821

哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档?

描述

本条目包括工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档。 TCP 协议下列服务用于数据传输: SEND 和 RECEIVE 短数据块 SEND 和 RECEIVE 长数据块 SEND 和 RECEIVE 短数据块 SIMATIC S5 模块到 SIMATIC S7 模块的通信通过第 4 层服务 "SEND" 和 "RECEIVE" ,数据长度可达 240 字节。 主动方 S7 CP343-1 CP443-1 S5 CP1430 CP1430 被动方 S5 CP1430 CP1430 S7 CP343-1 CP443-1 SR_TCP_CP1430_V20.zipSR_TCP_CP1430_V20.zip SR_TCP_CP343-1_V20.zipSR_TCP_CP343( 3 KB ) 1_V20.z ip ( 68 KB ) SR_TCP_CP343-1_V20.zipSR_TCP_CP3431_V20.zip ( 68 KB ) SR_TCP_CP443-1_V20.zipSR_TCP_CP4431_V20.zip ( 93 KB ) SR_TCP_CP1430_V20.zipSR_TCP_CP1430_V20.z ip ( 3 KB ) SR_TCP_CP1430_V20.zipSR_TCP_CP1430_V20.z ip ( 3 KB ) 主动方示例程序 被动方示例程序

SEND 和 RECEIVE 长数据块 SIMATIC S5 模块到 SIMATIC S7 模块的通信通过第 4 层服务 "SEND" 和 "RECEIVE" ,数据长度可达 8192 字节。 主动方 被动方 主动方示例程序 S7 S5 SRL_TCP_CP1430_V20.zipSRL_TCP_CP1430_V20.z ip ( 3 KB ) SRL_TCP_CP1430_V20.zipSRL_TCP_CP1430_V20.z ip ( 3 KB ) 被动方示例程序

CP343- CP1430 SRL_TCP_CP343-1_V20.zipSRL_TCP_CP3431 1_V20.z ip ( 67 KB ) CP443- CP1430 SRL_TCP_CP443-1_V20.zipSRL_TCP_CP4431 1_V20.z ip ( 91 KB ) S5 S7

CP1430 CP343- SRL_TCP_CP1430_V20.zipSRL_TCP_CP1430_V20.z ip SRL_TCP_CP343-1_V20.zipSRL_TCP_CP3431 ( 3 KB ) 1_V20.zip ( 70 KB ) CP1430 CP443- SRL_TCP_CP1430_V20.zipSRL_TCP_CP1430_V20.z ip SRL_TCP_CP443-1_V20.zipSRL_TCP_CP4431 ( 3 KB ) 1_V20.zip ( 81 KB ) 说明: 更多关于 SIMATIC S5 和 SIMATIC S7 模块通信的信息可参见以下条目: Entry ID 47905848 47944603 22535867 19481973 21533524 26171811 12586144 12585718 30564821 Description 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 ISO 传输协议通信的例子和文档? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 UDP 传输协议通信的例子和文档? 如何在S5侧组态 TCP 连接(CP 1430 TCP)? 组态同时发送和接收的连接(CP1430 TF/TCP) 组态 TCP 连接时需要注意的基本事项是什么? TCP 协议有何属性、优势和特点? SINEC CP 1430 TF with COM 1430 TF Volume 1 of 2 SINEC CP 1430 TF with COM 1430 TF Volume 2 of 2 用于SIMATIC NET S7 CP的功能 (FC) 和功能块 (FB) 编程手册

哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 ISO 传输协议通信的例子和文档?

描述 本条目包括工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档。

ISO 协议下列服务用于数据传输: SEND 和 RECEIVE 短数据块 SEND 和 RECEIVE 长数据块 SEND 和 RECEIVE 短数据块 SIMATIC S5 模块到 SIMATIC S7 模块的通信通过第 4 层服务 "SEND" 和 "RECEIVE" ,数据长度可达 240 字节。 主动方 S7 CP343-1 CP343-1 CP443-1 CP443-1 S5 CP143 CP143 CP1430 CP1430 被动方 S5 CP143 CP1430 CP143 CP1430 S7 CP343-1 CP443-1 CP343-1 CP443-1 SR_ISO_CP143_V20.zipSR_ISO_CP143_V20.zip ( SR_ISO_CP343-1_V20.zipSR_ISO_CP3434 KB ) 1_V20.zip ( 69 KB ) SR_ISO_CP143_V20.zipSR_ISO_CP143_V20.zip ( SR_ISO_CP443-1_V20.zipSR_ISO_CP4434 KB ) 1_V20.zip ( 81 KB ) SR_ISO_CP1430_V20.zipSR_ISO_CP1430_V20.zip SR_ISO_CP343-1_V20.zipSR_ISO_CP343( 3 KB ) 1_V20.zip ( 69 KB ) SR_ISO_CP1430_V20.zipSR_ISO_CP1430_V20.zip SR_ISO_CP443-1_V20.zipSR_ISO_CP443( 3 KB ) 1_V20.zip ( 81 KB ) SR_ISO_CP343-1_V20.zipSR_ISO_CP3431_V20.zip ( 70 KB ) SR_ISO_CP343-1_V20.zipSR_ISO_CP3431_V20.zip ( 69 KB ) SR_ISO_CP443-1_V20.zipSR_ISO_CP4431_V20.zip ( 91 KB ) SR_ISO_CP443-1_V20.zipSR_ISO_CP4431_V20.zip ( 81 KB ) SR_ISO_CP143_V20.zipSR_ISO_CP143_V20.zip ( 4 KB ) SR_ISO_CP1430_V20.zipSR_ISO_CP1430_V20.zip ( 3 KB ) SR_ISO_CP143_V20.zipSR_ISO_CP143_V20.zip ( 4 KB ) SR_ISO_CP1430_V20.zipSR_ISO_CP1430_V20.zip ( 3 KB ) 主动方示例程序 被动方示例程序

SEND 和 RECEIVE 长数据块 SIMATIC S5 模块到 SIMATIC S7 模块的通信通过第 4 层服务 "SEND" 和 "RECEIVE" ,数据长度可达 8192 字节。 主动方 S7 被动方 S5 SRL_ISO_CP343-1_V20.zipSRL_ISO_CP3431_V20.zip ( 71 KB ) SRL_ISO_CP343-1_V20.zipSRL_ISO_CP3431_V20.zip ( 74 KB ) SRL_ISO_CP443-1_V20.zipSRL_ISO_CP4431_V20.zip ( 96 KB ) SRL_ISO_CP443-1_V20.zipSRL_ISO_CP4431_V20.zip ( 96 KB ) SRL_ISO_CP143_V20.zipSRL_ISO_CP143_V20.zip ( 4 KB ) SRL_ISO_CP1430_V20.zipSRL_ISO_CP1430_V20.zip ( 3 KB ) SRL_ISO_CP143_V20.zipSRL_ISO_CP143_V20.zip ( 4 KB ) SRL_ISO_CP1430_V20.zipSRL_ISO_CP1430_V20.zip ( 3 KB ) 主动方示例程序 被动方示例程序

CP343-1 CP143 CP343-1 CP1430 CP443-1 CP143 CP443-1 CP1430 S5 CP143 CP143 CP1430 CP1430 S7

CP343-1 SRL_ISO_CP143_V20.zipSRL_ISO_CP143_V20.zip ( SRL_ISO_CP343-1_V20.zipSRL_ISO_CP3434 KB ) 1_V20.zip ( 72 KB ) CP443-1 SRL_ISO_CP143_V20.zipSRL_ISO_CP143_V20.zip ( SRL_ISO_CP443-1_V20.zipSRL_ISO_CP4434 KB ) 1_V20.zip ( 73 KB ) CP343-1 SRL_ISO_CP1430_V20.zipSRL_ISO_CP1430_V20.zip SRL_ISO_CP343-1_V20.zipSRL_ISO_CP343( 3 KB ) 1_V20.zip ( 51 KB ) CP443-1 SRL_ISO_CP1430_V20.zipSRL_ISO_CP1430_V20.zip SRL_ISO_CP443-1_V20.zipSRL_ISO_CP443( 3 KB ) 1_V20.zip ( 73 KB )

下面的文档包括 用于创建示例程序的工厂配置概述 所用到程序块的介绍及通信结构

SIMATIC S5 和 SIMATIC S7 用户程序详细介绍 如何使用示例程序的信息 其它说明、提示和技巧等

IE_communication_S5_and_S7_en.pdfIE_communication_S5_and_S7_en.pdf ( 665 KB ) 说明: 更多关于 SIMATIC S5 和 SIMATIC S7 模块通信的信息可参见以下条目: 条目号 47944739 47944603 17661306 26582267 12586144 12585718 30564821 描述 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 TCP 传输协议通信的例子和文档? 哪里可以找到工业以太网上 SIMATIC S5 模块到 SIMATIC S7 模块通过 UDP 传输协议通信的例子和文档? 配置和调试SIMATIC S5 和 SIMATIC S7之间通过工业以太网的ISO传输连接 ISO 协议有何属性、优势和特点? SINEC CP 1430 TF with COM 1430 TF Volume 1 of 2 SINEC CP 1430 TF with COM 1430 TF Volume 2 of 2 用于SIMATIC NET S7 CP的功能 (FC) 和功能块 (FB) 编程手册

如何对FC10 “AG_CNTRL”进行编程?

要求: 下列工业以太网CP支持 FC10 "AG_CNTRL": 订货号 CP343-1 6GK7343-1EX21-0XE0 6GK7343-1EX30-0XE0 CP343-1 Lean 6GK7343-1CX10-0XE0 CP343-1 Advanced 6GK7343-1GX21-0XE0 6GK7343-1GX30-0XE0 CP443-1 6GK7443-1EX20-0XE0 CP443-1 Advanced 6GK7443-1EX40-0XE0 6GK7443-1EX41-0XE0 6GK7443-1GX20-0XE0 V2.2起 V1.0.24起 V2.0起 固件更新: V2. 2: 22008900 手册: 23643789 手册: 28011203 V1.0.26起 供货声明: 26685738 手册: 27013386 V1.0.24起 V1.0.23起 供货声明: 22037563 手册: 22261695 手册: 28017299 V2.1起 固件更新 V2.1: 32599720 手册: 23643456 V1.0.17起 V2.0.16起 供货声明 20750998 手册:22259495 手册: 24485272 固件版本 条目号

说明 FC10 "AG_CNTRL" 包含在当前 SIMATIC_NET_CP 库中。当前的库可以通过条目9061353下载。该条目也说明了如何正确的安装该 库。 如果已经安装了 SIMATIC_NET_CP 库,通过 SIMATIC Manager 菜单 "File > Open"打开库。 可以在SIMATIC_NET_CP下"CP 300 > Blocks" 中找到用于 S7-300 的 FC10. 可以在SIMATIC_NET_CP下"CP 400 > Blocks" 中找到用于 S7-400 的 FC10.

从SIMATIC_NET_CP库中复制 FC10 "AG_CNTRL"并插入到自己的 S7 程序中. FC 10 “AG_CNTRL”有4个输入参数: 输入参数 ACT ID 描述 激活块 连接号 说明 连接号从NetPro的组态中得到 LADDR 模块起始地址 说明 模块起始地址从硬件组态中得到 CMD 给FC10 "AG_CNTRL"的指令码

FC 10 “AG_CNTRL”有5个输出参数: 输出参数 DONE ERROR STATUS RESULT1 RESULT2 描述 命令无差错执行 错误显示 状态显示 根据给 FC10 "AG_CNTRL" 的指令所得到的反馈 根据给 FC10 "AG_CNTRL" 的指令所得到的反馈第二部分 说明 RESULT2 仅适用于 S7-400. 下图给出了一个调用 FC10 的例子:

图. 01 下表包含一些用不同指令对FC10进行的调用: 序 步骤 号 1 用CMD=1(CN_STATUS - 连接状态).调用。该命令用来传递所选择ID连接的状态。

图. 02 输出参数 RESULT1 可能有如下值: 0111 0000 0001 0111 (bin) 输出参数 RESULT1 的值是按位评估的. Bit 0 - 3: 显示发送状态 发送和接收请求的预留连接 发送请求处理中 前一发送请求确认完成 Bit 4 - 7: 显示接收状态 发送和接收请求的预留连接 没有接收任务正在处理 没有关于前一接收任务的信息 Bit 8 - 11: 显示 FETCH/WRITE 没有 FETCH 连接 没有 WRITE 连接 任务状态 OK 无任务在运行 Bit 12 - 15: 通用 CP 信息 连接已建立 CP 在运行 FC10 没有复位连接或复位连接已取消 Bit 16 - 31: 为以后扩展而预留 2 用CMD=2(CN_RESET - 连接复位)调用。该命令复位已经选择ID的连接。

图. 03 输出参数 RESULT1 可能有如下值:

0000 0001 (hex), 例如,复位指令被成功的传输到CP。 为了测试连接已取消,现在直接执行 CMD=1.

Fig. 04 输出参数现在有如下值: 0100 0000 0001 1001 (bin) 输出参数 RESULT1 的值是按位评估的. Bit 0 - 3: 显示发送状态 发送和接收请求的预留连接 没有发送任务在处理 前一发送请求没有完成 Bit 4 - 7: 显示接收状态 发送和接收请求的预留连接 没有接收任务正在处理 没有关于前一接收任务的信息 Bit 8 - 11: 显示 FETCH/WRITE 没有 FETCH 连接 没有 WRITE 连接 任务状态 OK 无任务在运行 Bit 12 - 15: 通用 CP 信息 连接已断开 CP 在运行 FC10 没有复位连接或复位连接已取消 Bit 16 - 31: 为以后扩展而预留

3 用CMD=3(CN_STATUS_ALL - 所有连接状态)调用。该命令 在RESULT1/2参数(总共8个字节的集合信息)中提供所有连接(建立/取 消)的状态。参数ID必须设置为“0” (选中0)

图. 05 输出参数RESULT1有如下值: 0111 (bin),如,ID为 1, 2 and 3 的连接已经建立. 说明 只有已经预先调用了相应的发送/接收块,提供的全部反馈值才是确定的。 可以在STEP 7的在线帮助或手册"Functions (FC) and Function Block s (FB) for SIMATIC NET S7-CPs Programming Manual"中找到块 以及参数赋值的完整描述。手册可在条目号3056482中找到。 关于上面提到的IE CP所支持的命令 (CMD) 的信息可以在如下条目33414377中找到。 IE CP 支持FC10 "AG_CNTRL" 功能的哪些命令(CMD)? 描述: 可以使用 FC 块 "AG_CNTRL"进行连接诊断。 如果需要, 能通过FC10初始化一个新连接。

图 01 下列行为可以通过参数化命令执行: 读出连接数据 基于所有或单独的IE CP 连接的状态数据,可以决定是否需要复位连接 。 复位配置连接 可以复位单个连接或一个IE CP的所有连接. FC10 "AG_CNTRL"的命令用于开放通信服务,仅适用以下协议: ISO传输, ISO-on-TCP (RFC 1006), TCP 与UDP. 更多FC10 "AG_CNTRL" 命令可以在手册“Functions (FC) and Function Block s (FB) for SIMATIC NET S7-CPs Programming Manual"中找到。手册条目号:30564821. 下列设定和清除连接命令不是所有 IE CP都支持:

命令 CMD 6 "CN_DISCON"

说明 连接断开: 该命令通过选择的 ID 和 LADDRD复位相应连接. 复位操作通过连接中断提示. 在堆栈存储的数据将丢失且没有提 示。 连接不会自动再建立. 使用"CON_STARTCON" 控制命令重新建立连接. 在诊断缓冲区中生成一个条目,提 示命令执行结果。 启动连接:

CMD 7

"CN_STARTCON" 该命令通过选择的ID 和LADDR建立先前通过"CON_DISCON"命令而取消的连接. 在诊断缓冲区中生成一个条目, 提示命令执行结果。

表 01 下列内容信息是关于支持FC10 "AG_CNTRL"的IE CP能执行哪些命令 命令号 0-5 0-5 0-5 0-5 0-5 0-5 0-7 0-7 0-7 0-7 0-7 0-7 0-7 0-7 类型 CP343-1 Lean CP343-1 CP343-1 CP343-1 Advanced CP443-1 Advanced CP443-1 Advanced CP343-1 Lean CP343-1 CP343-1 Advanced CP343-1 Advanced CP443-1 CP443-1 CP443-1 Advanced CP443-1 Advanced 订货号 6GK7343-1CX10-0XE0 6GK7343-1EX21-0XE0 6GK7343-1EX30-0XE0 6GK7343-1GX21-0XE0 6GK7443-1EX40-0XE0 6GK7443-1EX41-0XE0 6GK7343-1CX10-0XE0 6GK7343-1EX30-0XE0 6GK7343-1GX30-0XE0 6GK7343-1GX31-0XE0 6GK7443-1EX20-0XE0 6GK7443-1EX30-0XE0 6GK7443-1GX20-0XE0 6GK7443-1GX30-0XE0 固件起始版本 2.1 1.0.17 2.0.16 1.0.24 2.2.35 1.0.24 2.2 2.2 1.0.23 3.0 1.0.26 3.0 2.0 3.0

表 02

通过CP343-1进行S7 通讯时,在S7-300 CPU中可以同时进行多少通讯任务?

描述: 通过工业以太网(CP343-1)进行S7 通讯时,可以在S7-300CPU中使用下列的通讯功能块: FB14 "GET"和FB15 "PUT" FB12 "BSEND" 和FB13 "BRCV" FB8 "USEND"和FB9 "URCV" 对于每一个S7通讯功能的执行需要一个任务资源。

图. 01 通过一个CP343-1的S7通讯,背板总线上最多可用16个任务资源。任务资源分配到组态的S7连接并且通过通讯功能块的背景数据块所 体现 (I-DBs) 。由于最大的任务资源数为16, 那么最多16个背景DB被使用。如果使用超过了16个背景DB,通讯功能块会显示一个错误 ("STATUS = 1 (dec)"). 举例: 如果使用的CP343-1支持最大的16 个S7连接, 那么一个PUT或一个GET任务可以在16个组态的S7连接中执行, 或者一个PUT和一个 GET任务可以同时在8个组态的S7连接中执行。在这两种情况下,通过背板总线可以使用16个任务资源。 下面的条目ID提供了IE CPs相关可用S7连接数量的信息: S7-300 IE CPs : 条目 ID 16767769 S7-400 IE CPs : 条目 ID 15368142 补救措施: 减少背景DB的个数或者使用一个背景DB用于多个通讯任务, 即通讯功能块的参数在程序运行时进行修改。 哪些通信口可以进行 Modbus/TCP 通讯,作为 Modbus 服务器的 SIMATIC S7 CPU 可以与多少个 Modbus 客户端通信? 已经发布的用于 Modbus/TCP 通讯的通信端口

以下通信端口可用于 Modbus/TCP 协议: 在默认情况下,端口号 502 作为 Modbus 服务器的本地端口。 可以在 Modbus 客户机程序中设置任意的本地端口,可以使用从 2000 开始的端口号。 如果通信伙伴具有为服务器设置端口号的功能,那么也可以使用除 502 端口以外的端口进行 Modbus/TCP 协议通讯。 如果将 SIMATIC 作为 Modbus 服务器使用,那么一些 CPU 的可用端口号会受到限制。 以下端口号可用于本地端口:

CPU IM151-8 PN/DP CPU IM151-8 PN/DP CPU IM151-8 PN/DP CPU CPU314C-2 PN/DP

订货号 6ES7151-8AB00-0AB0 6ES7151-8AB00-0AB0 6ES7151-8AB01-0AB0 6ES7314-6EH04-0AB0

固件版本 up to V2.6 from V2.7 from V3.2 from V3.3

可用端口号 2000 到 5000 所有 所有 所有

多端口 No No Yes Yes

CPU315-2PN/DP CPU315-2PN/DP CPU317-2PN/DP CPU317-2PN/DP CPU319-3PN/DP CPU319-3PN/DP CPU319-3PN/DP CPU412-2 PN CPU414-3PN/DP CPU414-3PN/DP CPU416-3PN/DP CPU416-3PN/DP CPU412-5H PN/DP CPU414-5H PN/DP CPU416-5H PN/DP CPU417-5H PN/DP CPU 1211C

6ES7315-2EG10-0AB0 and 6ES7315-2EH13-0AB0 6ES7315-2EH14-0AB0 6ES7317-2EK13-0AB0 6ES7317-2EK14-0AB0 6ES7318-2EL00-0AB0 6ES7318-2EL00-0AB0 6ES7318-2EL01-0AB0 6ES7412-2EK06-0AB0 6ES7414-3EM05-0AB0 6ES7414-3EM06-0AB0 6ES7416-3ER05-0AB0 6ES7416-3ES06-0AB0 6ES7412-5HK06-0AB0 6ES7414-5HM06-0AB0 6ES7416-5HS06-0AB0 6ES7417-5HT06-0AB0 6ES7211-1AD30-0XB0

up to V2.3.4 2000 到 5000 as from V3.1 up to V2.3 as from V3.1 up to V2.6 from V2.7 from V3.2 as from V6.0 as from V5.0 as from V6.0 as from V5.0 as from V6.0 as from V6.0 as from V6.0 as from V6.0 as from V6.0 as from V1.02 from V3.0 as from V1.02 from V3.0 as from V1.02 from V3.0 from V1.02 from V3.0 from V1.02 from V3.0 from V1.02 from V3.0 from V1.02 from V3.0 from V1.02 from V3.0 from V1.02 from V3.0 from V3.0 所有 2000 到 5000 所有 2000 to 5000 所有 所有 所有 所有 所有 所有 所有 所有 所有 所有 所有

No Yes No Yes No No Yes Yes No Yes No Yes Yes Yes Yes Yes

6ES7211-1AE31-0XB0 6ES7211-1BD30-0XB0 6ES7211-1BE31-0XB0 6ES7211-1HD30-0XB0

所有,除了20、21、25、 No 80 102、123、5001、 34962、34963 and 32964

6ES7211-1HE31-0XB0 CPU 1212C 6ES7212-1AD30-0XB0 6ES7212-1AE31-0XB0 6ES7212-1BD30-0XB0 6ES7212-1BE31-0XB0 6ES7212-1HD30-0XB0 6ES7212-1HE31-0XB0 CPU 1214C 6ES7214-1AE30-0XB0 6ES7214-1AG31-0XB0 6ES7214-1BE30-0XB0 6ES7214-1BG31-0XB0 6ES7214-1HE30-0XB0 6ES7214-1HG31-0XB0 CPU 1215C 6ES7215-1AG31-0XB0

所有,除了20、21、25、 No 80 102、123、5001、 34962、34963 and 32964

所有,除了20、21、25、 No 80 102、123、5001、 34962、34963 and 32964

所有,除了20、21、25、 No

6ES7215-1BG31-0XB0

from V3.0

80 102、123、5001、 34962、34963 and 32964

表 01 如果将 SIMATIC CPU 作为 Modbus 客户端使用,那么可用端口号就没有限制,可以为 CPU 设置任意的远程端口号。 使用 Modbus/TCP 协议可以建立的可能的通信连接数

可以连接到带集成 PROFINET 接口的 S7-300 或 S7-400 CPU 最大的 Modbus 客户机的数目受 CPU 规范的限制。如果带集成 PROFINET 接口的 CPU 不支持多端口,那么 CPU 的每个本地端口只能使用一次。这就意味着当 CPU 的本地端口已经建立了一个连 接,那么就不能再通过这个接口建立另外一个连接。 如果一个不支持多端口的 CPU 作为 Modbus 服务器,那么有两种用于建立到多个 Modbus 客户端的连接选择。 在 Modbus 客户端为 Modbus 服务器参数化不同的端口号。

Bild 01 所有的 Modbus 客户机都通过 502 通信端口访问 Modbus 服务器。 在这种情况下,必须对连接的建立和释放进行作业控制。 Modbus 服务器每次通过 502 端口只能与一个 Modbus 客户机通 讯。 在另外一个客户机程序访问 Modbus 服务器之前,第一个 Modbus 客户机与 502 端口的连接必须先释放掉。只有 502 端 口已经被释放了,另外一个 Modbus 客户机程序才可以通过通信端口访问 Modbus 服务器。 情形 01

Bild 02 情形 02

Bild 03

Bild 04

Bild 05 附加信息

关于多端口特性的更多信息可以参考 CPU 的技术数据。 如果 CPU 的每个用于开放式 IE 通信的端口支持多重被动连接,那么其被看作具有多端口特性。 手册 SIMATIC S7-300 CPU 31xC and CPU 31x: Technical data SIMATIC Distributed IO ET 200S Interface Module IM151-8 PN/DP CPU Automation Sy stem SIMATIC S7-400 CPU Specifications SIMATIC S7-1200 Automation Sy stem Entry ID 12996906 47409312 53385241 36932465

表 02 Bild 01

Bild 02

Bild 03

Bild 04

Bild 05

如何通过 CPU集成的PROFINET 接口或是通过CP443-1 Advanced 使用 FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和 FB66 "TDISCON" 通讯块实现 ISO-on-TCP 协议的数据交换?

描述: 可以通过CPU 集成的 PROFINET 接口或 CP443-1 Advanced 使用工业以太网开放通信方式进行数据交换, 例如: 这种方式支持下列 通信协议: TCP ISO-on-TCP UDP 使用 ISO-on-TCP 协议 的工业以太网开放通信可以使用下列通信块: FB65 "TCON" 用于建立连接 FB66 "TDISCON" 用于断开连接 FB63 "TSEND" 用于发送数据 FB64 "TRCV" 用于接收数据

这些通信功能块可以在函数库 Standard Library -> Communication Bloc k s 中找到. 在标准程序库中拷贝出最新的上述功能块至用户程序中,然后编写程序时调用。 用于建立 ISO-on-TCP 连接的参数存储于一个数据结构体中。在这个例子中,使用数据结构 UDT65 "TCON_PAR",这个数据结构由用 户进行参数化。 ISO-on-TCP 通信连接不在 NetPro 中配置。 示例程序描述 S7 程序中包括 FB65 "TCON 的调用及带有 ISO-on-TCP 连接参数的数据结构 UDT65 "TCON_PAR"。S7 程序中还包含函数库 Standard Library -> Communication Bloc k s 中函数 FB63 "TSEND" 和 FB64 "TRCV" 的调用 。通过调用 FB63 "TSEND" 块,可以将数 据发送给一个 S7 站或一个 S5 站或一个 PC 站或第三方系统。调用 FB64 "TRCV" 块,可以接收 从一个 S7 站或一个 S5 站或一个 PC 站或第三方系统发送的数据。 首先在 S7-300 站中创建硬件配置,在这里将 MB10 作为时钟脉冲 。发送请求由时钟脉冲触发。存盘编译并将硬件配置下载到 CPU 中。 STEP 7 程序包含程序块 OB100, OB1, FB400, DB400, FB420, UDT65 和 FB63, FB64, FB65 及 FB66。 OB100: OB100 在 CPU 重新启动时执行一次(暖起动)。 在这个 OB 块中第一次的通信通过 M0.3使能。 OB1: OB1 循环执行, FB400 (背景数据块: DB400)在 OB1 中调用且使用 M0.3 作为 INIT_COM 参数。在 FB400 被调用后M0.3 在OB1 中被 复位。

图. 01: FB400 FB400 在 OB1 中循环调用。在 FB400 中下述功能块被调用: FB420 "SET_ISO_PARAM", FB65 "TCON", FB63 "TSEND", FB64 "TRCV", FB66 "TDISCON"

图. 02 使用 FB420 "SET_ISO_PARAM" 的输入参数定义本地和远程的 ISO-on-TCP 连接参数。 输入参数 ID DEV_ID 数据类型 Word By te 描述 连接号 B#16#0 用于 B#16#1 用于 B#16#2 用于 B#16#3 用于 B#16#5 用于 CP443-1 Adv IM151-8 PN/DP CPU or CPU 31x-2PN/DP, IM154-8 CPU or CPU 319-3PN/DP or CPU 412-2 PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP

ACTIVE TSAP IP_ADDR1 IP_ADDR2 IP_ADDR3 IP_ADDR4 表 01

Bool Struct Int Int Int Int

True = 主动建立连接 False = 被动建立连接 CPU 的 本地 TSAP 和通讯伙伴的 远程TSAP 通讯伙伴的 IP 地址

输入参数 "TSAP" 的Struct数据类型具有以下结构: 参数 LOC_RACK_SLOT 数据类型 By te 描述 如果本地TSAP不是以值0xE0 (hex)和0x02 (hex) 这两个字节作为前缀,则采用 值B#16#0 定义LOC_RACK_SLOT 参数。至于支持ASCII格式作为TSAP的 CPU,那么本地TSAP的头两个字节禁止用值0xE0 和 0x02定义。 如果本地TSAP不是以值0xE0 (hex)和0x02 (hex) 这两个字节作为前缀,则采用 值B#16#0 定义LOC_RACK_SLOT 参数。这对于不支持ASCII格式作为TSAP 的CPU来说是必要的。 LOC_TSAP String 本地 TSAP (连接终端点) 用户自定义的 ASCII 字符串的值为:‘TCP-1’ 当通过CP443-1 Adv anced通讯时,应指定CP的机架号和槽号。 如果通信伙伴的TSAP不是以值0xE0 (hex)和0x02 (hex) 这两个字节作为前缀, 则采用值B#16#0定义REM_RACK_SLOT 参数。至于支持ASCII格式作为 TSAP的CPU,那么本地TSAP的头两个字节禁止用值0xE0 和 0x02定义。 如果通信伙伴的TSAP不是以值0xE0 (hex)和0x02 (hex) 这两个字节作为前缀, 则采用值B#16#2定义REM_RACK_SLOT 参数。这对于不支持ASCII格式作为

CP_RACK_SLOT REM_RACK_SLOT

By te By te

TSAP的CPU来说是必要的。 REM_TSAP String 通讯伙伴的 TSAP (连接终端点) 用户自定义的 ASCII 字符串的值为:‘TCP-1’

表 02 以下 CPU 支持 ASCII 格式作为 TSAP 。 CPU 314C-2 PN/DP CPU 315-2 PN DP, CPU 317-2 PN/DP 从 V3.1 及以上 CPU 319-3 PN/DP 从 V2.7 及以上 CPU 414-3 PN DP, CPU 416-3 PN/DP 从 V5.2 及以上 CPU 412-2 PN 从 V6.0 及以上 IM 151-8 PN/DP CPU 从 V2.7 及以上 IM 154-8 CPU 从 V3.2 及以上 定义本地 TSAP 和通讯伙伴 TSAP 这里使用以下TSAPs (连接终端点): CPU的本地TSAP 初始值 (ASCII) 初始值(hex) TCP-1 E0.02. 54.43.50.2D.31 通信伙伴的远程TSAP TCP-1 54.43.50.2D.31

在 FB400 的接口参数中,用户可以根据组态(见图 04)改变本地和远程的 TSAP 值。在 "T_TSAP" 结构中, 对于 "LOC_TSAP" 和 "REM_TSAP" 参数,用户可填入组态中本地和远程的 TSAP 号作为初始值。 如果 CPU 的本地 TSAP 前两个字节被定义值为 0xE0 和 0x02,那么要改变 FB400 的接口参数。在 "T_TSAP" 结构中,定义参数 "LOC_RACK_SLOT" 的初始值为 "B#16#2" 。 如果远程 TSAP 前两个字节被定义值为 0xE0 和 0x02,那么要改变 FB400 的接口参数。在 "T_TSAP" 结构中,定义参数 "REM_RACK_SLOT" 的初始值为 "B#16#2" 。.

图. 03 定义连接号 用户可以单独改变连接号。根据组态在 FB400的网络 2 中改变连接号。连接号被储存到一个静态变量,所以在实例块 DB400中。 本例中定义连接号为1。

图. 04 连接建立 通过 FB65 "TCON" 的 "REQ" 输入参数的上升沿来开始建立一个连接。带有连接参数的数据结构 UDT65 "TCON_PAR" 被整合到 FB400 的实例 DB 块中。 一旦FB65 "TCON" 的输入参数 "CONNECT"使能,包含连接参数的存储区即被指定。 在系统启动后连接被建立,直到调用 FB66 "TDISCON" ,或者 CPU 进入 STOP 模式,或者电源关闭来断开连接。

图. 05 发送请求可通过一个上升沿触发 FB63 "TSEND". 的输入参数 "REQ" 来完成。发送任务由时钟位 M10.6 和 "C1.SEND_BUSY" 变量控 制。如果发送工作正在执行,那么 "C1.SEND_BUSY" 被置位。这时无法触发一个新的发送请求。 用户在输入参数 "DATA"指定发送数据的存储区。 用户在输入参数 "LEN"指定发送字节长度。 输出参数 "DONE", "ERROR" 和 "STATUS" 用来评估工作状态。

图. 06 如果发送任务成功完成,"C1.SEND_BUSY" 被置位。一个新的发送任务此时可以被触发。 如果发送任务完成并带有错误,那么 "C1.SEND_BUSY" 同样被复位并保存 FB63 的 "STATUS" 输出参数的值用来进行错误分析。

图. 07

图. 08 ISO-on-TCP 连接建立后,可以接收数据。 用输入参数 "DATA" 和 "LEN" 来指定要保存接收数据的数据区的地址和长度。

图. 09 输出参数 "NDR" 用于表示新数据已经被接收。输出参数 "RECV_LEN" 表示被接收数据的长度。 如果数据被成功接收,那么输出参数 "RECV_LEN" 的值被保存。

图. 10 如果数据接收没有成功,那么输出参数 "STATUS" 的值被保存并用来评估。

图. 11 用户可以使用 FB66 "TDISCON" 断开 ISO-on-TCP 连接。可以使用 FB66 "TDISCON" 输入参数 "RE Q" 的上升沿来启动断开 ISO-onTCP 连接的请求。

图. 12

下载的 STEP 7 项目:
STEP 7 项目包含一个调用 FB400 "TSEND_TRECV_ISO1" 和带有状态评估的功能块 FB420 "SET_ISO_PARAM", FB65 "TCON", FB66 "TDISCON",FB63 "TSEND" 和 FB64 "TRECV" 的例子程序。项目使用 STEP 7 V5.4 SP5 创建。

Sample_open_ISO.zipSample_open_ISO.zip ( 52 KB )

配置额外的 ISO-on-TCP 连接: 如果配置额外的 ISO-on-TCP 连接,可以复制 FB400 得到另一个功能块 (例如 FB401)。修改参数生成新的背景数据块。 其他信息 在手册 "System and Standard Functions for S7-300/400 Volume 1 and Volume 2" 中提及的工业以太网开放式通讯协议的详细 信息参见条目 44240604。 使用 S7-300 和 S7-400 工业以太网 CPs 模块组态一个用于 ISO-on-TCP 通信的连接说明可参考条目 ID:47885440。

如何编写 PROFINET IO 设备通讯块 FC11 和 FC12

说明: 如果您要使用 S7-300 工业以太网模板作为 PROFINET IO 控制器或者 PROFINET IO 设备, 那么您必须调用一下通讯功能块在用户程 序中: FC11 "PNIO_SEND" FC12 "PNIO_RECV" 通讯块 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的特性: FC11 和 FC12 是同步通讯块。 块被包含在 S7-300 控制器“SIMATIC_NET_CP” 库中。 块必须被调用在 OB1 中 (参看文档 ID: 2795485) 。 功能调用结束通过 “DONE”, “NDR” 或 “ERROR” 表示。 FC11 “ PNIO_SEND” 通讯功能块的特性 : 作为 PROFINET IO 控制器 功能块通过通讯处理器传送指定输出范围内的过程数据 (输出) 到 PROFINET IO 设备并且提供同样的状态给 PROFINET IO 设 备的输出。 作为 PROFINET IO 设备 功能块读取 PROFINET IO 设备 CPU 的过程映像输入区并且传送它们到 PROFINET IO 控制器 (被组态的输入地址);提供同样 的状态给 PROFINET IO 控制器。 FC12“ PNIO_RECV” 通讯功能块的特性 :: 作为 PROFINET IO 控制器 功能块接受 PROFINET IO 设备的过程数据(输入) 并且提供来自于 PROFINET IO 设备的指定输入区的状态。 作为 PROFINET IO 设备 功能块接受 PROFINET IO 控制器发送的数据 (被组态的输出地址) 并把 PROFINET IO 控制器的传送数据的状态写到 PROFINET IO 设备以组态好的数据区中。 组态描述: STEP 7 项目包括以下被组态成 PROFINET IO 控制器的 S7-300 站: CPU 319-3PN/DP STEP 7 项目包括以下被组态成 PROFINET IO 设备的 S7-300 站: CPU 315-2DP 和 CP343-1 Lean (6GK7 343-1CX10-0XE0) ET 200S

图. 01: 组态 接下来的输入/输出模块被组态到 PROFINET IO 设备 CP343-1 Lean中: 地址是 地址是 地址是 地址是 0-15 的 16 字节输入模块 16-23 的 8 字节输入模块 0-15 的 16 字节输出模块 16-19的 4 字节输出模块

这表明输入地址区和输出地址区分别是 24 字节 (0-23) 和 20 字节 (0-19)。 输入和输出首地址可以不是"0".

图. 02: PROFINET IO 设备 CP343-1 Lean 的输入/输出地址区: 接下来的输入/输出模块被组态到 ET 200S 中: 地址是 20.0-20.1 的 2 位输出模块

图. 03: PROFINET IO 设备 ET 200S 的输入/输出地址区: 最终的地址区是: 输入: 0-23 = 24 字节 输出: 0-20 = 21 字节 用户程序描述: 在这个例子中, 一个 CP343-1 Lean 被用作连接一个作为 PROFINET IO 设备的S7-300 站到一个 PROFINET IO 系统中。字节 MB0 被定义成 S7-300 CPU 时钟位。STEP 7 程序包括 OB1, FB100, DB30, DB31, DB12, FC11 and FC12. OB1 OB1 被循环调用。 在这个OB中, FB100 (实例 DB: DB100)被调用。

图. 04: OB1 FB100 FB100 被调用在 OB1 中。 在这个 FB 中,FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 被调用。

图. 05: 调用 FC11 "PNIO_SEND"

图. 06: 调用 FC12 "PNIO_RECV" 输入参数 MODE=0, 因为通讯处理器仅被用作 PROFINET IO 设备。如果通讯处理器被同时用作 PROFINET IO 控制器和 PROFINET IO 设备,那么输入参数 MODE=1。 输入通讯功能参数 CPLADDR 是你指定的 PROFINET IO 设备的模块地址。你从硬件组态中可以得到它,在工业以太网通讯模块 -> “ 地址” 标签 (参看 图. 06)。在这个例子中, CP343-1 Lean 模块地址是 256dec = 100hex.。 FC11 “ PNIO_SEND” 的输入参数 LEN 是你组态的 CP343-1 Lean (24 字节) 的输入地址区的长度。 这段数据长度被指定为 FC11 “PNIO_SEND” 发送数据的 LEN 参数。这段数据必须与已组态的的输入 (24 字节) 保持一致。 FC12 “ PNIO_RECV” 的输入参数 LEN 是你组态的 CP343-1 Lean (20 字节) 的输出地址区的长度。 这段数据长度被指定为 FC12 “PNIO_RECV” 发送数据的 LEN 参数。这段数据必须与已组态的的输出 (20字节) 保持一致。 发送接收缓冲区 (例如 数据块) 包含了被发送和接收的数据,长度至少要和被定义的发送和接收数据一样长。在这个例子中,DB 包含 的发送数据长度必须大于等于 24 字节并且 DB 包含的接收数据长度必须大于等于 20 字节。

图. 07: CP343-1 Lean 的属性对话框-> “ 地址” 标签 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 的输出参数 “DONE”、“NDR”、“ERROR” 和 “STATUS”是通讯功能块的工作标示位。 如果发送任务成功完成,那么 FC11 “PNIO_SEND”的 “DONE”将被置位。 如果接收任务成功完成 (例如:数据被接收到) ,那么 FC12 “PNIO_RECV”的 “NDR”将被置位。 如果 FC11 “PNIO_SEND” 和 FC12 “PNIO_RECV” 由于错误而结束,可通过状态字进行错误分析。

图. 08: 保存 FC11 和 FC12 的状态字 PROFINET IO 控制器的用户程序描述: 在这个例子中,一个带有集成以太网接口的 S7-300 CPU 被用作 PROFINET IO 控制器。 字节 MB0 被定义成 S7-300 CPU时钟位。 STEP 7 程序包括 OB1, FB100 和 DB20。 在用户程序中没有必要调用通讯功能块。可以通过装载和传送命令来访问输入/输出区,例如,读出输入值和写值到输出。读到的输入 值被保存到数据块 (DB20)中。 STEP 7 项目下载: 接下来的 STEP 7 项目包含一个调用了 FC11 和 FC12 的事例程序。这个程序通过 STEP 7 V5.4 SP3 创建。

FC11_und_FC12_DEV.zipFC11_und_FC12_DEV.zip ( 296 KB ) 用 SIMATIC Manager 解压 “FC11_und_FC12_DEV.zip” 文件通过菜单“File > Dearchive”。 STEP 7 项目解压完所有子文件后,你可以 使用SIMATIC Manager打开并编辑 STEP 7 项目。 在多个运行程序中执行通讯处理器块调用

问题: 可以在多个运行程序中同时执行通讯处理器 CP 34x-5 和 CP 343-1 / IT/ PN 的通讯处理块吗? 解答: 不行,不允许在多个运行程序中(例如OB1和OB35)中同时处理几个通讯块(SIMATIC_NET_CP 库)。 与“与SIMATIC通讯”手册中的给出的内容不同,手册中说,块处理可随时被具有更高优先级的组织块中断。 如果在多个OB块中调用块,必须确保在程序层上,一个运行的块不会被为处理通讯处理器的块所中断(例如通过块/释放 SFC 警报)。 关键词: 主站, 从站, 通信服务

在作业运行期间改变用户块"AG_SEND"和"AG_RECV"的输入参数

问题: 在作业运行期间,用于发送/接收接口的用户块的输入参数可以改变么? 解答: 下列描述适用于所有支持SEND/RECEIVE通信,并支持在OSI参考模型的第 4 层上透明传送用户数据的服务的自动化系统S7-300和S7400的CP(通信处理器)。 当前的工业以太网CP是: 6GK7 443-1EX11-0XE0 (CP 443-1) 6GK7 443-1GX11-0XE0 (CP 443-1 IT) 6GK7 343-1EX20-0XE0 (CP 343-1) 这也适用于支持等效的FDL通信的PROFIBUS CP。 调用用户块 要发送和接收单个数据块,有一个特定的功能可用: FC5 (AG_SEND): 发送数据块 FC6 (AG_RECV): 接收数据块 在S7-CPU的用户程序中的调用块的更多信息以编程语言STL显示:

图 1:FC5 (AG_SEND)

图 2: FC6 (AG_RECV) 说明 如果已经通过第一次调用块启动了一个作业,那么块的输入参数(标以红色)就不能修改直到 块 FC5 应答 DONE = 1 或 块 FC6 应答 NDR = 1 或 其中一个块应答 ERROR = 1 如果没有遵守该说明,那么有可能会在用户界面上出现错误消息或在诊断缓冲器中出现误导条目: 当忽略该说明时,可能会发生错误 在S7-300 CP中,在用户界面上,出现错误消息0x80B1。该消息指出长度指示是错误的(在参数LEN中)是错误的。该 消息会一 直持续出现。 在S7-400 CP中,在断缓冲器中偶尔会出现一个条目,告知连接编号x 不在值的允许范围之内。 所有这些行为都可以显示出没有遵守上述说明,并且因此用户块的输入参数在运行时发生了改变。 注意 关于"AG_LSEND" 和 "AG_LRECV": 所描述的事实也适用于块FC50 (AG_LSEND)和FC60 (AG_LRECV),它们只能用在旧的S7 300 组中或数据长度大于 240 字节的所有 S7 400 组中。

当调用通信功能块 FC5/50 "AG_SEND/AG_LSEND" 和 FC6/60 "AG_RCV/AG_LRCV" 传送 "REAL" 类型的变量时应该注意些什么?

组态注意: 确保当调用通信块 FC5/50 "AG SEND/AG_LSEND" 和FC6/60 "AG_RCV/AG_LRCV" 时,在输入参数 SEND 和 RECV 只能使用ANY 指针类型,传输单位为字节。 例如,如果想通过 FC5 "AG_SEND" 传送一个数据类型为"REAL" 的变量,并在 "SEND"参数声明为ANY 指针类型: P#DB1.DBX0.0 Byte 4, 在此 ANY 指针类型的转换是在 STEP 7 中通过符号表地址,如. 在指定的数据块 (DB) 中ANY 指针指向数据类型为 REAL 。 数据类型 BYTE, WORD 和 DWORD 都允许在输入参数"SEND"上使用 ANY 指针类型。然而,在例子中数据类型是 REAL ,即,此数据的传送 是错误的, FC5 的输出参数 ERROR 将被置位。

图. 01: ANY 指针的符号名 解决方法: 增大输入参数"SEND"中ANY 指针的值,至少一个字节,防止在 ANY 指针类型显示符号名。 参数声明如下:: P#DB1.DBX0. 0 Byte 5

图. 02: 带有更长数据的ANY 指针将被发送 当使用通信函数FC53"AG_SSEND" 和FC63 "AG_SRECV"应注意什么?

配置注意: 通过工业CP以太网卡传送用户数据常常使用S5兼容的通信服务,此外通信函数必须在CPU的S7程序中调用。 通信块FC50 "AG_LSEND"被用作发送数据,FC60 "AG_LRECV"用作数据接收,这些通信块被用作下列连接的数据交换: ISO-on-TCP connection (RFC1006) TCP connection UDP connection ISO Transport 从CP443-1EX20 (6GK7443-1EX20-0XE0) 配合S7-400 CPU 固件版本 ≥ V5.3使用开始将有额外的通信块用于上述的连接的数据通信: FC53 "AG_SEND" FC63 "AG_SRECV" 对比S5兼容的通信块FC50 "AG_LSEND" 和 FC60 "AG_LRECV"这是更强大的通信选项,根据工厂布局最高可以增加3倍的通信性能。 使用 FC53 "AG_SSEND" 和 FC63 "AG_ SRECV"配置S5兼容通信: 通过工业以太网的S5兼容通信,使用CP443-1EX20 (6GK7443-1EX20-0XE0)以后的模块有下列操作模式选项: Send/Recv SPEED Send/Recv Fetch Passive Write Passive 缺省模式 "Send/Recv" 操作模式被激活,如果使用FC53 "AG_SSEND" 和 FC63 "AG_SRECV"的快速通信,必须在通信连接配置属性 对话框中的"Options"标签中选择 "SPEED Send/Recv"模式。

图. 01:通信连接属性对话框-> "Options" 标签 此外在STEP7硬件配置中,工业以太网CP的属性对话框中的扩展地址范围必须被激活,对此打开工业以太网CP属性对话框选择 "Addresses"标签使能 "Address setting for LOCK/UNLOCK with FETCH/WRITE, SPEED Send/Receiv e"选项,这样模块占用64个外 设输入和输出地址。

图. 02:工业以太网CP属性对话框 -> "Addresses" 标签 注意 : Send/Rec v 和SPEED Send/Rec v 操作模式使用IE CP相同的资源。一个 SIMATIC S7-400 IE CP 支持64个S5兼容的通信。可以定义 多少个 Send/Rec v 和 SPEED Send/Rec v 模式的通信连接与CPU的空闲的S7连接资源有关。

可以传送最大的用户数据 : 如果使用 SPEED Send/Recv模式,可以传送1452字节的用户数据,使用Send/Recv模式传送的数据与连接类型有 关。

连接类型
ISO-on-TCP TCP UDP

使用 FC50/60的 Send/Recv模式的数据长度 使用 FC53/63的 SPEED Send/Recv模式的数据长度
8192 by tes 8192 by tes 8192 by tes 1452 by tes 1452 by tes 1452 by tes 1452 by tes

ISO Transport 2048 by tes

占用的连接资源 : 通信处理器支持的S5兼容通信和S7通信是并行的。一个配置的连接占用IE CP S5兼容通信的一个连接与CPU中支持S7连接的数量无 关。如果配置的通信连接为SPEED Send/Rec v 模式这些将改变,这种情况下在CP IE中每个连接占用一个Send/Rec v 资源和一个 S7 连接资源,同样占用CPU的一个S7连接资源。 连接资源 IE CP 的Send/Recv 连接资源 Send/Recv m模式 1 SPEED Send/Recv 模式 1

IE CP的S7连接资源 CPU的S7连接资源 使用 TCP连接的 FC63 "AG_SRECV" 数据缓存区的长度: 以下规则只针对TCP连接 接收数据包时,接收缓存区必须为1452字节,即使只接收少量数据。

0 0

1 1

原因: SPEED Send/Recv 模式使用TCP连接,从LAN(本地网络)传送到用户程序的数据被结构化,于是总是实际有效的字节数量传送 到CPU中。 因此如果IE CP每5秒接收10个字节的数据包,数据先被收集在IE CP中,如果用户程序20秒后调用FC63 "AG_SRECV" 接 收数据,所有收集的数据立刻传送到CPU中。在描述的示例中,40(4×10字节)个字节被传送 ,TCP连接是不可能提供接收数据由多 少个数据包组成以及各个报文界限位置在哪里的信息,只能通过用户数据结构化来完成。

当在 STEP 7的 CPU 中用户程序里调用 FC5/50 和 FC6/60 通讯块时需要记住的要点有哪些?

配置注释:

为了通过S7-300 和 S7-400 CP 卡的“发送/接收”接口进行通讯时,需要在 STEP 7的 CPU 中用户程序里调用 如下的通讯块。
在 S7-300 CPU 中 FC5/6 “AG_SEND/AG_RECV”用于最大至8192字节的数据传输,而在 S7-400 CPU 中用于最大240字节的数 据传输。 在 S7-400 CPU 中 FC50/60 “AG_LSEND/AG_LRECV”用于最大至8192字节的数据传输,而在 S7-300 CPU 中不能使用。

上述通讯块在 SIMATIC_NET_CP 库中可以找到。 调用这些功能块时需要注意如下要点:
在 S7-300 和 S7 400 CPU 中,通信块 FC5/50 “AG_SEND/AG_LSEND”由输入参数 ACT “高”脉冲触发。然后块开始执行,此时 ACT 端必须为“低”电平,直到异步通信任务完成后置位输出参数 DONE 或者 ERROR 为止。 在 S7-400 中,通信块 FC50 “AG_LSEND”的输出参数 ERROR=1 和 STATUS=0x7000 时表示在 ACT=0 时通信功能已调用。 这种情况下通信块 FC50 “AG_LSEND”再次调用时无需在输入参数 ACT 用一个“高”电平来触发一个新的发送任务。 更多关于 STATUS=0x7000 的信息参见条目号: 17877734。 只要没有建立连接或连接终端,就会导致块的输出参数状态为 ERROR=1 和 STATUS=0x8183 或者 0x8304。大约在延迟1秒钟 后块才能再次被调用。 输出参数 ERROR=True 和 STATUS=0x80C3 “CPU资源(内存)被临时占用”是指 S7 CPU 的资源被临时占用了。这些资源取 决于所用 CPU。在 STEP7 项目中可以通过 CPU 属性对话框中“Communication”标签下检查最大连接数和预留的连接资源数。 在工业以太网 CP 设备手册中,第二章“Requirements for Use”既是关于那个 CPU 支持相关工业以太网 CP 的信息。 注: 下述条目是调用通信功能块的例子程序。 在 S7-300中使用 FC5/6 “AG_SEND/AG_RECV”条目号: 17853532 在 S7-400中使用 FC5/60 “AG_SEND/AG_RECV”条目号: 18513371 如何使用通讯功能块FC11和FC12用于PROFINET IO 控制器编程? 说明: 如果使用 S7-300 的CP模板作为PROFINET IO控制器或IO设备的情况下,必须调用下列的通讯功能块: FC11 "PNIO_SEND" FC12 "PNIO_RECV" 通讯功能块FC11 "PNIO_SEND" 和FC12 "PNIO_RECV"的特点如下:

FC11和FC12是同步通信功能块。 在 "SIMATIC_NET_CP"库的S7-300中可以调用该功能块。
功能块必须在OB1中调用 (参考条目:2795485)

通过 "DONE", "NDR" 或"ERROR"参数标识通讯结束。
FC11 “PNIO_SEND”通讯功能块的特点: 作为P R O F I N E T IO 控制器 功能块发送所指定的输出范围的过程数据(输出)给IE CP,然后传输给PROFINET IO设备。功能块状态显示的是PROFINET IO设 备输出的IO Consumer 状态(IOCS)。 作为P R O F I N E T IO 设备 该功能块读取CPU的预处理的 PROFINET IO 设备过程数据,然后传输它们给IO控制器(组态 I 地址),功能块的状态显示 PROFINET IO控制器的IO Consumer状态(IOCS)。 FC12 “PNIO_RECV”通讯功能块的特点: 作为 IO 控制器

该功能块从PROFINET IO 设备(控制器的输入)接受过程数据(输入),并显示来自于PROFINET IO设备 中指定的输入区输入的IO Provider状态(IOPS)。
作为 IO 设备

该功能块接收PROFINET IO 控制器所组态的(组态Q 地址)转发数据和PROFINET IO控制器的Provider状 态(IOPS),并把数据写到PROFINET IO设备的CPU所预留的过程输出数据区。
组态描述:

Step7项目中包含下列的S7-300站作为IO 控制器:
CPU 315-2DP带有CP343-1 (6GK7 343-1EX21-0XE0)

Step7项目中组态了下列模块作为IO 设备: ET 200S 带有IM151-3 PN (6ES7 151-3AA10-0AB0) ET 200S 带有IM151-3 PN HF (6ES7 151-3BA22-0AB0)

图 01: 组态 对于带IM151-3 PN的ET 200S 进行以下模块的输入输出域组态: 4 DO 地址为Q0.0-i0.3 4 DI 地址为I0.0-0.3 4 DO 地址为Q1.0-1.3

图02: 带IM151-3 PN I/O的ET200S I/O域组态 对于带IM151-3 PN HF的ET 200S 进行以下模块的输入输出域组态: 2 DO 地址为Q20.0-20.1 4 DI 地址为I10.0-10.3

图03:ET 200S PN HF I/O域组态 这意味着总的地址域 如下: 输入地址 : 0 到 10 = 11 字节 输出地址 : 0 到 20 = 21 字节 注意: 输入输出域必须以"0"为起始地址。 用户程序说明: 本例中,带有CP343-1的S7-300站作为PROFINET IO控制器。 STEP-7 程序包含OB1, FB100, DB30, DB31, DB12, FC11及FC12。 OB1 OB1 被循环调用,在OB1中调用(背景DB: DB100).

图04: OB1 FB100 FB100在OB1中循环调用,在FB100中调用 FC11 "PNIO_SEND"及FC12 "PNIO_RECV".

图 05: 调用FC11 "PNIO_SEND"

图06: 调用FC12 "PNIO_RECV" 由于IE CP 是作为PROFINET IO 控制器,因此参数MODE=0,如果IE CP既作为PROFINET IO 控制器又作为PROFINET IO 设备,则 参数MODE=1。 FC11 "PNIO_SEND"的输入参数LEN为所组态输出域总的地址长度(21字节),发送数据的数据存储区通过FC11 "PNIO_SEND"的SEND 参数来设定,该数据的长度必须与所组态的输出域地址长度相一致(21字节)。 FC12 "PNIO_RECV"的输入参数LEN为所组态输入域总的地址长度(11字节),接收数据的数据存储区通过FC12 "PNIO_RECV"的RECV 参数来设定,该数据的长度必须与所组态的输入域地址长度相一致(11字节)。 发送和接收缓冲区(比如数据块),即包含所要发送或接收的数据,必须至少与所组态的相一致,在本例中,包含发送数据的DB块至少不 能低于21字节,包含接收数据的DB块至少不能低于11字节。 通讯功能输入参数 CPLADDR 为所组态的PROFINET IO设备的模块地址,该参数可以从硬件组态中的CP卡属性对话框 CPs -> "Addresses"选项中获得,在本例中,CP343-1模块地址为256dec = 100hex。

图07: CP343-1属性对话框"Addresses" 表

FC11 "PNIO_SEND" 和 FC12 "PNIO_RECV" 的输出参数"DONE", "NDR", "ERROR" 和"STATUS"用于对任务进行评估. 如果发送任务成功结束, FC11 "PNIO_SEND" 的输出参数 "DONE" 被置1. 如果接受任务成功结束, 比如数据被接受,FC12 "PNIO_RECV" 的输出参数 "NDR" 被置1. 如果FC11 "PNIO_SEND" 和 FC12 "PNIO_RECV" 块执行出错, 该块的状态字被保存用于错误分析.

图08: F11和FC12状态保存 注意: 从入口条目ID号为31764614可以获得作为PROFINET IO 设备调用F11和FC12例子程序的具体描述.

下载 Step7项目 : 下列STEP 7 项目中使用 FC11 和 FC12 并带有状态评估. 该项目使用 STEP 7 V5.4 SP4创建.

FC11_und_FC12_CTRL.zipFC11_und_FC12_CTRL.z ip ( 553 KB ) 通过SIMATIC Manager 的菜单"File -> Dearchive"解压 "FC11_und_FC12_CTRL.z ip" 文件,文件将被解压到子目录中,之后可以 用SIMATIC Manager打开编辑STEP 7项目.

如何在 SIMATIC S7 上建立OPEN MODBUS/TCP 通讯,如何查找相关信息? 描述: STEP 7 V13 Update 3 (TIA Portal) 可以通过CPU集成的PROFINET以太网接口建立SIMATIC S7 300/400与第三方设备之间的Modbus TCP连接。 提供一下产品. 产品 Modbus/TCP PN CPU Table 01 通讯方式 CPU集成PROFINET接口 连接 支持功能码 订货号

CPU集成PROFINET接口 1, 2, 3, 4, 5, 6, 15 2XV9450-1MB02 与第三方设备 和16

SIMATIC Modbus/TCP PN CPU 包含在STEP 7 V13(TIA Portal)及以上版本中。MODBUSPN指令可在下面路径中找到 "Instructions > Communication > Other".

每个使用这些指令的CPU需要付费购买授权,订购授权请联系当地的西门子销售商,供货形式包含带有授权码的软件注册表格和安装 CD,CD中内容需要在STEP 7 V5.X中安装,但不需要在TIA Portal中安装。 STEP 7 TIA Portal: SIMATIC Modbus /TCP PN CPU 手册 ModbusTCPPNCPU_en.pdfModbusTCPPNCPU_en.pdf ( 866 KB ) Table 02

STEP 7 V5.x SIMATIC S7 与第三方设备通讯采用 MODBUS/TCP 通讯有二种方法: 使用扩展的 CP343-1 或 CP443-1 使用 CPU 集成的 PN 口或H-CPU “SIMATIC 系统的 MODBUS/TCP ” 产品信息如下: 下载内容 ST 80 / ST PC 2012 (德语) S7-OpenModbusTCP Page 6/27 ST 80 / ST PC 2012 (英语) S7-OpenModbusTCP Page 6/27 Table 03 下 载 ST 80 / ST PC 2013

ST 80 / ST PC 2013

产品信息如下; 产品 Modbus /TCP CP 通讯方式 CP343-1 和 CP443-1 CP443-1 连接 S7 控制器通过外部的 CP343-1 或 CP443-1 连 接第三方设备 S7-400 H 或 S7-400 通 过 2 CPs 连接到第三方 设备 支持的通讯代码 订货号

1, 2, 3, 4, 5, 6, 15 2XV9450-1MB00 和 16 3, 4 和 16 2XV9450-1MB01

Modbus /TCP RED V1

Modbus /TCP RED V2

CP343-1 和 CP443-1 CPU 和 H CPU集成的 PROFINET 接口

S7-400 H 或 S7-300/400 1, 2, 3, 4, 5, 6, 通过 2 CPs 连接到第三 15 和 16 方设备 CPU 和 H CPU 通过集成的 PROFINET 接口连接到 第三方设备 1, 2, 3, 4, 5, 6, 15 和 16 1, 2, 3, 4, 5, 6, 15 和 16 4 (读取类型 3和 energy meters) 6 (重置 energy meters)

2XV9450-1MB11

Modbus /TCP PN CPU Modbus /TCP PN CPU Redundant

2XV9450-1MB02 6AV6676-6MB10-0AX0 6AV6676-6MA30-0AX0

Modbus /TCP 20 SENTRON 集成的 PROFINET CPU通过集成的 接口 PROFINET 接口连接 PAC 到 20 SENTRON PAC Modbus /TCP 100 SENTRON PAC Modbus /TCP 512 SENTRON PAC CPU通过集成的 PROFINET 接口连接 到 100 SENTRON PAC CPU通过集成的 PROFINET 接口连接 到 512 SENTRON PAC

6AV6676-6MA30-1AX0

6AV6676-6MA30-2AX0

Table 04

SIMATIC Modbus/TCP 20/100/512 SENTRON PAC这三款产品可以通过简单参数配置实现CPU集成PROFINET接口与 SENTRON PAC的通讯,单个CPU最多可以连接512个SENTRON PAC设备。在这种情况,可周期性读取基本数据类型3和能量表数据,另外,可 以重置能量表。 在当前的手册中,示例项目的版本和硬件要求需要满足下面的条件: S7 OpenModbus/TCP 注意 Entry ID 31535566包含了Modbus/TCP向导 可以配置集成PROFINET接口MODBUS TCP通讯的参数。 Entry ID 2077896767包含了 Modbus/TCP PN冗余向导 可以配置冗余CPU集成PROFINET接口MODBUS TCP通讯的参数。 Entry ID 49973600包含了Modbus/TCP PAC向导 可以配置集成PROFINET接口。 Entry ID 38586568包含了通过OPEN MODBUS / TCP CP 和 OPEN MODBUS / TCP PN-CPU.建立SIMATIC S7 和 Modicon M340Modbus/TCP的样例程序。 关键词: 可装载驱动,通讯块,MODBUS,冗余 怎样使用通讯功能块 FC50 和 FC60 编程? 说明: 使用下面的连接通信,必须在S7-400的S7程序中调用通信功能块 FC50 "AG_LSEND" 和 FC60 "AG_LRECV" 。 TCP 连接 ISO-on-TCP 连接 (RFC 1006) ISO 传输连接 UDP 连接 FDL 连接 通讯功能块 FC50 “AG_ LSEND” 和 FC60 “AG_LRECV”的特点 FC50 和 FC60 是异步通讯功能块。 FC50 和 FC60 的运行需要几个 OB1 周期。 FC50 由输入参数 "ACT" 使能。 通讯任务结束由 “DONE” 或 “ERROR”指示。 AG_LSEND 和 AG_LRECV 可以通过同一个连接同时通讯。 最新版本的功能块 FC50 "AG_LSEND" 和 FC60 "AG_LRCV" 可以在 SIMATIC_NET_CP 库"CP 400 > Block s" 里找到。 例程说明 S7 程序包含来自 SIMATIC_NET_CP 库的通讯功能块 FC50 “AG_LSEND”和 FC60 “AG_LRECV”的调用。 FC50 “AG_LSEND”用于发 送数据到 S7 或 S5 站,PC 或者第三方系统。FC60 “AG_LRECV” 用于接收来自 S7 或 S5 站,PC站或第三方系统的数据。 例程中通讯功能块 FC50 "AG_LSEND" 和 FC60 "AG_LRCV" 用于 ISO-on-TCP 连接的通讯。 首先创建 S7-400 站的硬件配置。 注意: 将 MB10 配置为时钟标志。发送任务由该时钟标志触发。保存并编译 S7-400 站的硬件组态并装载到 CPU。 例程中用到了定时器 T10 。 然后在 NetPro 中为 CPU 配置上面提到的通讯连接。如果通讯伙伴也在该 STEP7 项目中一起配置,可以配置一个指定的通讯连接。 如果通讯伙伴没有与 S7-400 站在同一个 STEP7 项目下,可以配置一个未指定的通讯连接。配置通讯连接时,确认 IP 地址和 Profibus 地址已经正确分配。 同样,确认 PORT,TSAP,LSAP 已经正确分配。这些 用于识别通讯伙伴间的通讯连接。 FC50 “AG_LSEND”和 FC60 “AG_LRECV”的输入参数“ID”和“LADDR”必须被指定。该参数在通讯连接的属性对话框“常规”选项卡中设 置。

图. 01 STEP7 的程序由块 OB100, OB1, FB200, DB200, DB201, FC50 和 FC60 组成。 OB100: OB100 是启动组织块,当 CPU 重新启动(暖启动)时运行。在这个组织块中通过 M1.0 使能第一次通讯触发器。 OB1: OB1 循环组织块。在这个组织块中调用 FB200 (背景数据块:DB200) ,使用 M1.0 作为参数 (INIT_COM)。FB200一旦执行则复位 M1.0。

图. 02 FB200 FB200 在 OB1 中调用。在 FB200 中调用了 FC50 “AG_LSEND” 和 FC60 “AG_LRECV”。 在FC50 的输入参数“ACT”得到一个上升沿 后触发发送任务。 时钟标志位 M10.7 和 “SND_BUSY”参数控制发送任务的触发。当发送任务正在执行时,“SND_BUSY”被置位 ,此 时不能触发新的发送任务。 接收请求的触发由变量 "RCV_DISABLE"控制,其值等于 FALSE,所以 FC50 "AG_LRCV" 总是准备接收数据,这样数据 可以在任何 时候都被接收。

由于功能块的执行是异步的,并可以持续几个周期,所以“锁定”功能尤其重要。如果不等待第一个发送工作成功完成或出错终止就不间 断的触发新的发送任务会引起通讯过载。 输入参数 “ID” 和 “LADDR”的值必须取自 NetPro中通讯连接的属性对话框(参见 图01)。需要为 FC50 的 “SEND”输入参数指定包含将要 发送数据的数据区地址和长度(发送缓冲区), 例如: P#DB201.DBX0.0 BYTE 100。在“LEN”输入参数中键入要发送的字节数,本例中 是100。 输出参数 “DONE”, “ERROR” 和 “STATUS”用于任务评估,并且只在同一个周期内有效。

图. 03

图. 04 当发送任务成功完成后,“SND_BUSY” 被复位。 然后可以触发下一个发送任务。

图. 05 如果发送任务出错终止,“SND_BUSY” 也会被复位 ,FC50 输出参数 “STATUS”的值被保存用于故障分析。 如果 “STATUS”输出参数的值是 0x7000Hex (28672Dec),FC50 “AG_LSEND”再次被调用。

图. 06 如果输出参数“STATUS”的值是 0x8183Hex (32381Dec) 或者 0x8304Hex (31996Dec), 也就是说通信连接不能建立的时候,那仅每10秒 发起一次发送任务。

图. 07 输入参数 “ID” 和 “LADDR”的值必须取自 NetPro中通讯连接的属性对话框(参见 图 01)。需要为 FC60 的输入参数“RECV”指定包含接收 数据的数据区域地址和长度(接收缓冲区),例如:P#DB201.DBX100.0 BYTE 100。

图. 08 输出参数“NDR "用于表示已经接收到了新数据。输出参数 " LEN "表示接收到的数据长度。 如果没有成功接收到数据,输出参数“STATUS”的值被保存用于故障分析。

图. 09 如果输出参数 "STATUS" 的值是 0x8183Hex (32381Dec) 或者 0x8304Hex (31996Dec), 即不能建立连接时,变量 "RCV_DISABLE" 被置位10秒。在此期间,没有数据被接收。只有在过了10秒后才可能再次接收数据。

图. 10 成功接收数据的长度保存在静态变量里。

图. 11 在 FB200 中,对 FC50 "AG_LSEND" 和 FC60 "AG_LRCV" 的 STATUS 各种值出现次数有评估。这些信息保存在 FB200 的"Structure"类型的变量"STATISTIC" 中,这是 FB200 统计信息接口参数。

图. 12 可以通过变量"#STATISTIC.ON_OFF" 打开/关闭 STATUS 评估。

图. 13 特例 如果通过 TCP连接进行数据交换,只有在接收缓冲区满后才会置位“NDR”输出参数。输出参数“LEN”的数值总是指示接收缓冲区的总长 度。 下载 STEP 7 项目: 例程 STEP 7 项目包括一个调用带有状态赋值的 FC50 和 FC60 功能的例子。这个例子在 STEP7 V5.5 SP2 中创建。

NET_S7400_LSEND_LRECV.zipNET_S7400_LSEND_LRECV.zip ( 195 KB ) 提示 从SIMATIC_NET_CP库中复制最新的通信块 FC50 和 FC60 并在自己的程序中调用它们。 关键字 发送,接收

在S7-400控制器上利用Send/Receive通信时,功能块FC6 / FC60 (AG_SEND)上出现错误状态“0x7000”

问题: 在S7-400控制器上通过Send/Receive通信时,功能块FC5 / FC50 (AG_SEND)上出现错误状态“0x7000”,其含义是什么? 解答: 可以通过块FC5 / FC50 (AG_RECV)和FC6 / FC60 (AG_SEND),在 S7-400控制器上实现Send/Receive通信。当调用AG_SEND块 时,“ERROR”参数具有“True”值,并且“ STATUS”参数值为“0x7000”。

STATUS “0x7000”并不说明块有错误,而是简单地表示AG_SEND块被调用时ACT=0,没 有预先使用ACT=TRUE触发任务。下面列出 了这种情况的简单响应方式。Send/Receive通信的完整实例见FAQ,位于条目ID 18513371。 逻辑表达式: IF (ERROR = = 1 ) { IF (STATUS != 0x7000) { ==> 触发错误处理 } } STL实例: 例如ERROR = M0.2 STATUS = MW4 UN M0. 2 SPB NOER L MW4 L W#16#7000 ==I SPB NOER BEA NOER: SET // 如果等于7000,那么没有错误存在 // 无错误 // 运行错误处理 // 状态 // 无错误

如何使用通信功能块FC5和FC6编程? 说明 表01说明了通过通信处理器(CP)有哪些通信连接可用来做数据交换,以及CP所支持的通信连接。 使用表01中列出的任一通信连接通信时,在S7-300的S7程序中 必须调用通信功能块 FC5 "AG_SEND" 和 FC6 "AG_RECV" 。

通信连接 TCP 连接 ISO-on-TCP 通信 (RFC 1006) UDP 连接

CP CP343-1 Lean CP343-1 Standard

订货号 6GK7343-1CX10-0XE0 6GK7343-1CX00-0XE0 6GK7343-1EX30-0XE0 6GK7343-1EX21-0XE0 6GK7343-1EX20-0XE0 6GK7343-1EX11-0XE0 6GK7343-1GX30-0XE0 6GK7343-1GX31-0XE0 6GK7343-1GX21-0XE0 6GK7343-1GX20-0XE0 6GK7343-1GX11-0XE0 6GK7343-1EX21-0XE0 6GK7343-1EX30-0XE0 6GK7343-1EX11-0XE0 6GK7343-1GX31-0XE0 6GK7343-1GX30-0XE0 6GK7343-1GX21-0XE0 6GK7343-1GX11-0XE0 6GK7342-5DA03-0XE0 6GK7342-5DA02-0XE0

备注 关于TCP, ISO-on-TCP (RFC 1006) 和UDP 协议 的更多信息请参考条目号 26171811, 26484227 和 26484229.

CP343-1 Advanced CP343-1 IT ISO 传输连接 CP343-1 Standard CP343-1 Advanced CP343-1 IT FDL 连接 CP342-5

关于 ISO 传输协议的更多 信息请参考条目号 26582267.

关于FDL 协议的更多信息 请参考条目号 26098555.

6GK7342-5DA01-0XE0 6GK7342-5DA00-0XE0 CP342-5 FO CP343-5 表 01 通信功能块 FC5 "AG_ SEND" 和 FC6 "AG_ RECV" 的特点 FC5和FC6是异步通信方式。 在本例中,通过OB1调用这些功能块 。(见 Entry ID: 2795485) 。 它们的执行可能需要多个OB1循环。 FC5通过输入参数 "ACT"激活。 由"DONE"或 "ERROR"表示任务结束。 AG_SEND 和 AG_RECV能够同时通过同一连接通信。 最新版本的功能块 FC5 "AG_SEND" 和 FC6 "AG_RCV"可以在SIMATIC_NET_CP 库中 "CP 300 > Bloc k s"下找到 。 6GK7342-5DF00-0XE0 6GK7343-5FA01-0XE0 6GK7343-5FA00-0XE0

示例程序说明 示例S7程序包含从SIMATIC_NET_CP 库中对通信功能块FC5 "AG_SEND" 和 FC6 "AG_RCV"的调用。FC5 "AG_SEND"用于向另外的S7站、计算机站或者第三方的系统发送数据。FC6 "AG_RECV" 用于从另外的S7站、 计算机站或者第三方的系统接收数据。 示例程序演示了通过ISO-on-TCP 连接通信时FC5 "AG_SEND" 和 FC6 "AG_RCV" 的功能。
首先创建S7-300站的硬件配置。

注意
设置MB10 作为时钟标记, 发送请求由此时钟标记触发,保存和编译S7-300硬件配置并下载到CPU中。 在本示例程序中使用了定时器T10。 在NetPro中为CPU配置上述的通信功能块。如果通信对象组态在同一个S7项目中,那么就能够配置一个指定的通信连接;如果通信对象 没有作为一个S7站组态在同一个S7项目中,那么可以配置一个非指定的通信连接。当配置通信连接时,确保指定了正确的IP地址或 者PROFIBUS 地址,以及正确的端口、TSAP,或者LSAP,这些用于在通信对象之间正确识别通信连接。 通信功能块 FC5 "AG_SEND" 和 FC6 "AG_RECV"必须使用的输入参数“ID”和“LADDR”在通信连接的属性-> 可以找到。 "General"对话框中

图 01 示例 STEP7 程序包含了OB100, OB1, FB200, DB200, DB201, FC5 和 FC6块。 OB100

OB100是启动OB,在CPU重新启动(暖启动)时执行。在这个OB块中,首次通信的触发位M0.3 "START-

UP"被使能。
OB1

OB1是循环调用块。FB200(背景数据块:DB200)在OB1中调用,M0.3 "START-UP"作为调用参数(INIT_COM)的 实参,在FB200运行后,复位M0.3 "START-UP"。

图 02 FB200

OB1循环调用FB200。在FB200中调用通信功能块 FC5 "AG_SEND" 和 FC6 "AG_RECV"
FC5 "AG_ SEND" 参数

在输入参数"ACT"输入一个上升沿,来触发发送请求。通过时钟位M10.7和变量 "SND_BUSY".来控制发送请 求。如果发送请求正在运行,"SND_BUSY"被置位,不可能再触发一个新的发送请求。
这个互锁是非常重要的,因为通信是异步的,能够持续几个循环周期。持续触发新的发送请求,而没有等待检查任务是否结束或因出错 而停止,将会导致通信过载。

输入参数"ID" 和 "LADDR"的值必须和NetPro中通信连接的属性对话框中的参数一致(见图1)。 在FC5的输入参数 "SEND"中,必须指定被发送的数据区域的地址和长度,它包含要发送的数据(发送缓冲 区),例如 P#DB201.DBX0.0 BYTE 100 。 在输入参数 "LEN"中,需要输入被发送数据的字节长度,本例中是100字节。
输出参数"DONE", "ERROR"和 "STATUS"用来评估通信任务,并且仅在同一个循环中有效。

图 03 如果发送请求成功完成,"SND_BUSY"被复位,然后可以再次触发一个新的发送请求。 如果发送请求产生错误,"SND_BUSY"同样被复位,并且FC5的"STATUS" 输出参数值被保存用于错误分析。

图 04 FC6 "AG_ RECV" 参数 输入参数"ID" 和 "LADDR"的值必须和NetPro 中的通信连接的属性对话框中的参数一致(见图1)。在FC6的输入参数 "RECV"中,必须 指定接收的数据区域(接收缓冲区)的地址和长度,它包含接收数据,例如 P#DB201.DBX100.0 BYTE 100 。

图 05 输出参数 "NDR" 表示是否接收到新数据,输出参数"LEN" 表示接收数据的长度。

如果没有成功接收数据,输出参数的值将被保存和分析。

图 06 在FB200中,有对FC5 "AG_SEND" 和 FC6 "AG_RCV"产生的相关STATUS 值发生频率的评价,该信息保存在FB200的统计接口参 数"STATISTIC" ,数据类型为"Structure"。

图 07 通过变量"#STATISTIC.ON_OFF" 可以打开/关掉STATUS评价。 默认STATUS评价打开。

图 08

特殊情况 如果通过建立TCP连接交换数据,只有整个接收缓存区填满的情况下,输出参数"NDR"才能被置位。
因此输出参数 "LEN"的值总是表示了接收缓冲区的整个长度。

下载 STEP7项目 示例STEP7 项目包含了调用FC5和FC6并包括状态评估的示例程序,程序由 STEP 7 V5.4 SP3创建。

S7_300_SEND_RCV.z ipS7_300_SEND_RCV.zip ( 45 KB ) 注意

从SIMATIC_NET_CP库中复制最新的通信块 FC5 和 FC6 到用户程序,并在程序中调用它们。
其它关键字 FUP, SEND/RECEIVE, Sample program, STEP 7 configuration, Data transfer 样例程序:在S7-400中使用SFB14 ("GET") 和SFB15 ("PUT")模块进行S7通信

问题: 如何给通信模块SFB14 (“GET”)和SFB15 (“PUT”)编程,从而实现S7-400上的数据通信? 解答: 为了在两个S7-400站之间通过在NetPro中组态的 一个S7连接进行数据通信,必 须在S7程序中调用通信函数。SFB14 (“GET”)用于从远 程CPU读取数据,SFB15 (“PUT”)用于向远程CPU写入数据。< /p> 通信模块FB14 (“GET”)和 FB15 (“PUT”)的特点 SFB14 / SFB15是系统函数模块,因此包含在CPU的固件中。 SFB14和SFB15是异步通信函数。 可以跨几个OB1循环运行。 SFB14和SFB15通过输入参数(“REQ”)激活。 任务结束后显示“DONE”、“NDR”或者“ERROR”。 样例程序包含一个S7连接,通过该连接,使用SFB14从远程CPU读取数据,使用SFB15向远程CPU写入数据。 样例程序的说明 项目包含两个S7-500站,它们具有CPU 416-2DP和CP 443-1,用于在工业以太网上通信。通 信基础是两站之间建立的S7连接。如果通 过“右键单击 > Object Properties”打开NetPro中的S7连接属性,则 可以看到通信功能块的块参数“ID”。当调用SFB14或SFB15时必须遵 守相应的规定,以通过S7连接实现数据通信。

图1: S7连接的属性 STEP 7程序包含块OB100、OB1、FB100、DB100、DB200、DB201、SFB14和SFB15。 OB100 OB100是一个启动型OB,并且在CPU重启时运行。在这个OB中,用 于触发第一次通信的使能信号是M1.0和M0.1。

图2: OB100 OB1 OB1被循环地调用。这个OB包含通过M1.0和M0.1对FB100(背景DB: DB100)的调用。一旦FB100运行,M1.0被复位。

图3: OB1 FB100 FB100在OB1循环中被调用。这个FB包含调用SFB14 (“GET”)和SFB15 (“ PUT”)。当时钟标志M10.6出现一个上升沿并且没有其 它作业正在运行时,通过输入参数“REQ”激活FB14。 阻止这个函数调用是非常重要的,因为该函数是异步的并且持续好几个循环。持续激活系统函数块而不等待当前作业结束,将导 致通信过载。必 须使用在NetPro中S7连接的属性对话框中的输入参数“ID”(见图1)。参数“ADDR_1”规定了将从远程CPU读取的数 据区域。对 于参数“RD_1”,必须指定用于数据读取的数据区域。需要输出参数“NDR”、“ERROR”和“STATUS”用于评估任务,并 且仅仅在同一个循环中有效。

图4: FB100: 调用SFB14 如果块运行出现错误,保存块的状态字,用于错误分析。

图5: FB100: 保存状态字 当时钟标志M10.6出现一个上升沿并且没有其它作业正在运行时,通过输入参数“REQ”激活FB15。阻止这个函数调用是非 常重要的,因 为该函数的行为是异步的并且持续好几个循环。持续激活该函数块而不等待当前作业结束,将导致通信过 载。必须使用在NetPro中 S7连接的属性对话框中的输入参数“ID”(见图1)。对于参数“ADDR_1”必须指定远程CPU中用于数 值写入的数据区域。对于参数“ SD_1”, 必须指定待发送数据的地址。需要输出参数“DONE”、“ERROR”和“STATUS”用于 评估任务,并 且仅仅在同一个循环中有效。

图6: FB100: 调用SFB15 如果块运行出现错误,保存块的状态字,用于错误分析。

图7: FB100: 保存状态字 要下载的STEP 7项目: STEP 7项目包含一个样例程序,用于调用SFB14和SFB15,具有状态评估。是 通过STEP 7 V5.2创建的。

Sample_S7-400_PUT-GET-01.exeSample_S7-400_PUT-GET-01.exe ( 389 KB ) 把文件“Sample_S7-400_PUT-GET-01.exe”复制到单独的文件夹,双击打开文件。STEP 7项目解包,带 有全部相关子文件夹。现在可 以使用SIMATIC Manager来打开和处理该项目。

示例程序:通过CPU 317-2PN/DP的功能块FB14("GET")和FB15 ("PUT")实现S7通讯

问题: 在含有CPU 317-2PN/DP的S7-300上,如何编程可加载通讯功能块FB14("GET")和FB15("PUT")用于数据交换?< /p> 解答 : 为了通过一个S7连接在使用CPU 317-2PN/DP的两个S7-300工作站之间进行数据交换,其中该S7连接是使用NetPro组态的,< 在S7通 信中,必须调用通讯功能块。模块FB14("GET") 用于从远程CPU取出数据,模 块FB15("PUT")用于将数据写入远程CPU。 CPU 317-2PN/DP的通讯模块FB14("GET")和FB15("PUT")的属性 FB14和FB15是异步通讯功能。 这些模块的运行可能跨越多个OB1循环。 通过输入参数REQ 激活FB14或FB15。 DONE、NDR或ERROR表明作业结束。 PUT和GET可以同时通过连接进行通信。 功能块包含在STEP 7 V5.3的标准库中。 注意: 不能将库SIMATIC_ NET_CP 中的通讯块用于CPU317-2PN/DP。 示例程序包含一个S7连接,通过该连接,可以通过FB 14从远程CPU上读出数据并由FB15向远程CPU上写入数据。 示例程序概述 该STEP 7项目包含两个使用CPU 317-2PN/DP的S7-300工作站,两者通过工业以太网通讯。两 个工作站之间建立起一个S7连接作为 通讯基础。在NetPro中,如果通过“鼠标右击>对象属性”打开S7连接的属性,可 以察看通讯模块的参数“ID”。当调用FB14或FB15时, 为了方便通过S7连接进行数据交换 ,必须考虑该信息。

图 1:S7连接的属性图 1:S7连接的属性 ( 53 KB ) STEP 7程序包含模块OB100、OB1、FB100、DB100、DB200、DB201、FB14和FB15。 OB100 OB100是启动型OB,在重启CPU(热启)期间执行。在这个OB中,M 1.0和M0.1中发出第一个通讯触发信号。

图2:OB100 OB1 OB1被循环调用。在这个OB中,用M1.0和M0.1调用FB100(例如:DB:DB100)。执 行FB100后,复位M1.0。

图3:OB1 FB100 在OB1循环中调用FB100。在这个FB中,可以找到对FB14 ("GET")和FB15 ("PUT")的调用。如果时间间隔标记M10.6上有一个 上升沿且没有作业运行时,通过输入参数“REQ”激活FB14。 必须从NetPro中的S7连接属性对话框获取输入参数ID(图1)。参 数ADDR_ 1包含将要从远程CPU上读取的数据区。参数RD_ 1包 含已读取数据的数据区。评 估作业需要输出参数NDR、ERROR和STATUS ,且 这些参数只在同一个循环中有效.

图 4:FB100——调用FB14 如果模块运行时出错,模块的状态字将被保存,用于分析出错原因。

图 5:FB100——保存状态字 如果时钟存储器M10.6上有一个上升沿且没有作业运行,则通过输入参数REQ 激活FB15。必 须从NetPro中的属性对话框获取输入参 数ID(图 1). ADDR_ 1中存放的是远程CPU上接收写入数据的数据区域地址。在参数SD_ 1 中预设要传送数据的地址。需 要输出参 数DONE 、ERROR和STATUS用于 作业评估,且 这些参数只在同一个循环中有效。

图 6:FB100——调用FB15 如果处理模块出错,模块的状态字将被保存,以便分析出错。

图 7:FB100——保存状态字 下载的STEP 7程序: 该STEP 7项目包含一个调用FB14和FB15的示例程序,并带有状态评估,该 程序是用STEP 7 V5.3设计的。

Cpu317-2_PUT_GET.exeCpu317-2_PUT_GET.exe ( 364 KB ) 将文件“Cpu317-2_PUT_GET.exe”复制到一个单独的目录中,然后双击打开文件。STEP 7程序连同相关的子文件夹将自动解压。然后 可以用SIMATIC管理器打开和编辑程序。

S7-300 中如何编程通信块 FB8 "USEND" 和 FB9 "URCV" 进行数据交换?

说明 要在两个 S7-300 站之间进行交换数据,可以使用在 NetPro 里配置了 S7 连接 的方法进行,这种方法必须在 CPU 中调用通信功能 块。 功能块 FB9 ("URCV") 用于从远程 CPU 中读出数据,而 FB8 ("USEND") 用于写数据到远程 CPU 中。 本例中必须用于通信的 S7 连接 在两个 S7-300 站中都要配置, 因为通过 FB8 "USEND" 和 FB9 "URCV" 进行的 S7 通信基于客户端-客 户端的原则。 注意 如果在 S7-300 站中,使用工业以太网 CP 进行 S7 连接数据通信,要使用位于"SIMATIC_NET_CP" 库 "CP 300 > Block s"下的功能块 FB8 "USEND" 和 FB9 "URCV" 。 如果使用 CPU31x-2PN/DP 或 CPU319-3PN/DP 的集成 PROFINET 接口进行 S7 连接数据通信, 要使用位于 "Standard Library -> Communication Block s -> Bloc ks" 下 "CPU_300"中的功能块 FB8 "USEND" 和 FB9 "URCV" 。 对于 S7-400 ,用于 S7 连接数据通信系统功能块 SFB8 "USEND" 和 SFB9 "URCV" 可在 Standard Library > System Function Blocks > Blocks 下找到。 功能块 FB8 "USEND" 和 FB9 "URCV" 的特点: FB8 和 FB9 以及是异步通信块。 本例中这些块在 OB1 循环中调用。(参见条目 ID: 2795485). FB8 和 FB9 的运行可能需要多个 OB1 循环。 FB8 由输入参数 "REQ" 激活。 FB9 由输入参数 "EN_R" 激活。 任务的完成由 "DONE", "NDR" 或 "ERROR"提示。 USEND 和 URCV 可以同时运行在一个连接上。 数据传输是未经协商的,如数据的接收不会得到对方的确认。 对应于 CP343-1 或者 CP342-5 的最新版本的 FB8 "USEND" 和 FB9 "URCV" 数据通讯块可在 SIMATIC_NET_CP 库中的 "CP 300 > Block s" 下找到。 对应于 "CPU_300" 家族的,经由集成的 PROFINET 接口的 S7-300 CPU, IM151-8 PN/DP CPU 或者 IM154-8 CPU 进行数据通 讯,最新版本的 FB8 "USEND" 和 FB9 "URCV" 可在标准库 "Communication Block s > Bloc ks" 下找到。 示例程序描述: 该 STEP 7 项目包括两个 S7-300 站。 第一个 S7-300 站中包括一个 CPU 315-2 DP 和一个 CP343-1 用于工业以太网数据通信。 第二个 S7-300 站中使用 CPU 319-3 PN /DP. CPU 集成的 PROFINET 接口用于工业以太网数据通信。 MB10 在两个 S7-300 CPU 中都组态为 时钟标志位 。发送请求由此时钟标志位触发。 在 NetPro 中,在两个 S7-300 站的双边组态了用于通过工业以太网进行数据通信的 S7 连接。 在 NetPro 中选中 S7-300 站的 CPU ,组态的双边 S7 连接在连接表中列出。 在连接表中,右键单击 S7 连接,选择"Object Properties(对象属性)"菜单,打开 S7 连接对话框属性。

图. 01 通信需要的 IP 地址和 S7-300 接口在 S7 连接属性对话框中定义。 在S7连接的属性对话框里,可以决定 "Local ID" 块参数。这个值在调用 FB8 "USEND" 和 FB9 "URCV" 时作为输入参数 "ID" 的输入。 对于 S7-300 站 "SIMATIC 315",在S7连接属性对话框中激活 "Activ e Connection Setup" 功能,因为由它主动建立S7连接。 对于 S7-300 站 "SIMATIC 319",在S7连接属性对话框中不要激活 "Activ e Connection Setup"功能,因为它在建立连接过程中是被动 的。 点击 "Address Details..." 按钮.

图. 02 本地 TSAP 和对方 TSAP 在 "Address Details" 对话框中定义。S7-300 站间 S7 连接由唯一的 TSAP 说明。.

图. 03 STEP 7 程序包括块 OB100, OB1, FB100, DB100, DB200, FB8 以及 FB9. OB100 在 CPU315-2 (发送方) 和 CPU319-3 PN/DP (接收方) 中的使用 OB100 是一个重启动组织块,在 CPU 重启时(暖启动)运行。在这个块中,通信触发标志位 M0.3 被使能。 OB1 在 CUP315-2 (发送方) 中的使用 OB1 是循环调用的。在 OB1 中通过 M0.3 使能调用 FB100(背景数据块DB100),M0.3 在 FB100 执行完成后被立即复位。

图. 04 FB100 在 CUP315-2 (发送方) 中的使用 FB100 在 OB1 中循环调用。在这个例子中,会触发多次 S7 连接的发送任务,即是说在 FB100 中 FB8 ("USEND") 会以相同的 "ID" 不同的 "R_ID" 触发多次。 在M10.6 上升沿信号且没有任务运行时由输入参数 "REQ" 激活 FB8。"REQ" 输入参数只有当发送任务成功完成或者出现错误时才能复 位。 这个锁定是非常重要的,因为该功能是异步的,可以持续多个循环周期。连续的激活功能块而不等待当前激活任务结束可能会导到致通 信过载。 输入参数 "ID" 必须要和 NetPro 中 S7 连接属性对话框中一致。(见图. 01). 利用参数 "R_ID" 定义发送任务和接收任务的一致性。"R_ID" 在发送端 FB8 "USEND" 和 接收端 FB9 "URCV" 必须匹配。 FB8 的输入参数 "SD_1" 用来指定发送数据的地址和长度(发送缓冲区),例如:P#DB200.DBX0.0 BYTE 10。

输出参数 "DONE", "ERROR" 和 "STATUS" 用于任务评估,三个参数只有在同一循环周期中才有效。 第一次调用 FB8 "USEND" 时,输入参数为 ID=1 和 R_ID=1 。

图. 05 如果发送任务完成了但是发生了错误,那么 FB8 的输出参数"STATUS" 保存了错误信息。

图. 06 第二次调用 FB8 "USEND" 时,输入参数为 ID=1 和 R_ID=2,第三次调用 FB8 "USEND" 输入参数为 ID=1 和 R_ID=2。 如果发送任务完成时出错,同样块的状态字被保存于输出参数 "STATUS" 用于错误分析。 OB1 在 CPU319-3 (接收方) 中的使用 OB1 是循环调用的。FB100 在 OB1 中被调用(背景数据块:DB100),其使能信号为 M0.3,FB100 运行后使能信号 M0.3 复位。

图. 07 FB100 在 CPU319-3 PN/DP (接收方) 中的使用 FB100 在 OB1 循环中被调用。在此例中,会触发多次 S7 连接的接收任务,即是说在 FB100 中 FB9 "URCV" 会以相同的 "ID" 不同 的 "R_ID" 触发多次。 FB9 经由输入参数 "EN_R" 使能,输入参数 "EN_R" 的值一直为 "1", 这是因为在启动组织块 OB100 中M0.1 被置位成值 "1"。这样 S7-300 站会一直处于准备接收数据的状态。 FB9 "URCV"的输入参数 "ID" 必须来自 NetPro中S7 连接属性对话框 (参见图01)。 利用参数 "R_ID" 定义发送任务和接收任务的一致性。"R_ID" 在接收端 FB9 "URCV" 和发送端 FB8 "SEND" 必须匹配。 FB9的输入参数"SD_1" 用来指定接收数据区的地址和长度(接收缓冲区)。例如:P#DB200.DBX0.0 BYTE 10。 输出参数 "NDR", "ERROR" 和 "STATUS" 用于任务评估,三个参数只有在同一循环周期中才有效。 第一次调用 FB9 "URCV" 时的输入参数为 ID=1 和 R_ID=1。

图. 08 当 FB9 运行完成,块的状态字被保存用于错误分析。

图. 9

提示:

手册 "The manual "System and Standard Functions for S7-300/400 Volume 1/2" 第22章中 提供了更多关通信块 FB8 "USEND" 和 FB9 "URCV"的信息,例如:通过 FB8 "USEND" 和 FB9 "URCV" 可以传输的最大数据量。该手册可通过条目号: 44240604 下载。 关于组态非指定 S7 连接进行数据通信的信息可参考条目号: 17628518. STEP 7 项目下载: 该 STEP 7 项目包含调用 FB8 和 FB9 及状态评估的例子程序。该项目使用STEP 7 V5.5 创建。

Sample_S7-300_USEND_URCV.zipSample_S7-300_USEND_URCV.z ip ( 332 KB )

注意: 需要从 SIMATIC_NET_CP 库或者是标准库中拷贝出最新版本的通讯块 FB8 和 FB9 到用户程序中,然后再调用 它。
“STATUS = 27”(0x001B) 和在 S7-300 上可加载的 S7 通讯

问题: 状态“27”(十六进制:0x001B)和在 SIMATIC S7-300 上可加载 S7 通讯的含义是什么? 解答: S7-300 上的 S7 通讯是通过 FB (可加载功能块)实现的,而不是像在 S7-400 中那样通过 SFB (集成的系统功能块)实现的。这样,如果 在 S7-300 的 S7 程序中调用 SFB 而不是 FB,则块将 指示“ERROR”和“STATUS = 27”。 此状态指示该功能块在 S7-300 中不能用于 S7 通讯。用于 S7-300 的通讯 FB 位于库“SIMATIC_NET_CP > CP300 > Blocks”中。 块 FB8 FB9 FB12 FB13 FB14 FB15 表 1:S7-300 的通讯 FB 关键字: 数据传送,S7 连接,数据通讯,错误代码,接收,发送 指示 USEND URCV BSEND BRCV GET PUT

在 S7-300 的数据通信中如何编程使用通信功能块 FB14 “GET”和 FB15 “PUT”?

说明: 为了实现在 NetPro 中建立了 S7 连接 的两个 S7 -300 站之间的数据交换,必须在程序中调用通信功能块。 FB14 (“GET”) 用于从远程 CPU 读取数据,FB15 (“PUT”) 用于向远程 CPU 写入数据。 在这里,不需在两边都组态 S7 连接,这是因为通过 FB14 “GET”和 FB15 “PUT”的 S7 通信是基于服务器-客户端原则的。 通信块 FB14 (“GET”) 和d FB15 (“PUT”) 的特点 FB14和 FB15是异步通信函数。 在本例中,在 OB1 循环中调用这些块(参见条目号:2795485) FB14和 FB15 功能块运行几个 OB1 循环时间。 FB14和 FB15使用输入参数“REQ” 激活。 任务结束的标志位为“DONE”, "NDR"或者“ERROR”。 PUT 和 GET可以通过同一个连接同时通信。 经由 CP343-1 or CP342-5 通讯的,最新版本的 FB14和 FB15 功能块在 SIMATIC_NET_CP 库中 "CP 300 > Blocks" 下找到。

"CPU_300" 家族中经由集成 PROFINET 接口的 S7-300 CPU, IM151-8 PN/DP CPU 或者 IM154-8 CPU,最新版本的 FB14和 FB15 功能块在标准功能库中 "CP 300 > Bloc k s" 下找到。 示例程序的说明 STEP 7项目包含从标准库中的通讯功能块 FB14 "GET" 和 FB15 "PUT" 的调用。通信基础是两站之间建立的 S7 连接。 FB14 "GET" 从远程CPU读取数据,使用 FB15 "PUT" 向远程CPU写入数据。 示例程序展示如何在建立 S7 连接后如何使用 FB14 "GET" 和 FB15 "PUT"。 首先创建 S7-300 站的硬件配置。 注意: 配置 MB10 为时钟存储器 ,读、写任务由这个时钟触发。保存并编译硬件配置并下载到 S7-300 中。 定时器 T10 用于此例中。 在 NetPro 界面中 配置 S7 连接。如果通讯双方在同一个 STEP 7 项目中,那么就能配置指定的 S7 连接。如果 S7-300 站通讯双方不 在同一个 STEP 7 项目中,那么配置成非指定的 S7 连接。确定在配置 S7 连接时指定了正确的 IP 地址或者 PROFIBUS 站地址。还 需要确定指派的槽架号和链接资源的正确性。这样能明确的识别出通讯双方的 S7 连接。 在通讯块 FB14 "GET" 和 FB15 "PUT" 的输入参数 "ID" 中必须明确的赋值,此值既是 S7 连接属性对话框中的 -> "General"。

图 01 STEP 7 程序中包含 OB100,OB1,FB100,DB100,DB200,DB201, FB14 和 FB15。 OB100 OB100是一个启动OB,当CPU重启时运行。在这个OB中,用于触发第一次通信的使能信号是 M0.3。 OB1 OB1被循环地调用。FB115 在这个 OB 中被调用(背景数据块:DB15),使能信号是 M0.3。一旦 FB100运行,M1=0.3 被复位。

图. 02 FB115 FB115 在 OB1循环中被调用。这个 FB包含调用 FB14 (“GET”)和 FB15 (“PUT”)。 通讯块输入参数 "ID" 必须指定为在 NetPro 中 S7 连接的连接号,即输入参数 "ID" 的值取自于 S7 连接的属性对话框(见图 01)。 在 FB115 中可以分别改变连接号。在 FB115 的 Network 1 中根据网络配置来改变连接号。连接号保存于静态标签中,即存储于背景 数据块 DB115中。 连接号 "1" 如本例中的定义。

图. 03 当 M10.6 出现上升沿并且程序块不忙时,FB14 由输入参数 "REQ" 激活。只有当读取任务成功或者出错完成时,输入参数 "REQ" 复 位。这意味着新的读取任务只有当任务完成时才能再次触发。 这个锁定功能是非常重要的。因为该函数的运行是异步的并且持续好几个循环。持续激活该函数块而不等待当前作业结束,将导致通信 过载。 参数“ADDR_1”指向远程 CPU 中要写入的或者将读取的数据区域。例如:P#DB201.DBX0.0 BYTE 200。参数“RD_1”包含待读取数据 的地址,例如:P#DB200.DBX0.0 BYTE 100。需要输出参数“DONE”、“ERROR”和“ STATUS”用于评估任务,并且仅仅在同一个循环 中有效。

图. 04 如果块运行出现错误,输出参数 "STATUS" 保存块的状态字,用于错误分析。

图. 05 当 M10.6 出现上升沿并且程序块不忙时,FB15 由输入参数 "REQ" 激活。只有当发送任务成功或者出错完成时,输入参数 "REQ" 复 位。这意味着新的发送任务只有当任务完成时才能再次触发。 这个锁定功能是非常重要的。因为该函数的运行是异步的并且持续好几个循环。持续激活该函数块而不等待当前作业结束,将导致通信 过载。 参数“ADDR_1”指向远程 CPU 中要写入的或者将读取的数据区域。例如:P#DB200.DBX0.0 BYTE 20。参数“SD_1”包含待发送数据的 地址,例如: P#DB201.DBX0.0 BYTE 20。需要输出参数“DONE”、“ERROR”和“ STATUS”用于评估任务,并且仅仅在同一个循环中 有效。

图. 06 如果块运行出现错误,输出参数 "STATUS" 保存块的状态字,用于错误分析。

图. 07 注: 手册“Sy stem and Standard Functions for S7-300/400 Volume 1/2",第22章“S7 Communication”中提供了更多信息,例如:关 于通过通信块 FB14 “GET”和 FB15 “PUT” 传送数据量的信息。此手册下载条目号: 44240604。 条目号 17628518 包含怎样配置指定与非指定的 S7 连接的内容。 用于下载的STEP 7项目: 这个 STEP 7 项目包含一个示例程序,用于调用 FB14和 FB15,具有状态评估。示例程序使用STEP 7 V5.5创建。

Sample_S7-300_PUT_GET.zipSample_S7-300_PUT_GET.zip ( 197 KB ) 注意 从 SIMATIC_NET_CP 库或者标准库中拷贝最新的通讯功能块 FB14 和 FB15 到用户程序中,然后再编写程序。

S7-300中如何使用通信功能块FB12 "BSEND" 和 FB13 "BRCV"进行数据交换? 说明: 两个 S7-300 站通过在 NetPro 组态的 S7 连接 传送数据,必须在程序中调用通信功能块 FB12 "BSEND" 和 FB13 "BRCV" 方能实 现。S7 连接需要在通信双方都组态,因为通过 FB12 "BSEND" 和 FB13 "BRCV" 的 S7 通信是基于客户机-客户机模式的。 通信功能块 FB12 "BSEND" 和 FB13 "BRCV"的特点 FB12 和 FB13 是异步通信功能块。 必须在 OB1 中调用 (参考条目 ID: 2795485)。 FB12 和 FB13 在多个 OB1 循环中执行。 FB12 由输入参数"REQ"使能触发。 FB13 由输入参数"EN_R"使能触发。 任务完成状态由 "DONE","NDR" 或 "ERROR"表示。 BSEND 和 BRCV 可以在一个连接上同时进行。 通过CP343-1 或 CP342-5 交换数据的最新版本 FB12 "BSEND" 和 FB13 "BRCV" 通信块可以在 SIMATIC_NET_CP 库 "CP 300 > Block s"下找到。 通过 S7-300 CPU, IM151-8 PN/DP CPU 或 IM154-8 CPU 集成的 PROFINET 接口在"CPU_300" 家族中交换数据的最新版本 FB12 "BSEND" 和 FB13 "BRCV" 通信块可以在标准库的 "Communication Blocks > Block s"下找到。 示例程序描述 示例 S7 程序包括从标准库中对通信块 FB12 "BSEND" 和 FB13 "BRCV" 的调用。FB12 "BSEND" 功能块用于发送数据,FB13 "BRCV" 功能块用于接收数据。 示例程序演示了通过 S7 连接 FB12 "BSEND" 和 FB13 "BRCV" 通信块功能。 首先创建 S7-300 站的硬件配置。 注意: 将 MB10 配置为时钟标志。发送任务由该时钟标志触发。保存并编译 S7-300 站的硬件组态并装载到 CPU。 例程中用到了定时器 T10 。 然后在 NetPro 中为 CPU 配置上面提到的通讯连接。如果通讯伙伴也在该 STEP7 项目中一起配置,可以配置一个指定的通讯连接。 如果通讯伙伴没有与 S7-300 站在同一个 STEP7 项目下,可以配置一个未指定的通讯连接。配置通讯连接时,确认 IP 地址和 Profibus 地址已经正确分配。 同样,确认 机架/槽号和连接资源已经正确分配。这些 用于识别通讯伙伴间的通讯连接。 FB12 "BSEND" 和 FB13 "BRCV" 必须用到的参数"ID" 在 S7 连接的属生对话框的 "General" 选项卡下查看。

图. 01 示例 STEP 7 程序包括 OB100, OB1, FB105, DB105, DB200, DB201, FB12 和 FB13 块。 OB100: OB100 是启动组织块,当 CPU 重新启动(暖启动)时运行。在这个组织块中通过 M0.3 使能第一次通讯触发器。 OB1 OB1循环执行。FB105 在此OB中调用(背景数据块: DB105) 使用 M0.3 作为参数 (INIT_COM)。FB105一旦执行 则复位 M0.3 "STARTUP".

图. 02 FB105 FB105 在OB1循环中调用。FB12 "BSEND" 和 FB13 "BRCV" 在 FB105 中调用。 输入参数 "ID" 的值必须来自 NetPro 中配置的 S7 连接的属性对话框(见图. 01)。 可以在FB105中单独修改连接号。在FB105的 network 2 中根据组态修改连接号。连接号存储在静态变量中,因此最终存储在背景数据 块DB105中。

本例中定义的连接号是"1"。

图. 03 FB12 由输入参数 "REQ" 当 M10.6 时钟标记产生上升沿并且没有作业执行时激活。当任务成功执行完毕或出错时"REQ" 输入参数复 位。 由于功能块的执行是异步的,并可以持续几个周期,所以“锁定”功能尤其重要。如果不等待第一个发送工作成功完成或出错终止就不间 断的触发新的发送任务会引起通讯过载。 使用"R_ID" 参数指定一对发送 FB 和 接收 FB。在发送端 FB 的"R_ID" 参数必须和接收端 FB 的"R_ID" 参数相同。 FB12 的 "SD_1" 参数指定要发送的数据区的地址和长度(发送缓冲区),如 P#DB201.DBX0.0 BYTE 8000. "LEN" 参数表示要发送的数据长度,以字节为单位。在FB105的Network 1中定义要发送的数据长度。它存储在静态变量中,因此最终 存储在背景数据块DB105中。 本例中发送的数据长度是 8000 字节。 输出参数 "DONE","ERROR" 和 "STATUS" 用做任务分析,而且只在同一个周期中有效。

图. 04

如果发送任务出现错误,FB12的输出参数"STATUS"会被保存用于故障分析。

图. 05 FB13 由输入参数 "EN_R" 激活. "EN_R" 的值始终为"1",因为 M0.1在启动组织块OB100中被设为1了。这样,S7-300 站总是准备好 接收数据。 使用"R_ID" 参数指定一对发送 FB 和 接收 FB。在发送端 FB 的"R_ID" 参数必须和接收端 FB 的"R_ID" 参数相同。 FB13的 "RD_1" 输入参数指定要存储接收到的数据的地址长度(接收缓冲区),如 P#DB200.DBX0.0 BYTE 8000. 输出参数"LEN" 表示接收到的数据长度,以字节为单位。输出参数 "NDR","ERROR" 和 "STATUS" 用做任务分析,而且只在同一个周 期中有效。

图. 06 如果接收任务出现错误,FB13的输出参数"STATUS"会被保存用于故障分析。

图. 07 附加信息 在手册"Sy stem and Standard Functions for S7-300/400 Volume 1/2"第22章"S7 Communication" 中 提供了通信功能块 FB12 "BSEND" 和 FB13 "BRCV" 的信息,如可以传送的数据量大小。该手册可以在条目 ID: 44240604下载。 如何配置一个指定的或非指定的 S7 连接在条目 ID: 17628518 中有描述。

下载示例 STEP 7 项目 示例 STEP 7 项目包含对 FB12 和 FB13通信块的调用。该程序由 STEP 7 V5.5 创建。.

Sample_S7-300_BSEND_BRCV.zipSample_S7-300_BSEND_BRCV.z ip ( 47 KB ) 提示 从SIMATIC_NET_CP库或标准库中复制最新的通信块 FB12 和 FB13到用户程序中并在调用它们。

当“BRCV”t 块(SFB13)处于“ disabled”状态(“EN_R = 0”) 时,重复“BSEND”作业(SFB12)

问题: 在带有块“BSEND”(SFB12)和块“BRCV” (SFB13)的S7-400上进行的S7通讯中,当 块“BRCV”(SFB13)处于“disabled”状态(“EN_R = 0”) 时,发送作业是否 会在系统处自动重复呢? 解答: 如果发送作业在块“BSEND”上启动,并且接收(“BRCV”)处于“disabled”状态(“EN_R = 0”),则块“BSEND”在用户程序中接 收到一个否定的确认消息(ERROR = 1;STATUS = 6 (十进制))。发送作业就此完成。 没有用于重复“BSEND”作业的系统方策略,这是用户自己的责任。这表明发送作业必须在用户程序中重复,直到“BRCV”块准备 接收发送的数据-“BRCV”模块上的“EN_R = 1”。 条目号: 22548794 日期: 2014-08-28
? Siem ens AG 2014 版权所有 - 法人信息 - 保密政策 - 应用条款


相关文章:
以太网通信400与300单边通讯
工业以太网单边通讯为例) 1、新建项目 1) 、在 SIMATIC Manager 中新建一个项目,名称为“4-3-3-420” ;硬件组态插入 一个 S7-400 站和两个 S7-300 ...
s7-1200与s7300 400以太网通信
s7-1200与s7300 400以太网通信_计算机硬件及网络_IT/计算机_专业资料。以太网通信...S7-1200 紧凑型控制器使用 STEP 7 Basic V10.5 SP2 编程用户界面进行组态。...
S7-300400 CPU之间的通信方式比较
它们之间还可以进行双向 S7通信S7通信需要组态和编程。 4.DP 主从通信 一台...1)基于 DP 的 FDL 通信,需要使用通信处理器。 2)工业以太网中的 ISO、ISO-...
S7-200 以太网通信
之间的以太网通信 2、S7-200 S7-300/400 ...只响应 Client 端的数据请求,不需要编程,只要组 态...(9)至此,S7-200 服务器端的以太网通信已经组态...
电气与PLC控制技术课程教学大纲-s7300-09级12年
第四章 S7300/400 的编程语言与指令系统 1、课程教学内容 (1)S7300/400 的...通信网络; (3)MPI 通信组态与编程; (4)PROFIBUS; (5)工业以太网与 ...
通过工业以太网设定S7-300 CPU 的时间
通过工业以太网设定S7-300 CPU 的时间_计算机硬件及网络_IT/计算机_专业资料。...组态 UDP 通信连接可以参见条目 20983558 中的手册。 在 S7-300编写程序块...
SIMATIC S7-300、400 PLC的设计应用实例
包括硬件结构,组态编程软件 STEP7、监控软件 WinCC 的 SIMATIC S1-300/400 PLC...这样,工程师站 和 S7300 间就可以通过工业以太网进行通信连接。 4 2.网络及...
S7-300 与 S7-200 SMART 以太网通讯_图文
PUT/GET 通讯也是可以成功的, 但是需要 S7-300/400编程调用 PUT/GET 指令...比较特殊,自带两个以太网 PN 接口,所以组态时会弹出以太网接口属 性设置窗口。...
在S7-300和S7-400 之间配置未指定的S7连接传送数据
图. 01: 配置 请参照以下说明来组态 S7 连接。 在本例中,S7 通信建立在工业以太网上,在 S7-300 和 S7-400 站上使用了 工业以太网通信处理器 CP。 注意:...
THPF-A、B、C、D型实验指导书
21 实验五 基于 S7-400/300 PLC 集成 MPI 接口的无组态连接双边编程方式的 ...的通信, PLC PLC 可以将 PLC 接入 MPI、PROFIBUS-DP、AS-i 和工业以太网,...
更多相关标签: