FB 104 'SWR_AG_COM'将在后台调用 FC 5'AG_SEND' 块和 FC 6 'AG_RCV' 块。 这些块是 NCM S7 的组件,必须在两个 CPU 中都要装载。块软件包BSEND_400 中的内容块 注释FC 100 'SWR_START' 必须在启动程序 OB 100 中调用该块。FB 101'SWR_ZYK' 必须在循环程序或时间控制的程序中调用该块。 必须在执行冗余用户程序前/后调用该块。FC 102'SWR_DIAG' 必须在诊断 OB 86 中调用该块。FB 105 'SWR_SFBCOM' 该块支持数据传送,并在 FB 101‘SWR_ZYK’ 中进行后台调用。必须在两个 CPU 中都装载此块。
软冗余块总览小表列出了软冗余使用的所有块:块 块功能FC 100'SWR_START' 启动块用于提供参数,并为参数的处理提供准备。FB 101‘SWR_ZYK’循环块将数据区从主机站传送到待机站,并协调通讯与切换。FC 102 'SWR_DIAG'诊断块将执行切换,并管理从站的诊断数据,为 FB 101‘SWR_ZYK’准备诊断数据。FB 103 'SWR_SFCCOM'通过 SFC 65‘X_SEND’和 SFC 66‘X_RCV’进行的 CPU 通讯仅与 MPI 连接相关。FB 104'SWR_AG_COM' 通过 FC 5‘AG_SEND’和 FC 6‘AG_RCV’进行的 CPU 通讯与 PROFIBUS和工业以太网连接相关。FB 105 'SWR_SFBCOM' 通过 SFB 12‘BSEND’和 SFB 13‘BRCV’进行的CPU 通讯与 MPI、PROFIBUS、工业以太网以及点对点的连接相关;在 S7-300 中不能使用这些块。DB_WORK_NO软冗余的工作 DBDB_SEND_NO 冗余软件的数据存储器:发送 DB 中包含 DB、MB、PIO 和 DIDB_RCV_NO冗余软件组件的接收 DBDB_A_B_NO 用于将非冗余数据从 A 站传送到 B 站的发送/接收 DBDB_B_A_NO用于将非冗余数据从 B 站传送到 A 站的发送/接收 DBDB_COM_NO 通讯块的背景数据块FC 5‘AG_SEND’如果冗余链接使用了 FDL 连接,则需要此块。FC 6‘AG_RCV’ 如果冗余链接使用了 FDL连接,则需要此块。注意仅在启动时,由 FC 100 'SWR_START' 按照所需长度一次性生成上述数据块(DB_COM_NO除外)。 完成对 FC 100 'SWR_START' 参数的修改之后,通常也需要编辑此数据块。更改 FC100'SWR_START' 的参数设置后,必须重新启动 CPU,因为如果更改了区域长度,发送 DB 和接收 DB将有新的长度,必须重新生成。FC 100 'SWR_START'功能FC 100 'SWR_START' 用于初始化两个站。此块主要指定了以下内容:● 冗余用户程序中所用的输出的 I/O 区域、位存储器地址区、数据块区、数据块以及IEC计数器/定时器的背景数据块区域。 必须为每个区域分配一个连续范围。● 关于通讯和分布式 I/O 的信息。●软冗余存储内部数据所需的三个数据块。必须在启动 OB 100 时调用 FC 100'SWR_START'。关于未使用区域参数设置的注意事项:对于未使用的区域,在其参数上输入数值 0。实例:● 如果未使用任何 IEC定时器/计数器,则设置参数 IEC_NO = 0 和 IEC_LEN = 0。● 如果在 PIO 区域中没有任何输出,则为参数PIO_FIRST 分配一个大于 PIO_LAST 的数值。如果没有使用 DB_A_B_NO 和/或 DB_B_A_NO数据块,则将参数“用户特定 DB 编号”和“长度”设置为 0 值。实例:如果没有使用 DB_A_B_NO,设置参数 DB_A_B_NO= DB 255 和 DB_A_B_NO_LEN =W#16#0。由于 DB_A_B_NO 和 DB_B_A_NO数据块所指定的数据类型为 Block-DB,在这些块上所设置的参数值必须大于 DB 0,例如 DB 255。在两个站上,为数据块DB_SEND_NO、DB_RCV_NO、DB_A_B_NO 和 DB_B_A_NO指定的 DB 编号必须一致。可中断性FC 100'SWR_START' 可中断。参数描述参数 声明 数据类型 描述 示例AS_ID IN CHAR 站 ID站 A 为‘A’。站 B为‘B’。‘A’DB_WORK_NO IN 块 DB 软冗余的工作 DBDB 仅包含内部数据。DB1DB_SEND_NO IN 块DB 收集将在其中发送到通讯伙伴的数据的DB。DB 仅包含内部数据。DB2DB_RCV_NO IN 块 DB CPU将在其中收集从通讯伙伴中接收到的数据的 DB。DB 仅包含内部数据。DB3MPI_ADR IN INT 通讯伙伴的 MPI 地址4LADDR IN INT 通讯处理器的逻辑基本地址(在硬件配置中指定)。260VERB_ID IN INT 连接ID冗余链接的连接数(在硬件配置中指定)。1DP_MASTER_SYS_ID IN INT DP 主站系统 IDET 200M从站所连接 DP 主站系统的 ID(在硬件配置中指定)。1DB_COM_NO IN 块 DB FB101‘SWR_ZYK’的背景数据块 DB5DP-COMMUN IN INT DP 主站的 ID 号:1. 如果 DP 主站带有集成DP 接口的 CPU2. 如果 DP 主站是 CP。1ADR_MODE IN INT 增加矩阵的大小,在此矩阵中 CPU 将分配I/O地址(地址矩阵与 CPU 相关)。1. 对于基本地址 0、1、2、3 ...4. 对于基本地址 0、4、8、12...1PIO_FIRST IN INT 带有冗余 IM 153 的 ET 200M 使用的第一个输出字节编号。0软冗余块5.4 FC100 'SWR_START'SIMATIC S7 的软冗余功能手册, 04/2010, A5E02171569-02 37参数 声明数据类型 描述 示例PIO_LAST IN INT 带有冗余 IM 153 的 ET 200M 使用的Zui后一个输出字节编号。 在范围PIO_FIRST 到PIO_LAST 内的输出字节必须构成一个连续范围,并且只用于带有冗余 IM 153 的ET200M。可以将所使用的每个冗余 DP 从站组态为Zui多 32 个字节的输出。4MB_NO IN INT冗余用户程序中第一个位存储器字节的编号 20MB_LEN IN INT 冗余用户程序中位存储器字节的总数位存储器字节必须是连续分配的。30IEC_NO IN INT 冗余用户程序中 IEC计数器/定时器的第一个背景数据块的编号111IEC_LEN IN INT 冗余用户程序中 IEC 计数器/定时器的背景数据块的总数背景数据库必须是连续分配的。7DB_NO IN INT 冗余用户程序中第一个数据块的编号。 8DB_NO_LEN IN INT冗余用户程序中数据块的总数 数据块必须是连续分配的。2SLAVE_NO IN INT 带有冗余 IM 153-2 的 ET 200MDP 从站的Zui低 PROFIBUS 地址。3SLAVE_LEN IN INT 所用的 ET 200M DP从站的总数。PROFIBUS 地址必须是连续分配的。1SLAVE_DISTANCE IN INT IM 153-2 的PROFIBUS 地址设置的标识符1. 如果两个接口的 PROFIBUS 地址相同。2. 如果接口的 PROFIBUS 地址为 n 和n+11DB_A_B_NO IN 块 DB 将非冗余数据从站 A 传送到站 B 的发送 DB DB11DB_A_B_NO_LEN INWORD DB_A_B_NO 中所用的数据字节数。 W#16#64DB_B_A_NO IN 块 DB 将非冗余数据从 B 站传送到 A站的发送DB。DB12DB_B_A_NO_LEN IN WORD DB_B_A_NO 中使用的数据字节数。W#16#64软冗余块5.4 FC 100 'SWR_START'SIMATIC S7 的软冗余38 功能手册, 04/2010,A5E02171569-02参数 声明 数据类型 描述 示例RETURN_VAL OUT WORD块返回值(具体说明如下所示)MW2EXT_INFO OUT WORD 子级块的返回值(具体说明如下所示)MW4RETURN_VAL 和EXT_INFO 的块特定值故障代码 说明W#16#0 无故障W#16#8001 参数 Teil-AG-Kennung的值无效。W#16#8002 无法生成 DB_WORK_NO。 可通过 SFC 22 的返回值进行原因分析。返回值存储在EXT_INFO 中。W#16#8003 无法生成 DB_SEND_NO。 可通过 SFC 22 的返回值进行原因分析。返回值存储在EXT_INFO 中。W#16#8004 无法生成 DB_RCV_NO。 可通过 SFC 22 的返回值进行原因分析。返回值存储在EXT_INFO 中。W#16#8005 无法生成 DB_A_B_NO。 可通过 SFC 22 的返回值进行原因分析。返回值存储在EXT_INFO 中。W#16#8006 无法生成 DB_B_A_NO 可通过 SFC 22 的返回值进行原因分析。返回值存储在EXT_INFO 中。W#16#8007 参数 DP_MASTER_SYS_ID、SLAVE_NO、SLAVE_LEN 或SLAVE_DISTANCE 的值无效。 指定的数值与硬件配置不匹配。W#16#8008 如果 EXT_INFO=W#16#8888则参数 DP-KOMMUN 的值无效,或者无法进行诊断。 可通过 SFC 51 的返回值进行原因分析。 返回值存储在 EXT_INFO中。W#16#8009 无法取消从站切换锁定。 可通过 SFC 58 的返回值进行原因分析。 返回值存储在EXT_INFO中。W#16#800A 无法确定 DP 从站接口的状态。 可通过 SFC 59 的返回值进行原因分析。 返回值存储在EXT_INFO中。W#16#800B 确定所用的 PIO 区域时出错。 可通过 SFC 50 的返回值进行原因分析。 返回值存储在EXT_INFO中。W#16#800C 参数 ADR_MODUS 的值无效。W#16#800D 参数 SLAVE_DISTANCE 的值无效。故障代码说明W#16#800E 无法读取 DB_WORK_NO。 重新装载块。W#16#800F 参数 DP_COMMUN的值无效(未指定接口)。W#16#80F1 确定 PAA 的地址时出错。 可通过 SFC 50 的返回值进行原因分析。返回值存储在EXT_INFO 中。 为 PIO_FIRST 和 PIO_LAST 指定的详细参数与硬件配置不匹配。W#16#8027内部错误。FB 101‘SWR_ZYK’功能在执行冗余用户程序之前和之后必须调用 FB 101‘SWR_ZYK’。 通过 FB101‘SWR_ZYK’将启动从主机设备到待机设备的数据传送。调用之后,FB 101 自动处理从主机设备传送到待机设备的数据。 FB101 将在后台调用数据传输所需要的功能/功能块。可中断性FB 101‘SWR_ZYK’是可中断的。背景数据块在调用 FB101‘SWR_ZYK’时必须指定背景数据块。 在设置 FC 100‘SWR-START’的参数时,必须已在参数 DB_COM_NO中设置了背景数据块的块号。参数描述参数 声明 数据类型 描述 示例DB_WORK_NO IN 块 DB 工作 DB。 其参数设置必须与FC 100'SWR_START' 的参数 DB_WORK_NO相同。DB1CALL_POSITION BOOL此参数定义了用户程序中调用FB 101‘SWR_ZYK’的位置。如果必须在冗余用户程序对其调用之前先进行调用,则为TRUE如果必须在冗余用户程序对其调用之后再进行调用,则为 FALSETRUERETURN_VAL OUT WORD块返回值(具体说明如下所示)MW6EXT_INFO OUT WORD 子级块的返回值(具体说明如下所示)MW8