当前位置:机电之家首页 >> PLC技术>> PLC文案资料 >> PLC培训资料 >> 西门子S7-400PLC培训教程—第7章 软件冗余的原理和配置
西门子S7-400PLC培训教程—第7章 软件冗余的原理和配置

idth=165>

Network connected via CP 443?5


 

 

Industrial Ethernet

 

 

Network connected via CP 443?1

 


 

从以上的表格中可以看到,软冗余系统当中可以采用MPI、PROFIBUS、Ethernet 三种网络实现主系统和备用系统之间的数据同步(Redundant-backup bbbb)。

 

采用BSEND_400包中的功能块进行数据同步时,无论数据同步的连接是什么方式,都需要在STEP7的NETPRO窗口中组态一个 S7 Connection。除了BSEND_400中之外,使用其他功能块:


l         采用MPI网络时,直接使用PLC的编程口进行数据同步,不需要进行连接(Connection)的组态,但MPI数据同步的效率低。

[NextPage]  

 

l         采用PROFIBUS网络时,需要使用一对CP通讯卡(CP342-5或CP443-5),在STEP7的NETPRO窗口中组态主系统和备用系统之间的FDL连接。

 

l         采用Ethernet网络时,需要使用一对CP通讯卡(CP343-1或CP443-1),在NETPRO窗口中组态主系统和备用系统之间的ISO连接。


冗余功能块的说明参考表7-5。

 

表7-5冗余功能块说明:

 

名称

 

描述

 

FC 100 ‘SWR_START’

 

初始化程序块,定义系统运行的参数。

 

FB 101 ‘SWR_ZYK’


循环调用的数据同步功能块,将主系统中的冗余数据复制到备用系统当中

 

FC 102 ‘SWR_DIAG’


诊断功能块,在OB86中调用,将得到的诊断数据提供给FB101使用。

 

FB 103 ‘SWR_SFCCOM’


在该块内部调用 SFC 65 ‘X_SEND’ 和 SFC 66 ‘X_RCV’功能块,实现采用MPI网络的数据同步。

 

FB 104 ‘SWR_AG_COM’

 

在该块内部调用FC 5 ‘AG_SEND’, FC 6 ‘AG_RCV’,实现采用PROFIBUS或Ethernet网络的数据同步。

 

FB 105

在该块内部调用SFB 12 ‘BSEND’ and SFB 13 ‘BRCV’功能块,实现MPI或PROFIBUS或Ethernet网络的数据同步,只能在S7-400 中调用。

 

DB_WORK_NO

 

冗余软件块使用的数据区,用户不需要生成该数据块,也不使用该数据块中的数据;

 

DB_SEND_NO

 

用于主系统发送同步数据到备用系统的发送数据区(包括了主系统的M、T、C、DB等区域的数据),用户不需要生成该数据块,也不使用该数据块中的数据;


DB_RCV_NO


用于备用系统接收来自主系统的同步数据的接收数据区,用户不需要生成该数据块,也不使用该数据块中的数据;

 

DB_A_B_NO

 

从A站到B站,非冗余同步的数据的收发区;


DB_B_A_NO


从B站到A站,非冗余同步的数据的收发区;


DB_COM_NO


FB101的背景数据块,包括了数据同步链路的状态,控制等信息,用户需要生成该数据块,DBW8为状态字,DBW10为控制字,;

 

FC 5 ‘AG_SEND’

 

PROFIBUS网络中,实现FDL链接,在FB104内部调用的发送块,用户需要生成该程序块,并下载到PLC当中。

 

FC 6 ‘AG_RCV’


PROFIBUS网络中,实现FDL链接,在FB104内部调用的接收块,用户需要生成该程序块,并下载到PLC当中。


 
[NextPage]

注:

 

1) 用PROFIBUS或Ethernet方式进行数据同步时,需要在OB100当中调用FB101,而FB101内部调用了FB104、FC5、FC6,所以您必须手动地将FB104、FC5、FC6插入到项目当中,插入的方法是:在程序中调用一次,再将这条语句删掉。

 

2) 在OB100中调用FC100功能块时,PLC会自动创建一些与FC100参数相关的程序段和数据块,所以当你更改了FC100的参数时,应该对PLC进行Reset操作,再重新下载项目的软硬件到PLC当中。

 

7.2.2  实例


例子由两套315-2DP和一个ET200M从站组成,系统结构如图7-6所示:

 

 

图7-6 系统配置



 

除了实现冗余功能的3条PROFIBUS网络外,还有一条MPI网络用于上位机监视和控制程序的调试。

 

以下是生成该例子程序的步骤,可以根据系统的配置情况进行参照:

 

(1)插入两个S7-300的站,A 和 B ,在A站和B站的硬件组态窗口中,插入315-2DP时,要分别创建相互独立的PROFIBUS网络(如 A站为Master_Line、B站为Reserve_Line),使用网络的默认参数,速率为1.5M,并都将站地址设定为2,A站和B站的PROFIBUS DP集成通讯口设定为主站模式(Master Mode)。

 

(2)分别在A、B站中插入CP342-5模块,连接到同一个PROFIBUS网络上(Sychronization_Line),地址分别为4、5,将CP342-5设定为No DP方式,并记录CP342-5的硬件地址256。

 

(3)分别在A、B站的硬件组态窗口中插入一个ET200从站(一个IM153-2模块和一个16入/16出的数字量模板),DP的地址为3。

 

(4)  进入STEP7的网络组态窗口NETPRO中,选中A站的CPU点击鼠标右键,插入一个新的链接,选择FDL Connection,点击Apply,弹出链接属性窗口,记录链接的ID,设定LSAP为17,18,存盘编译网络组态。系统的网络结构如图7-7所示:

 

[NextPage]

 

P.L.C.技.术.网——可编程控制器技术门户

图7-7 系统的网络结构

 


以上网络结构中包括了4条链路:

 

l         用于上位机编程和监控的MPI链路;

 

l         A站与ET200从站Master Line PROFIBUS链路;

 

l         B站与ET200从站Reserve Line PROFIBUS链路;

 

l         A站和B站之间进行数据同步的Synchronization Line PROFIBUS链路。


可以通过点击图中的状态读取按钮,获取当前FDL链接的状态,上图的左下角显示当前在线读取FDL的状态为OK。

 

(5)在A站的Block中插入OB1(主循环程序块)、OB35(定时中断组织块)、OB100(暖启动调用程序块)、OB80(在主系统与备用系统切换时间超时时,调用该块)、OB82 (DP-Slave ET200站上的IM153-2模块出错报警,调用该功能块)、OB83 (DP从站的接口模块与主站链接断开或链接重新建立时调用该块)、OB85(程序运行出错或DP从站连接失败调用该块)、OB86(主从站通讯出错调用该块)、OB87(通讯失败调用该块)、OB122(外围设备访问出错调用该块)、OB121等组织块,并对其中的OB100、OB35、OB86进行编程。

 

(6)在OB100中我们调用FC 100 ‘SWR_START’进行软冗余的初始化,有几个参数需要特别注意,LADDR应当和CP342-5的硬件地址相一致,例子程序为256,VERB_ID必须和在NETPRO中创建的FDL链路的ID号一致,例子程序为1,DB_COM_NO建议仍采用DB5。

 

FC100功能块参数的说明和例子见表7-6,

 

表7-6 FC100 参数说明

[NextPage]

 

参数名


数据类型


描述


例子

 

AG_KENNUNG

 

字符型

 

A站应当填 ‘A’

 

B站应当填 ‘B’

 

‘A’

 

DB_WORK_NO

 

数据块名称

 

软冗余功能实现所需要使用的内部数据块,用户不用生成该块,也无需读写其中的数据


DB1

 

DB_SEND_NO

 

数据块名称

 

存放发送数据所使用的内部数据块,AàB或BàA,用户不用生成该块,也无需读写其中的数据


DB2

 

DB_RCV_NO

 

数据块名称

 

存放接收数据所使用的内部数据块,A?B或B?A,用户不用生成该块,也无需读写其中的数据


DB3


MPI_ADR

 

整型

 

对方站的MPI站地址,进行MPI网络数据同步时才有意义

 

2

 

LADDR


整型

 

CP通讯处理器组态的硬件地址,采用PROFIBUS或Ethernet网络进行数据同步时才有意义


256


VERB_ID

 

整型


网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL Connection、ISO Connection或S7 Connection。

 

1


DP_MASTER_SYS_ID

 

整型


DP主站网络的ID号,你可以在NETPRO窗口中双击链接ET200M从站紫色的PROFIBUS主从网络,获取该ID值。


1


DB_COM_NO

 

数据块名称

 

FB101所用使用的背景数据块,需用户生成该块,并可以读取状态字DBW8和控制字DBW10,获取系统信息或手动切换主备系统


DB5


DP-KOMMUN

 

整型


确定链接ET200从站的DP通讯口类型:


1. 使用CPU上集成DP通讯口链接ET200从站;


2. 使用CP通讯卡上的DP通讯口链接ET200从站;


1


ADR_MODUS


整型

 

CPU分配I/O地址的矩阵的增量,不同CPU的地址矩阵不同:

 

1, if base addresses 0, 1, 2, 3 ...

 

4, if base addresses 0, 4, 8, 12 ...


1

 

PAA_FIRST

 

整数

 

ET200M站第一个输出字节的地址


0


PAA_LAST


整型


ET200M站最后一个输出字节的地址,PAA_FIRST 到


PAA_LAST的字节范围必须是ET200M站上连续定义的。


4


MB_NO


整型

 

冗余的M数据区的起始字节地址


20


MB_LEN

 

整型


冗余的M数据区的字节个数,如MB_NO为20,MB_LEN为30,则MB20-MB49这个数据段为冗余数据区;


30

 

IEC_NO


整型

 

冗余的IEC定时器、IEC计数器所使用的起始背景数据块

 

111

 

IEC_LEN


整型


冗余的IEC定时器、IEC计数器所使用的背景数据块的个数,如IEC_NO设为111,IEC_LEN设为7,则DB111-DB117为存放冗余同步定时器、计数器的背景数据去

 

7

 

DB_NO

 

整型

 

冗余的起始数据块

 

8


DB_NO_LEN

 

整型

 

冗余的数据块个数,如DB_NO为8,DB_NO_LEN为2,则DB8-DB9为冗余的数据块

 

2


SLAVE_NO

 

整型

 

ET200从站的最低站地址

 

3

 

SLAVE_LEN


整型

 

ET200从站的个数,如SLAVE_NO为3,SLAVE_LEN为2,则该软冗余系统连接了站号为3,4的两个ET200从站,站号必须连续。



SLAVE_DISTANCE

 

整型

 

确定所链接ET200从站上IM153-2模块的PROFIBUS DP站地址:


1. 2块IM153-2模块的DP口使用相同的站地址;

 

2. 2块IM153-2模块的DP口的站地址为n和n+1;

)

1


DB_A_B_NO

 

数据块名称

 

通过数据同步链路(Redundency bbbb),A、B站之间还能进行一些非冗余数据通讯,即2个PLC之间的普通数据交换,该参数即定义从A站到B站,交换的非冗余数据块。


DB11

 

DB_A_B_NO_LEN

 

WORD

 

A站到B站,非冗余数据块中交换的Word字数,如DB_A_B_NO设为DB11,DB_A_B_NO_LEN设为. W#16#64,则A站的DB11.DBW0-DB11.DBW198被复制到B站的DB11.DBW0-DB11.DBW198,因为W#16#64代表16进制64,即一共复制100个数据字。


W#16#64


DB_B_A_NO

 

数据块名称

 

该参数即定义从B站到A站,交换的非冗余数据块。

 

DB12

 

DB_B_A_NO_LEN

 

WORD

 

B站到A站,非冗余数据块中交换的Word字数,如DB_B_A_NO设为DB12,DB_B_A_NO_LEN设为. W#16#64,则B站的DB12.DBW0-DB12.DBW198被复制到A站的DB12.DBW0-DB12.DBW198,因为W#16#64代表16进制64,即一共复制100个数据字。

 

W#16#64

 

RETURN_VAL

 

WORD

 

调用FC100的返回值,为0代表正常,其他返回值您可以在错误代码表中找到对应的错误原因。

 

MW2

 

EXT_INFO

 

WORD

 

FC100中内部调用的一些功能块所返回的错误代码

 

MW4


[NextPage]

(7) 一般建议将非冗余程序段编写在OB1当中,而将冗余程序段编写在OB35当中,这里使用的是OB35的默认属性,即每100ms中断触发一次,可以根据实际的需要在CPU属性中修改中断的时间间隔。在OB35里调用FB 101 ‘SWR_ZYK’ 功能块,FB101块中封装了冗余功能的程序段,实现冗余功能。调用FB101时,你可以在线地读出RETURN_VAL参数的数值,如果为0,说明冗余链接正常。如果为8015说明数据同步的连接不成功,这是一个常见的错误,原因可能是CP342-5之间的FDL链接建立的不正确或物理链路不通,或者是FC100的VERB_ID参数与NETPRO中的链接ID号不一致。当执行”SWR_START”程序块时,系统分配这些数据区,不能用S7的定时器和计数器,只能使用IEC标准的定时器和计数器。可以在软冗余手册的第三章第9节找到对应的诊断信息。OB35中的程序可以分为4个部分,如图7-8所示:

 

 

 

 

A.在循环程序块(OB1或OB35)的开始调用FB101,并将CALL_bbbbbbbb置为TRUE

 

 

B.可以在DB5中得到控制字(DBW10)和状态字DBW8的信息。分析状态字中的信息,如果当前站为备用系统,则跳过冗余程序段。

 


C.冗余程序段。该处为您的冗余程序段

 

D.在循环程序块(OB1或OB35)的结尾调用FB101,将CALL_bbbbbbbb置为FALSE,停止系统冗余程序段。

 

 

图 7-8 冗余程序举例

 

程序执行如下:

 

第一步(A)启动系统的冗余数据同步功能 à

 

第二步(B)根据状态字判断是否为主系统,为主系统时才执行第三步,否则跳到第四步à


第三步(C)为冗余的程序段 à

 

第四步(D)停止系统的冗余数据同步。

 

通过对OB35中的程序在线监控,得知当前冗余功能成功与否,如图7-9所示:

 

 

图7-9 FB101   状态值

 


图7-9显示,FB101的返回值Return_VAL和Ext_INFO为0,说明冗余功能正常。

 

通过FB101的背景数据块中的状态字和控制字,可以知道系统的运行的情况和当前哪个系统为主系统,哪个为备用系统,状态字的定义如图7-10所示:

 

 

图7-10 软件冗余状态字


 

可以通过写控制字中对应的位,起停备用系统与主系统之间的冗余通讯,也可以实现主系统与备用系统之间的手动切换,如图7-11所示:

 

图7-11软件冗余控制字

 

 

通过设定DB5.DBX10.0为1,实现主系统与备用系统的手动切换。

 

(8)在OB86中调用诊断功能块FC 102 ‘SWR_DIAG’,当系统出现PROFIBUS总线错误时,该功能块返回诊断信息,供FB101使用。


(9)插入FB101内部调用的FB104,FC5、FC6等功能块,将所有的程序块下载到PLC当中。

 

(10)在组态软件WinCC中创建两个MPI链接,分别与主系统和备用系统进行链接,并生成对应的Tag变量,如图7-12所示:

 

图7-12 WINCC中创建连接


利用WINCC的向导功能可以创建冗余的连接,通常的情况下, A、B站冗余的数据连接WINCC建立的冗余连接,A站数据连接WINCC专一与A站建立的连接,B站数据连接WINCC专一与B站建立的连接。

作者:未知 点击:3427次 [打印] [关闭] [返回顶部]
本文标签:西门子S7-400PLC培训教程—第7章 软件冗余的原理和配置
* 由于无法获得联系方式等原因,本网使用的文字及图片的作品报酬未能及时支付,在此深表歉意,请《西门子S7-400PLC培训教程—第7章 软件冗余的原理和配置》相关权利人与机电之家网取得联系。
电子样本

富林泰克产品系列j电子样
:胡先生
:13736436955
:嘉兴市科力电子有限公司
个人求购

 【求购】  起重专用变...  2024-9-30
姜海洋 【求购】  锆铌合金  2024-9-30
王景雷 【求购】  玻璃纤维管  2024-9-30
廖先生 【求购】  ASCO电...  2024-9-30
你爸爸 【求购】  甲板漏水口  2024-9-27
蒋经理 【求购】  电磁阀  2024-9-27
徐经理 【求购】  施耐德母线...  2024-9-27
张经理 【求购】  深宝电表  2024-9-27
VIP公司推荐