分享

PLCS7-300、400系统软件冗余的说明与实现

 阿明哥哥资料区 2022-08-03 发布于上海

图片

前几年,在工控现场,遇到某用户用的是西门子汽轮机驱动压缩机,调控系统,包括防喘振也是由西门子来调试,当时,调控系统用的是西门子S7-300冗余系统,觉得既经济又很经典,下列简要介绍该功能的实现。

软件冗余基本信息介绍

软件冗余是Siemens实现冗余功能的一种低成本解决方案,可以应用于对主备系统切换时间要求不高的控制系统中。

A.系统结构

Siemens软件冗余系统的软件、硬件包括:

1STEP7编程软件(V5.x)加软冗余软件包(V1.x)

2PLC控制器及I/O模块,可以是S7-300S7-400系统

3条通讯链路主系统与从站通讯链路(PROFIBUS 1)、备用系统与从站通讯链路(PROFIBUS 2)、主系统与备用系统的数据同步通讯链路(MPI PROFIBUS Ethernet);

若干ET200M从站,每个从站包括2IM153-2接口模块和若干个I/O模块;

除此之外,还需要一些相关的附件,用于编程和上位机监控的PC-Adapter连接在计算机串口)或CP5611插在主板上的PCI槽上)或CP5511插在笔记本的PCMIA槽里)、PROFIBUS电缆、PROFIBUS总线链接器等;

下图说明了软冗余系统的基本结构:

图片

                                                                   图2

可以看出,系统是由两套独立的S7-300S7-400 PLC(一般推荐S7-300PLC系统,S7-400PLC系统,本身双控制单元就可实现硬件冗余)系统组成,软冗余能够实现:

I. 主机架电源、背板总线等冗余

II. PLC处理器冗余

III. PROFIBUS现场总线网络冗余(包括通讯接口、总线接头、总线电缆的冗余);

IV. ET200M站的通讯接口模块IM153-2冗余

软冗余系统由AB两套PLC控制系统组成。开始时,A系统为主,B系统为备用,当主系统A中的任何一个组件出错,控制任务会自动切换到备用系统B当中执行,这时,B系统为主,A系统为备用,这种切换过程是包括电源、CPU、通讯电缆和IM153接口模块的整体切换。系统运行过程中,即使没有任何组件出错,操作人员也可以通过设定控制字,实现手动的主备系统切换,这种手动切换过程,对于控制系统的软硬件调整,更换,扩容非常有用,即Altering Configuration and Application Program in RUN Mode 。

B.系统工作原理

在软冗余系统进行工作时,AB控制系统(处理器,通讯、I/O)独立运行,由主系统的PLC掌握对ET200从站中的I/O控制权。AB系统中的PLC程序由非冗余(non-duplicated)用户程序段和冗余(redundant backup用户程序段组成,主系统PLC执行全部的用户程序,备用系统PLC只执行非冗余用户程序段,而跳过冗余用户程序段。

下面我们看一下软冗余系统中PLC内部的运行过程:

图片

                                  3

主系统的CPU将数据同步到备用系统的CPU需要几个程序扫描循环:

图片

                                                                  图4

数据同步所需要的时间取决于同步数据量的大小和同步所采用的网络方式(图2中的紫色网络线),MPI方式周期最长,PROFIBUS方式适中,Ethernet网方式最快。

PROFIBUS 网络

1.5 Mbaud

Ethernet 以太网

10 MBaud

MPI网络

187.5 kBaud

60ms 传送240个字节数据

48ms 传送 240个字节数据

152ms 传送76个字节数据

                                        表1

用户需要在初始化程序中(OB100)定义冗余部分的数据区,该数据区可以包括:一个过程映象区process image area),一个定时器区IEC timer area,一个计数器区IEC counter area),一个 位地址区memory address area)和一个 数据块区data block area),S7-300同步的最大数据量为8 kBytesS7-400同步的最大数据量64kBytes

主备系统的切换时间  = 故障诊断检测时间 + 同步数据传输时间 + DP从站切换时间

如果CPU的故障是停机或断电,则故障诊断为大约1001000毫秒,3152DP同步1000字节的数据所需的时间大约为200300ms8DP从站的切换时间在100ms左右。您可以在冗余手册当中找到关于切换时间的具体说明。

无论控制程序循环扫描到哪里,当前激活的系统(即主系统)随时都会接收并处理报警,这样,在主系统A与备用系统B进行切换过程中产生的alarm存在被丢失的可能。

C.产品订货信息

如下给软冗余系统相关产品的订货信息

产品名称

订货号

描述

CPU 系列

CPU314C-2DP

6ES7 314-6CF00-0AB0

S7-300系列只能够实现软件冗余,无硬件冗余的功能。

CPU313C-2DP

6ES7 313-6CE00-0AB0

CPU 31x-2DP

6ES7  315-2AFxx-0AB0

6ES7 315-2AG10-0AB0

6ES7 316-2AGxx-0AB0

6ES7 318-2AJxx-0AB0

CPU 412-1

CPU 412-2

6ES7  412-1XFxx-0AB0

6ES7 412-1FK03-0AB0

6ES7 412-2XGxx-0AB0

S7-400全系列的CPU都可以应用于软冗余系统;

S7-400 H系列的CPU属于硬件冗余方式,相对于软冗余,硬件冗余系统切换速度快,主备CPU中的数据和事件保证完全一致,适于高可靠性应用场合,成本较高

CPU 413-1

CPU  413-2DP

6ES7  413-1XGxx-0AB0

6ES7  413-2XGxx-0AB0

CPU 414-1

CPU  414-2DP

CPU  414-3DP

6ES7  414-1XGxx-0AB0

6ES7  414-2XGxx-0AB0

6ES7  414-2XJxx-0AB0

6ES7 414-3XJxx-0AB0

CPU 416-1

CPU  416-2DP

CPU  416-3DP

CPU 417-4

6ES7  416-1XJxx-0AB0

6ES7  416-2XKxx-0AB0

6ES7  416-2XLxx-0AB0

6ES7  416-3XLxx-0AB0

6ES7 417-4XLxx-0AB0

CP  通讯处理器系列(数据同步  Redundant-backup  link

CP 342-5  PROFIBUS通讯模块

6ES7  342-5DA00-0XE0

6GK7 342-5DA02-0XE0


CP 343-1 Ethernet 通讯模块

6GK7 343-1BA00-0XE0

6GK7  343-1EX11-0XE0


CP 443-5  Extended PROFIBUS通讯模块

6EK7  443-5DXxx-0XE0


CP 443-1  ISO Ethernet 通讯模块

6EK7  443-1BXxx-0XE0


ET200系列

2x DP  slave interface IM 153-2

6ES7  153-2AA02-0XB0

6ES7 153-2AB01-0XB0


适于ET200M的所有数字量、模拟量  I/O 模板

参照S7-300选型样本和STEP 7的硬件组态窗口中ET200文件夹中的I/O模块

S7-300 模板手册的下载路径

CP 341

6ES7  341-1xH01-0AE0

串口通讯模板

FM 350

6ES7 350-1AH0x-0AE0

计数器功能模板

相关软件及附件

STEP7 编程软件

6ES7  870-5CC06-0YE0


软冗余软件包(Software Redundancy

6ES7 862-0AC00-0YA0

包括冗余功能块的安装软件和授权

PROFIBUS标准电缆

6XV1 830-0EH10

按米订货

RS485总线连接器

6ES7 972-0BA12-0XA0

PROFIBUS网络连接头

CP5611通讯卡

6GK1 561-1AA00

进行编程和上位机监控的通讯卡

2

SIEMENS PLC控制系统关于热插拔功能的定义:

1带电插拔模块时,确保不造成模块的硬件损坏;

2带电插拔模块时,CPU不停机,并产生报警;

3带电插拔模块时,该模块I/O通道的数值保持不变,而其他模块的运行不受影响;

4带电插拔模块时,CPU中触发中断组织块或通过DP诊断程序块,得到模块拔出或插入的事件信息,在用户程序或中断组织块OB**中进行相应控制逻辑和I/O通道的处理;

                                表3

注:

  1. 只有S7-300 315-2DP(除CPU314C-2DPCPU313C-2DP)型号以上的PLC才支持软冗余功能,所有的S7-400都支持软冗余功能;

  2. 主系统与备用系统的CPU型号可以不同,如主系统采用一套S7-400系统,而备用系统采用一套S7-300系统;

  3. 软冗余系统中的ET200M从站必须使用带有有源总线模块Active Bus Module)的导轨,您可以在《ET200M的有源总线底板配置与说明.doc》文档中,找到关于有源总线模块和导轨的具体订货和使用信息;

  4. 采用S7-300作为主站的软冗余系统无法实现热插拔全部功能,不具备以上所列第34条目中的功能。当您将ET200M从站上的模块拔出时,CPU不停机,主CPU、备用CPU上的SF灯亮,BUSF灯闪烁,ET200M从站上的2IM153-2模块的SF灯亮,BF灯闪烁,该ET200M从站上所有模块的I/O值被清0S7-300主站失去对该ET200M从站的控制能力。当您再次将模块插入到ET200M站上时,系统从主CPU切换到备用CPUSFBUSFBF灯熄灭,软冗余系统重新回到正常运行状态。

  5. 若要软冗余系统实现热插拔的4项功能,您必须使用S7-400作为软冗余系统的主站。

软冗余系统的调试过程

在您的计算机上首先安装STEP7 5.x软件和软冗余软件包,软冗余软件光盘包括了冗余功能程序块库、不同系统结构的例子程序和软冗余使用手册。

I不同系统结构方式下的功能块:

在安装完软冗余的软件后,您可以在STEP7当中找到例子程序和功能程序块库:

图片

                                图5

图片

                                                        6

以上图5显示的是在STEP7中使用OPEN菜单打开软冗余的例子程序,例子程序中采用MPI链路实现数据的同步。

6显示在安装完软冗余软件后,您可以在Libraries找到不同CPU以及不同链接方式下可以使用的功能块。

下面的两个表格分别说明了采用S7-300S7-400进行软件冗余时,可采用的不同网络连接以及所需调用的程序功能块包。

图片

                               3

从以上的表格中可以看到,软冗余系统当中可以采用MPIPROFIBUSEthernet三种网络实现主系统和备用系统之间的数据同步Redundant-backup link

采用BSEND_400包中的功能块进行数据同步时,无论数据同步的连接是什么方式,都需要在STEP7NETPRO窗口中组态一个S7 Connection

除了BSEND_400中之外,使用其他功能库中的程序块:

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

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

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

冗余功能块说明:

名称

描述

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’,实现采用PROFIBUSEthernet网络的数据同步。

FB 105 'SWR_SFBCOM’

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

DB_WORK_NO

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

DB_SEND_NO

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

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当中。

                                            表4

注:

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

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

II创建一个应用实例

附件中我们给出了一个例子项目,由两套315-2DP和一个ET200M从站组成,系统结构如下:

图片


                                     图7

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

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

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

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

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

4. 进入STEP7的网络组态窗口NETPRO中,选中A站的CPU点击鼠标右键,插入一个新的链接,选择FDL Connection,点击Apply,弹出链接属性窗口,记录链接的ID,设定LSAP1718,存盘编译网络组态。系统的网络结构如下:

图片

                                8

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

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

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

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

§ 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等组织块,并对其中的OB100OB35OB86进行编程。

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

如下表格给出了FC100功能块参数的说明和例子,供您编程参考:

参数名

数据类型

描述

例子

AG_KENNUNG

字符型

A站应当填 'A’

B站应当填 'B’

'A’

DB_WORK_NO

数据块名称

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

DB1

DB_SEND_NO

数据块名称

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

DB2

DB_RCV_NO

数据块名称

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

DB3

MPI_ADR

整型

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

2

LADDR

整型

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

256

VERB_ID

整型

网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL  ConnectionISO  ConnectionS7  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_NO20MB_LEN30,则MB20MB49这个数据段为冗余数据区;

30

IEC_NO

整型

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

111

IEC_LEN

整型

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

7

DB_NO

整型

冗余的起始数据块

8

DB_NO_LEN

整型

冗余的数据块个数,如DB_NO8DB_NO_LEN2,则DB8-DB9为冗余的数据块

2

SLAVE_NO

整型

ET200从站的最低站地址

3

SLAVE_LEN

整型

ET200从站的个数,如SLAVE_NO3SLAVE_LEN2,则该软冗余系统连接了站号为34的两个ET200从站,站号必须连续。


SLAVE_DISTANCE

整型

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

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

2. 2IM153-2模块的DP口的站地址为nn+1

1

DB_A_B_NO

数据块名称

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

DB11

DB_A_B_NO_LEN

WORD

A站到B站,非冗余数据块中交换的Word字数,如DB_A_B_NO设为DB11DB_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设为DB12DB_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

             表5

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

图片

                                                 图9

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

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

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

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

图片

图10

上图显示,FB101的返回值Return_VALExt_INFO0,说明冗余功能正常。

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

图片

                                               图11

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

图片

                                            图12

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

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

9.插入FB101内部调用的FB104FC5FC6等功能块,将所有的程序块下载到PLC当中。

10.在组态软件WinCC中创建两个MPI链接,分别与主系统和备用系统进行链接,并生成对应的Tag变量,如下:

图片

                                                                               图13

编辑监控画面,分别读取A站和B站的状态字、控制字和冗余同步的数据,如下:

图片

                                                                                     14

从图14中的状态字可以看出,当前8号(A)站为主系统,7号(B)站为备用系统,它们与所有DP从站的通讯正常,冗余同步链接正常,我们在一个20ms触发的定时中断块OB35中编写了一个数据累加程序段,可以看出备用系统的同步数据比主系统的实时数据慢80ms(4个周期),其中控制字为0,您可以修改对应的位,激活或取消冗余功能。

这里我们同时给您提供一个通过以太网实现数据同步的例子程序,系统的实物图如下:

图片

                               15

程序块的内容与上面的例子相同,只是将OB100FC100VERB_ID参数的数值改为7,因为采用ISO方式时,ISO Connection ID号要大于2,我们这里则STEP7NETPRO中组态了一个ID号为7ISO链接,如下图:

图片

                           图16

同时可以在WinCC软件中创建TCP/IP链接,分别读取主系统和备用系统中的数据,如下图:

图片

                                                       17

14比较,我们可以发现在以太网方式下,数据同步的速度比PROFIBUS DP方式下快,备用系统的同步数据比主系统的实时数据慢40ms2个周期)。

III关于软冗余的一些下载路径:软冗余手册和S7-300 模板手册都可以从西门子网站中找到。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多