西门子S7-300软冗余指南
- 格式:doc
- 大小:1015.33 KB
- 文档页数:17
主要硬件:(注意冗余要采用有源背板、有源导轨)讯的IM153-2 冗余套件实现ET200M的冗余通讯。
硬件配置:添加两个300站点:A和B ,然后对两个站分别进行硬件配置:1.打开A站2.从硬件目录选择机架3.打开A站的机架,插入电源,插入CPU315-2DP,新建一条DP网络,DP地址为8 如下图:4.插入ET200从站,DP 地址为35.插入CP343-1,新建 Ethernet(1) 网络6 ET200从站中添加I/O模块,硬件组态完成冗余的输出地址为0-11 ,后面设置FC100要用到。
7 两个站的硬件组态要一致。
8.添加网络连接右击A站CPU(B站也行)会出现菜单,选择“添加新连接”(insert new connection),“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,点确定。
就出现下面这个画面,这里边的ID:7 和LADDR十六进制100,也就是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 这里是可以选择的,原来是0001 A050,改为0007 A050,这时的ID 就成了7。
因为资料上说以太网实现冗余一般Local ID 不能小于2(其他方式实现没说),所以要改一下,两个CPU的都要改一致,这个在后边设置FC100参数要用到。
A站配置完成以后,进行B站的配置,注意两个站的配置要一致。
软件的设置1.打开冗余程序库,复制里面所需的数据块到程序块里,采用以太网冗余需要复制SWR_XSEND_3002.调用FC5, FC6 在库Libraries-->SIMATIC_NET_CP-->CP 300里边可以找到。
随便一个位置调用他们,然后删除。
项目的块里就会出现这两个块了。
3.调用IEC定时器块,冗余块里的SFB3 TP是定时器块,IEC定时器分别有SFB3 TP,SFB4TON,SFB5 TOF等,把SFB4复制到项目里。
四种常见品牌冗余PLC方案介绍下面介绍四种经常使用的PLC冗余方案:西门子S7-300(400)软冗余与S7-400H硬冗余、施耐德Quantum硬冗余、罗克韦尔的ControlLogix硬冗余和SLC500软冗余〔目前快要停产〕、ABB 的AC800M硬冗余方案。
1 西门子冗余方案1.1 西门子S7-300/400软冗余方案:软冗余方案是实现冗余功能的一种低本钱解决方案,可以应用于对主备系统切换时间要求不高的控制系统中。
其软件、硬件包括:1套STEP7编程软件〔V5.4〕加软冗余软件包(V1.2);2套PLC控制器及I/O模块,可以是S7-300或S7-400系统;3条通讯链路,主系统与从站通讯链路〔PROFIBUS 1〕、备用系统与从站通讯链路〔PROFIBUS 2〕、主系统与备用系统的数据同步通讯链路〔MPI 或PROFIBUS 或Ethernet〕;假设干个ET200M从站,每个从站包括2个IM153-2接口模块和假设干个I/O模块;除此之外,还需要一些相关的附件,用于编程和上位机监控的PC-Adapter〔连接在计算机串口〕或CP5611〔插在主板上的PCI槽上〕或CP5511〔插在笔记本的PCMIA槽里〕、PROFIBUS电缆、PROFIBUS 总线链接器等就可以组成一套完整的软冗余系统。
在软冗余系统进行工作时,A、B控制系统〔处理器,通讯、I/O〕独立运行,由主系统的PLC掌握对ET200从站中的I/O控制权。
A、B 系统中的PLC程序由非冗余用户程序段和冗余用户程序段组成,主系统PLC执行全部的用户程序,备用系统PLC只执行非冗余用户程序段,而跳过冗余用户程序段。
A路与B路CPU的程序需在OB1或OB35里调用FB 101 ‘SWR_ZYK’功能块,FB101块中封装了冗余功能的程序段,实现冗余功能。
调用FB101时,你可以在线地读出RETURN_V AL参数的数值,如果为0,说明冗余链接正常。
主要硬件:(注意冗余要采用有源背板、有源导轨)讯的IM153-2 冗余套件实现ET200M的冗余通讯。
硬件配置:添加两个300站点:A和B ,然后对两个站分别进行硬件配置:1.打开A站2.从硬件目录选择机架3.打开A站的机架,插入电源,插入CPU315-2DP,新建一条DP网络,DP地址为8 如下图:4.插入ET200从站,DP 地址为35.插入CP343-1,新建 Ethernet(1) 网络6 ET200从站中添加I/O模块,硬件组态完成冗余的输出地址为0-11 ,后面设置FC100要用到。
7 两个站的硬件组态要一致。
8.添加网络连接右击A站CPU(B站也行)会出现菜单,选择“添加新连接”(insert new connection),“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,点确定。
就出现下面这个画面,这里边的ID:7 和LADDR十六进制100,也就是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 这里是可以选择的,原来是0001 A050,改为0007 A050,这时的ID 就成了7。
因为资料上说以太网实现冗余一般Local ID 不能小于2(其他方式实现没说),所以要改一下,两个CPU的都要改一致,这个在后边设置FC100参数要用到。
A站配置完成以后,进行B站的配置,注意两个站的配置要一致。
软件的设置1.打开冗余程序库,复制里面所需的数据块到程序块里,采用以太网冗余需要复制SWR_XSEND_3002.调用FC5, FC6 在库Libraries-->SIMATIC_NET_CP-->CP 300里边可以找到。
随便一个位置调用他们,然后删除。
项目的块里就会出现这两个块了。
3.调用IEC定时器块,冗余块里的SFB3 TP是定时器块,IEC定时器分别有SFB3 TP,SFB4TON,SFB5 TOF等,把SFB4复制到项目里。
S7-300 400 PLC 系统软件冗余调试的常见问题问题1:硬件组态需要注意什么?回答:软冗余系统的冗余控制只能通过ET 200M实现,按照图1进行组态。
A、B站的组态必须确保一致,可以拷贝ET200M的组态,在另一站点组态中使用图2所示菜单操作。
图1图2问题2:哪些模块可以支持软冗余?回答:可以通过软冗余手册查询,或参考以下链接的FAQ。
问题3:FC100“SWR_START”中定义的数据区,哪些是冗余数据区?哪些是非冗余数据区?有什么区别?回答:如图3红色区域,冗余同步数据区包括:过程映像输出区/DB/IEC/M;如图3绿色区域,非冗余数据区包括:DB。
冗余数据区,主站的数据会通过冗余链路覆盖到备用站,保证主备之间数据同步;非冗余DB区,无论主备,数据按照定义的A-B B-A方向传递。
注意!无论冗余数据区还是非冗余数据区,A、B站点的长度必须一致。
如果不需要使用,长度定义为0。
图3问题4:软冗余中DB块的影响。
回答:软冗余系统中会使用一些特殊功能的DB块,在FC100“SWR_START”中定义,如图4:图4A:软冗余工作DB,程序会自动生成,不要在项目中手动添加;“DB_SEND_NO”、“DB_RCV_NO”定义的DB,在冗余站两侧一致。
B: FB101“SWR_ZYK”的背景数据块,注意生成DB5的长度。
如果创建出错,CPU能够正常运行但是SF灯报错,诊断缓冲区如图5:图5查看DB5的长度如图6,只有100字节,此时双击打开DB5看不到内部参数,如图7。
可以删除DB5,重新生成FB101“SWR_ZYK”背景数据块。
正常MPI同步-194字节;以太网/PROFIBUS同步-358字节。
图6图7C:冗余DB区,主站的数据随时同步备用站。
需要手动创建,IEC定时器的背景数据块也需要生成,A、B站点长度一致;生成的DB块的长度需要大于2个字(新生成的DB块,内部只有一个INT变量,长度2字节)。
S7-300的软冗余要求从站必须通过有源底板连接。
从站的所有模块需要确保没有故障,即SF灯不亮尤其是通讯模块。
S7-300的软冗余分为三种方式:MPI ,DP ,以太网。
三种冗余方式的通讯速度不同,以太网通讯速度最快,DP通讯速度次之,MPI通讯速度最慢。
不同的通讯方式选择的功能块不相同,具体功能块的选择如图1所示:图1下面以以太网冗余为例,简述冗余过程:(一)插入两个S7-300的站,SIMATIC 300(A) 和SIMATIC 300(B)。
(二)设置A站的IP地址为192.168.0.10 ,B站的地址为192.168.0.20 。
(三) 在A站的块中插入OB100、OB35、OB86组织块,并对其中的OB100、OB35、OB86进行编程。
(四) 在组态网络中新建ISO-ON-TCP链接。
要求ID号要大于2且主从站的ID号一致。
上图为最终效果图,下图为过程(五) 在OB100中我们调用FC100’SWR_START ’进行软冗余的初始化。
FC100’SWR_START 的各个引脚的注释请参照最后的附录调用FC100的位置如图主站设置如左图所示步骤,从站不需要再次设定但需要在从站中给该从站的通讯ID 号与主站相同且大于2。
,图例设置为0007图中1表示为当前CPU 的站号,A 站写A ,B 站写B 。
图中2填写对方的地址,MPI_ADR 表示对方的MPI 地址,LADDR 表示CP 通讯处理器组态的硬件地址,采用PROFIBUS 或Ethernet网络进行数据同步时123 45才有意义,默认值为256不需要更改。
VERB_ID表示网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL Connection、ISO Connection或S7 Connection。
数值要大于2。
DP_MASTER_SYS_ID表示DP主站网络的ID 号,你可以在硬件组态中双击链接ET200M从站紫色的PROFIBUS主从网络,获取该ID值双击。
S7300软冗余调试心得前段时间做了一个S7300软冗余+wincc的设备,cpu是两个315—2dp,各自带一块343-1以太网模块,上位机wincc+1613卡与343通讯,ISO方式,一开始的时候,经常发现cpu冗余失败,后来检查程序感觉没什么不对的地方,就把cpu里面的程序全部清空,重新下载,但是也还是报错了,后来就干脆再次清空,然后把软冗余的几个重要的程序先下载进去,当然参数也同时修改了,下载完发现没问题(这时候跟软冗余例子差不多,当然没问题呵呵),然后一点一点的把冗余部分的程序加进去,并且同时修改冗余参数,下载之前检查两个cpu的参数一致性和程序一致性,直到最后全部下载完,没有遇到什么问题,重新启动一次,ok呵呵。
在wincc里面按照深入浅出里面介绍的办法,在打开一个画面后,使用冗余配置的向导,添加了一条冗余通讯连接,完成后重启,下位机cpu来回切换,上位机画面大约经过10秒钟多一点,成功的切换到另外一台上面。
但是这样存在一个问题,有时候wincc会连接到备用cpu上面去,为了让操作人员更加直观的看到连接情况,将db5.dbx9.2和db5.dbx9.0与db5.dbx9.5做了两个tag显示在画面上,分别注明是Acpu和Bcpu,并且显示当前连接为主机或者备用机,以及通讯正常/失败,并做了一个切换通讯连接的按钮,当当前CPU是备用机,可以手动切换到主机上(这里没做成自动哈哈哈不好意思)。
通过对这个软冗余系统的调试,得出以下结论:如果你的软冗余系统,冗余的程序和数据比较多的时候,最好耐心点,一点一点的把冗余部分的程序加进去,免得出问题,还有就是重新下载程序的话,最好是清空原来的plc,要不然容易出错300软冗余编程我做过一个软冗余系统,硬件与你的类同,只是I/O多一些,有一个远程站,但我确得这个产品与S7 400H硬冗余比较,就是差了,软冗余系统的人机介面(WinCC)它并不会跟随CPU自动切换,工作的CPU没有坏,但可能受到某些干扰它也会切换到另一个CPU中去,我感觉软冗余不是一个好东西(与硬冗余相比较),但还是可以用,你可以参照例程试试,祝你好运!wincc冗余选件请教各位wincc冗余的功能是在安装时选择手动安装将冗余选件打勾即可还是需另外安装一个什么软件,谢谢!在安装时选择手动安装将冗余选件打勾即可触摸屏如何通过双环以太网冗余连接PLC。
实验报告一、目的S7-300软冗余:利用315-2DP的MPI实现软件冗余二、条件及设备软冗余软件,两台S7-315-2DP,PROFIBUS电缆,IM153-2以及有源备板总线。
三、步骤1.运行STEP5.1,插入S7-300 STATION。
2.硬件配置:3.打开EDIT菜单,执行COPY,INSERT REDUNDANCY,生成一新S7-300STATION.编译。
4. 编程:4.1 软冗余需要使用的功能块: 在OB1 或OB35中:FB101(SWR_ZYK:在冗余程序块之前、之后都需调用;一旦调用,自动将数据从主站传递到备用站)。
在OB1或OB35中使用。
例如:CALL FB 101 , DB5 // Call of FB 101 'SWR_ZYK' with instance DBDB_WORK_NO :=DB1 // Work DB for SWRCALL_POSITION:=TRUE // Call_Position = TRUE at begin of redundant programRETURN_VAL :=MW6 // Block return valueEXT_INFO :=MW8 // Extended informationA DB5.DBX 9.1 // Check if station is MasterJC END// redundant user programL 1L MW 20+IT MW 20L 5L MW 100+IT MW 100L MW 100T DB10.DBW 0L DB10.DBW 0T MW 22//redundant user programEND: NOP 0CALL FB 101 , DB5 // Call of FB 101 'SWR_ZYK' with instance DB DB_WORK_NO :=DB1 // Work DB for SWRCALL_POSITION:=FALSE // Call_Position = FALSE at END of redundant programRETURN_VAL :=MW10 // Block return valueEXT_INFO :=MW12 // Extended information在OB100中:FC100(SWR_START,用于在OB100中,初始化两个站,如:外围输出区、位内存地址区、数据块区、静态数据块区;区域必须连续设置;需设置三个数据块用于存储内部数据)。
四种常见品牌冗余PLC方案介绍下面介绍四种经常使用的PLC冗余方案:西门子S7-300(400)软冗余与S7-400H硬冗余、施耐德Quantum硬冗余、罗克韦尔的ControlLogix硬冗余和SLC500软冗余(目前快要停产)、ABB 的AC800M硬冗余方案。
1 西门子冗余方案1.1 西门子S7-300/400软冗余方案:软冗余方案是实现冗余功能的一种低成本解决方案,可以应用于对主备系统切换时间要求不高的控制系统中。
其软件、硬件包括:1套STEP7编程软件(V5.4)加软冗余软件包(V1.2);2套PLC控制器及I/O模块,可以是S7-300或S7-400系统;3条通讯链路,主系统与从站通讯链路(PROFIBUS 1)、备用系统与从站通讯链路(PROFIBUS 2)、主系统与备用系统的数据同步通讯链路(MPI 或PROFIBUS 或Ethernet);若干个ET200M从站,每个从站包括2个IM153-2接口模块和若干个I/O模块;除此之外,还需要一些相关的附件,用于编程和上位机监控的PC-Adapter(连接在计算机串口)或CP5611(插在主板上的PCI槽上)或CP5511(插在笔记本的PCMIA槽里)、PROFIBUS电缆、PROFIBUS总线链接器等就可以组成一套完整的软冗余系统。
在软冗余系统进行工作时,A、B控制系统(处理器,通讯、I/O)独立运行,由主系统的PLC掌握对ET200从站中的I/O控制权。
A、B 系统中的PLC程序由非冗余用户程序段和冗余用户程序段组成,主系统PLC执行全部的用户程序,备用系统PLC只执行非冗余用户程序段,而跳过冗余用户程序段。
A路与B路CPU的程序需在OB1或OB35里调用FB 101 ‘SWR_ZYK’功能块,FB101块中封装了冗余功能的程序段,实现冗余功能。
调用FB101时,你可以在线地读出RETURN_V AL参数的数值,如果为0,说明冗余链接正常。
S7300软冗余CPU选型问题请教
现在手上项目软冗余多起来,原来都是用CPU315-2DP,但以太网方面技术支持说一定要配以太网模块,那种有软冗余功能并内置以太网的(比如说315-2PN/DN)之类的)是不能通过内置的以太网链路冗余,请问是否如此,这是问题一,还有就是我的I/O大部分是远程I/O,接到控制室主控柜里就十几个数字量和几个模拟量,再配两个ET200M有点浪费,请问是否314C-2DP那种集成I/O的CPU也能用于冗余吧,但如果我选最新的314C-2PN/DP(内置以太网和DP)是否实现不了冗余(不加以太网模块)??我的情况就是,需要冗余、需要以太网,CPU又要内置I/O,又最好不要再加以太网模块,貌似有点过分啊
最佳答案
1、至今我所了解的信息是PN的CPU不支持软冗余,可能这个信息以过时,有条件的网友可做一个实验。
如有新的信息网告知大家。
2、转帖典型问题:
问题11:CPU本体的PN口是否可以进行软冗余数据同步。
回答:不行,软件包提供的程序不针对PN口。
摘自:
SIEMENSPLC系统软件冗余调试的常见问题:
/download/Upload/AS/faq/F046 2.pdf。
S7-300软冗余调试总结我用的软硬件配置:概述:本系统2个315-2DP CPU通过CP343-1连接到以太网互换机实现冗余链路,用DP通信的IM153-2 冗余套件实现ET200M的冗余通信,CP1612SIEMENS以太网卡连接到互换机实现WINCC与冗余系统的通信(听说能够直接用运算机网卡实现)。
下面介绍我整理后的实现进程:硬件配置:先添加两个站A站和B站,每一个站单独进行配置,硬件配置完后,需要增加一个冗余连接,这需要打开“网络配置”(configure network),在里边右击A站CPU(B站也行)会显现菜单,选择“添加新连接”(insert new connection),假设是两个站都配置过,这是就会显现B站的信息,而且默许已经选在了B站CPU上,你需要做的确实是在下边选择“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,那个地址依照自己需要的类型选择就行,点OK,就显现下面那个画面,那个地址边的ID:7 和LADDR十六进制100,也确实是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 那个地址是能够选择的,原先是0001 A050,被我改成了0007 A050,这时的ID就成了7。
因为资料上说以太网实现冗余一样Local ID 不能小于2(其他方式实现没说),因此要改一下,两个CPU的都要改一致,那个在后边设置FC100参数要用到,如此就成立了一个新的连接,在界面的下方能看到一个连接显现,另外需要注意的是假设是用DP冗余I/O那么ET200M必需两个站里都要做,而且要一模一样,DP 地址也一样。
另一个需要注意的是输出地址必需持续,那个一样的时候假设是有模拟量数字量混合的话,容易不持续,需要修改一下,改成持续的,比如我那个地址Q改成0~9,那个在后边FC100设置也要用。
硬件配置需要注意的就这些。
软件实现:要实现软冗余,需要在OB100中挪用FC100“SWR_START”,用于初始化冗余,再在OB35中挪用FB101“SWR_ZYK”来实现冗余程序和数据的同步,然后再OB86中挪用FC102“SWR_DIAG”进行诊断,那个诊断挪用必需得做。
S7-300软冗余系统调试心得S7-300软冗余系统调试心得集成工程部张宏伟1 基本结构及工作原理1.1 基本结构硬件结构包括一对S7-300控制器及I/O、ET200从站(每个从站必须包括2个IM153-2和对应的I/O模块,必须采用有源端子板)及3个通讯(A站对分布式IO PROFIBUS-A、B站对分布式IO PROFIBUS-B、A站对B站数据同步(MPI\PROFIBUS\Ethernet))。
软件需要STEP7 V5.x 及软冗余软件包V1.x基本结构如下图所示:图1.1 S7-300软冗余基本结构由上图可以看出,软冗余可以实现的冗余有主机架电源及总线冗余控制器冗余现场总线冗余1.2 工作原理在软冗余系统进行工作时,A、B控制系统(CPU、通讯、I/O)独立运行,有主系统的PLC 掌握对ET200从站的I/O控制权。
A、B 系统中的PLC程序有非冗余用户程序段和冗余用户程序段组成,CPU 在执行冗余程序段之前会读取系统的冗余状况,若为主系统则PLC执行全部程序,若为备用系统则跳过冗余程序段只执行非冗余用户程序。
图1.2 软冗余工作流程1.3 程序结构对于硬件组态,可采用西门子提供的冗余模板,修改CPU信号并添加ET200从站,比较简单,没有什么特别的地方,这里就不再赘述。
S7-300软冗余系统的用户程序包括非冗余程序段、用户程序段、系统诊断功能块、站间冗余数据备份等组成,一般建议将非冗余程序段写到OB1中,而冗余程序段写在OB35中。
非冗余程序段和冗余程序段与普通系统的写法一样,区别只是放置的位置不同。
在编制冗余程序的时候需要先调用FB 101 功能块,用来判断整个系统的冗余状况,在FB101 的背景DB块中可以读取到冗余连接状况和标志位。
利用冗余标志位来选择执行或者不执行冗余程序段。
因此编制冗余程序可分为4部分,如下图所示:图 1.3 软冗余程序结构首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
西门子300软冗余硬件配置工程业主要求实现电源、cpu、network冗余,还要留dp 口跟业主dcs通讯。
目前考虑做成软冗余的形式,硬件配置如下:2个315-2dpcpudp口带下面et200m的从站,数据同步用的mpi口,两个cpu各自带一个cp343-1模块通过交换机跟wincc通讯,现在的问题是:1、如何实现留dp口跟业主通讯,需要加两个cp342-5模块吗?2、如果cpu用315-2pn/dp,通过交换机能否同时实现数据同步和跟wincc通讯这两种功能?如果能,跟现有方案相比性价比如何?问题补充:1.业主是profibus-dp通讯,需要为每个cpu都配置一个cp342-5模块是吗?2.若采用315-2pn/dp,pn口用作wincc通讯,dp口用作数据同步,从站如何连接呢,势必还要再加两个cp342-5吧最佳答案1、如何实现留dp口跟业主通讯,需要加两个cp342-5模块吗?业主dcs通讯采用什么协议?、如果采用modbus的dcs需要配置cp341及modbus的驱动(硬狗),详见:《做主站s7-300cp341做从站的modbusrtu通讯》下载:/download/upload/as/application /a0451.pdf、如果采用profibus-dp的dcs,你的dp口以占用,需要配置cp342-5。
2、如果cpu用315-2pn/dp,通过交换机能否同时实现数据同步和跟wincc通讯这两种功能?如果能,跟现有方案相比性价比如何?转帖一个典型的问题:cpu本体的pn口是否可以进行软冗余数据同步。
回答:不行,软件包提供的程序不针对pn口。
详见:《siemensplc系统软件冗余调试的常见问题》连接:/download/upload/as/faq/f0462. pdf。
PLC系统软件冗余的说明与实现软件冗余基本信息介绍软件冗余是Siemens实现冗余功能的一种低成本解决方案,可以应用于对主备系统切换时间要求不高的控制系统中。
A.系统结构Siemens软件冗余系统的软件、硬件包括:1套STEP7编程软件(V5.x)加软冗余软件包(V1.x);2套PLC控制器及I/O模块,可以是S7-300或S7-400系统;3条通讯链路,主系统与从站通讯链路(PROFIBUS 1)、备用系统与从站通讯链路(PROFIBUS 2)、主系统与备用系统的数据同步通讯链路(MPI 或 PROFIBUS 或 Ethernet);若干个ET200M从站,每个从站包括2个IM153-2接口模块和若干个I/O模块;除此之外,还需要一些相关的附件,用于编程和上位机监控的PC-Adapter(连接在计算机串口)或CP5611(插在主板上的PCI槽上)或CP5511(插在笔记本的PCMIA槽里)、PROFIBUS电缆、PROFIBUS总线链接器等;下图说明了软冗余系统的基本结构:图2可以看出,系统是由两套独立的S7-300或S7-400 PLC系统组成,软冗余能够实现:I.主机架电源、背板总线等冗余;II.PLC处理器冗余;III.PROFIBUS现场总线网络冗余(包括通讯接口、总线接头、总线电缆的冗余);IV.ET200M站的通讯接口模块IM153-2冗余。
软冗余系统由A和B两套PLC控制系统组成。
开始时,A系统为主,B系统为备用,当主系统A中的任何一个组件出错,控制任务会自动切换到备用系统B当中执行,这时,B系统为主,A系统为备用,这种切换过程是包括电源、CPU、通讯电缆和IM153接口模块的整体切换。
系统运行过程中,即使没有任何组件出错,操作人员也可以通过设定控制字,实现手动的主备系统切换,这种手动切换过程,对于控制系统的软硬件调整,更换,扩容非常有用,即Altering Configuration and Application Program in RUN Mode 。
B.系统工作原理在软冗余系统进行工作时,A、B控制系统(处理器,通讯、I/O)独立运行,由主系统的PLC掌握对ET200从站中的I/O控制权。
A、B系统中的PLC程序由非冗余(non-duplicated)用户程序段和冗余(redundant backup)用户程序段组成,主系统PLC执行全部的用户程序,备用系统PLC只执行非冗余用户程序段,而跳过冗余用户程序段。
下面我们看一下软冗余系统中PLC内部的运行过程:图3主系统的CPU将数据同步到备用系统的CPU需要几个程序扫描循环:图4数据同步所需要的时间取决于同步数据量的大小和同步所采用的网络方式(图2中的紫色网络线),MPI方式周期最长,PROFIBUS方式适中,Ethernet网方式最快。
PROFIBUS 网络1.5 Mbaud Ethernet 以太网10 MBaudMPI网络187.5 kBaud每60ms传送240个字节数据每48ms传送 240个字节数据每152ms传送76个字节数据用户需要在初始化程序中(OB100)定义冗余部分的数据区,该数据区可以包括:一个过程映象区(process image area),一个定时器区(IEC timer area),一个计数器区(IEC counter area),一个位地址区(memory address area)和一个数据块区(data block area),S7-300同步的最大数据量为8 kBytes,S7-400同步的最大数据量64kBytes。
主备系统的切换时间 = 故障诊断检测时间 + 同步数据传输时间 + DP从站切换时间如果CPU的故障是停机或断电,则故障诊断为大约100-1000毫秒,315-2DP同步1000字节的数据所需的时间大约为200-300ms,8个DP从站的切换时间在100ms左右。
您可以在软冗余手册当中找到关于切换时间的具体说明。
无论控制程序循环扫描到哪里,当前激活的系统(即主系统)随时都会接收并处理报警,这样,在主系统A与备用系统B进行切换过程中产生的alarm存在被丢失的可能。
C.产品订货信息如下给软冗余系统相关产品的订货信息:注:1.只有S7-300 315-2DP(除CPU314C-2DP、CPU313C-2DP)型号以上的PLC才支持软冗余功能,所有的S7-400都支持软冗余功能;2.主系统与备用系统的CPU型号可以不同,如主系统采用一套S7-400系统,而备用系统采用一套S7-300系统;软冗余系统的调试过程在您的计算机上首先安装STEP7 5.x软件和软冗余软件包,软冗余软件光盘包括了冗余功能程序块库、不同系统结构的例子程序和软冗余使用手册。
I.不同系统结构方式下的功能块:在安装完软冗余的软件后,您可以在STEP7当中找到例子程序和功能程序块库:图5图6以上图5显示的是在STEP7中使用OPEN菜单打开软冗余的例子程序,例子程序中采用MPI链路实现数据的同步。
图6显示在安装完软冗余软件后,您可以在Libraries找到不同CPU以及不同链接方式下可以使用的功能块。
下面的两个表格分别说明了采用S7-300,S7-400进行软件冗余时,可采用的不同网络连接以及所需调用的程序功能块包。
表3从以上的表格中可以看到,软冗余系统当中可以采用MPI、PROFIBUS、Ethernet三种网络实现主系统和备用系统之间的数据同步(Redundant-backup link)。
采用BSEND_400包中的功能块进行数据同步时,无论数据同步的连接是什么方式,都需要在STEP7的NETPRO窗口中组态一个 S7 Connection。
除了BSEND_400中之外,使用其他功能库中的程序块:•采用MPI网络时,直接使用PLC的编程口进行数据同步,不需要进行连接(Connection)的组态,但MPI数据同步的效率低。
•采用PROFIBUS网络时,需要使用一对CP通讯卡(CP342-5或CP443-5),在STEP7的NETPRO窗口中组态主系统和备用系统之间的FDL连接。
•采用Ethernet网络时,需要使用一对CP通讯卡(CP343-1或CP443-1),在NETPRO窗口中组态主系统和备用系统之间的ISO连接。
名称描述FC 100 ‘SWR_START’初始化程序块,定义系统运行的参数。
FB 101 ‘SWR_ZYK’循环调用的数据同步功能块,将主系统中的冗余数据复制到备用系统当中FC 102 ‘SWR_DIAG’诊断功能块,在OB86中调用,将得到的诊断数据提供给FB101使用。
注:1。
采用PROFIBUS或Ethernet方式进行数据同步时,需要在OB100当中调用FB101,而FB101内部调用了FB104、FC5、FC6,所以您必须手动地将FB104、FC5、FC6插入到项目当中,插入的方法是:在程序中调用一次,再将这条语句删掉。
2.在OB100中调用FC100功能块时,PLC会自动创建一些与FC100参数相关的程序段和数据块,所以当你更改了FC100的参数时,应该对PLC进行Reset操作,再重新下载项目的软硬件到PLC 当中。
II.创建一个应用实例:附件中我们给出了一个例子项目,由两套315-2DP和一个ET200M从站组成,系统结构如下:图7除了实现冗余功能的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,存盘编译网络组态。
系统的网络结构如下:图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等组织块,并对其中的OB100、OB35、OB86进行编程。
6.在OB100中我们调用FC 100 ‘SWR_START’进行软冗余的初始化,有几个参数需要特别注意,LADDR应当和CP342-5的硬件地址相一致,例子程序为256,VERB_ID必须和你在NETPRO中创建的FDL链路的ID号一致,例子程序为1,DB_COM_NO为系统中未使用的数据块,建议仍采用DB5。
如下表格给出了FC100功能块参数的说明和例子,供您编程参考:参数名数据类型描述例子AG_KENNUNG字符型A站应当填‘A’‘A’B站应当填‘B’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 17.一般我们建议您将您的非冗余程序段编写在OB1当中,而将冗余程序段编写在OB35当中,我们这里使用的是OB35的默认属性,即每100ms中断触发一次,您可以根据实际的需要在CPU属性中修改中断的时间间隔。