s7-300软冗余手册讲解学习
- 格式:doc
- 大小:1.77 MB
- 文档页数:14
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 软冗余程序结构首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
业精于2-1、S7-300 PLC应用软件西门子S7-300 PLC的应用软件可以分为两个家族:STEP7系列安装完成并重新启动计算机,“SIMATIC Manager(SIMATIC管理器)”的图标将显示在Windows桌面上。
以后双击该图标即可启动STEP7软件。
2-1、S7-300 PLC应用软件西门子公司为了增强STEP7 V5版本的软件功能,还开发了一些外挂软件包,这些软件安装后都可以由2-1、S7-300 PLC应用软件STEP7 V5.5软件(包括外挂软件包)安装以后,必须经过正确的授权才能工作,授权密钥由西门子公司有偿2-1、S7-300 PLC应用软件STEP7实质上是一个集成的开发工具,其内部包含了很多的应用程序,在应用过程中,需要打开不同的窗口来2-2、STEP7 V5.5应用2-2、STEP7 V5.5应用西门子S7-300型PLC在应用之前,必须进行硬件组态才能使用。
硬件组态的目的是为S7-300型PLC中的硬2-2-1、通过向导组态(1)双击图标,启动SIMATIC manager,第一次启动的时候,会自动打开向导界面。
2-2-1、通过向导组态(2)点击“下一步”,选择CPU型号,本次使用的CPU 模块是CPU-314C-2DP,订货号为6ES7 314-6CG03-2-2-1、通过向导组态(3)点击“下一步”,为S7-300插入程序块。
OB1是主程序,自动出现,OB100是初始化程序,初学的时候先2-2-1、通过向导组态(4)点击“下一步”,项目选择一个名称,并选择保存路径,然后点击“完成”,就实现了项目的硬件组态的基2-2-2、自由组态(1)双击图标,启动SIMATIC manager,在出现向导界面的时候点击取消,向导界面会消失。
如果以前已经2-2-2、自由组态(2)在新的项目管理器(SIMATIC Manager)界面中选择“文件”→“新建”或点击“新建项目/库”图标,打开2-2-2、自由组态新项目的名称输入完成后,点击“确定”,将打开新项目的工作界面。
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字节)。
主要硬件:(注意冗余要采用有源背板、有源导轨)本控制柜采用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复制到项目里。
西门⼦S7-300学习资料S7-300学习笔记第⼀讲:S7-300简介⼀、标准型S7-300的硬件结构1.S7-300为标准模块式结构,各种模块相互独⽴,并安装在固定的机架(导轨)上,构成⼀个完整的PLC应⽤系统。
2.第⼀槽为电源模块,第⼆槽为CPU模块,第三槽为通信模。
3.300电源模块(PS)可⽤其它开关电源代替,⽽400必须选⽤原装模块⼆、S7-300 CPU模块1.CPU模块分类1)300PLC可分为紧凑型.标准型.⾰新型.户外型.故障安全型和特种型CPU2)C表⽰紧凑型.F故障安全型T表⽰特种型2.S7-300 CPU的主要特点3.S7-300 CPU状态故障显⽰1)SF(红⾊):系统出错/故障指⽰灯,硬件或软件出错时亮2)BATF(红⾊) :电池故障指⽰灯,没电或没有装⼊电池时亮.314和316有.故障时不影响CPU⼯作3)DC5V(绿⾊) :5V电源指⽰灯,总线5V电源正常时常亮4)FRCE(黄⾊) :强制作业有效指⽰灯,有强制时亮5)RUN(绿⾊) :运⾏指⽰灯.处于RUN时亮,在STARTUP(启动)时以2HZ闪烁,在HOLD(暂停)时0.5HZ闪烁6)STOP(黄⾊) :CPU处于STARTUP. HOLD.时常亮,在存储器复位时0.5HZ闪.在存储器置位时以2HZ闪烁.7)BUS DF(BF)(红⾊) :总线出错时亮,(只适⽤于带有DP接⼝的CPU).8)SF DP:接⼝错误指⽰灯,DP接⼝故障时亮三、S7-300 PLC功能1.⾼速的指令处理:0.1-0.6us的指令处理时间2.⼈机界⾯(HMI):⼈机界⾯集成在S7-300操作系统内3.诊断功能:CPU的智能化的诊断系统可连续监控系统的功能是否正常,记录错误和特殊的系统事件4.⼝令保护:多级⼝令保护可以使⽤户⾼度、有效的保护其技术机密,防⽌未经允许的复制和修改四、S7-300 模块PS电源模块、IM接⼝模块(360发送361接收)、FM功能模块、SM信号模块。
实验报告一、目的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中,初始化两个站,如:外围输出区、位内存地址区、数据块区、静态数据块区;区域必须连续设置;需设置三个数据块用于存储内部数据)。
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的软冗余要求从站必须通过有源底板连接。
从站的所有模块需要确保没有故障,即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。
,图
1
2
3
4
5
图中1表示为当前CPU的站号,A站写A,B站写B。
图中2填写对方的地址,MPI_ADR表示对方的MPI地址,LADDR表示CP通讯处理器组态的硬件地址,采用PROFIBUS或Ethernet网络进行数据同
步时才有意义,默认值为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进行下载。
D.
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各引脚的含义。