s7-300软冗余手册
- 格式:doc
- 大小:1.57 MB
- 文档页数:13
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 软冗余程序结构首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
主要硬件:(注意冗余要采用有源背板、有源导轨)讯的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,说明冗余链接正常。
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字节)。
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 。
主要硬件:(注意冗余要采用有源背板、有源导轨)本控制柜采用2个315-2DP CPU通过CP343-1连接到以太网交换机实现冗余链路,用DP通讯的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系统软件冗余的说明与实现朱震忠SIEMENS A&D CS2004-04-06首先我们建议您访问siemens A&D公司的技术支持网站:www4.ad.siemens.de在检索窗口中键入相关产品或问题的 关键字,获取关于产品或问题的详细信息和手册。
图1软件冗余基本信息介绍软件冗余是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接口模块的整体切换。
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
网络进行数据同步时
1
2
3 4
5
才有意义,默认值为256不需要更改。
VERB_ID表示网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL Connection、ISO Connection或S7 Connection。
数值要大于2。
DP_MASTER_SYS_ID表示DP主站网络的ID 号,你可以在硬件组态中双击链接ET200M从站紫色的PROFIBUS主从网络,获取该ID值
双击。
图中3填写输出模块(DO..AO)总的起始地址和最终地址。
地址必须是连续的,中间不能含有没有定义的地址。
图中4填写冗余的M、计时器背景数据块、DB数据块的起始地址和长度。
数据必须是连续的,且冗余的DB块的数据不得小于2个字节。
图中5填写ET200从站的起始地址和个数。
表中需要注意的事项;
i. 冗余的DB块中数据必须大于2个字节,否则冗余会报错。
ii. 模块的输出DO,AO必须为连续的地址,冗余初始化中的输出中不能有无效地址。
iii. 上表中的DB1,DB2,DB3数据块不需要人工创建,下载程序时CPU会自动创建数据块。
iv.更改OB100中的FC100程序时,需要清空CPU 内的所有程序。
清空的方式为在线删除块内的所有数据。
v. 非冗余的DB块需要手动创建,数据必须大于2个字节。
(六) 一般我们建议您将您的非冗余程序段编写在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个部分。
(七)在OB86中调用诊断功能块FC 102 ‘SWR_DIAG’,当系统出现PROFIBUS总线错误时,该功能块返回诊断信息,供FB101使用。
(八)插入FB101内部调用的FB104,FC5、FC6等功能块,将所有的程序块下载到PLC当中。
备注
A.在使用MPI进行冗余通讯时不需要建立任何通讯连接,只需将通讯
线接好即可。
B.在使用以太网进行通讯时需要建立通讯连接。
注意,图中的ID号不
能小于2且主站和备站的ID号相同。
通讯时选择的通讯方式如图中
的Type。
组态完成后需要将主动连接的CPU进行下载。
C.在使用DP进行冗余通讯时需要建立通讯连接,连接类型选择FDL。
通讯连接建立后需要将主动连接的站的CPU进行下载。
S7-300软冗余时的wincc连接设置(以太网通讯)
1.建立变量,按照正常非冗余的方式建立。
2.建立冗余连接。
打开任意一个编辑画面,在动态向导中的系统函数中选
择创建冗余连接如图
,
选择主用的连接如图,选择的是SXYC。
设置备用的连接如图
3.在全局脚本中添加脚本
MSRTCreateMsg( ServiceID, &MsgCreate, &Error );
}
}
}
if ( ServiceID != 0 )
{ MSRTStopMsgService ( ServiceID, &Error );
}
if ( GetTagDWordWait( "@SXYC@ConnectionState" ) == 0 )
{ SetTagDWord( "@SXYC@ForceConnectionState", 1 );
}
else
{ if ( GetTagBitWait( "SWR_wincc.Standby" ) == TRUE )
{ SetTagDWord( "@SXYC@ForceConnectionState", 0 );
}
}
return 1;
只需要紫色的C语言这其中的几个变量"@SXYC@ConnectionState", "@SXYC@ForceConnectionState"这两个变量在前边说到的@SW变量组里边有。
其中的SW是连接的名字,需要对应上自己前边建的连接的名字。
"SWR_wincc.Standby"这个变量就是FB101冗余程序块的背景数据块中的变量DB***.DBX9.1,这个变量是手动建立的,名称也可以自己设定,***是在PLC 冗余程序中调用冗余程序时自己设定的背景数据块号,我用的是DB5,所以我这里变量就连接DB5.DBX9.1这个数据位。
附录
FC100各引脚的含义。