S7-300软冗余系统调试心得
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图2.4“S7 basic communication”连接资源设置方法
注意仅在启动时,由FC 100 'SWR_START'按照所需长度一次性生成上述数据块(DB_COM_NO除外)。完成对FC 100 'SWR_START'参数的修改之后,通常也需要编辑此数据块。更改FC100 'SWR_START'的参数设置后,必须重新启动CPU,因为如果更改了区域长度,发送DB和接收DB将有新的长度,因此必须重新生成。
注意4:非冗余数据区创建的长度必须是偶数字节,不能是奇数字节,A、B站点长度一致。否则,CPU停机。
图2.1数据冗余设置
3.2
软冗余工作DB(DB1、DB2、DB3),程序会自动生成,不要在项目中手动添加。
FB101“SWR_ZYK”的背景数据块DB5,注意生成DB5的长度。正常MPI同步-194字节;以太网/PROFIBUS同步-358字节。
下载方式错误,没有清空程序;
连接资源问题“S7 basic communication”只有一个;
OB100中调用的FC100,AB站标识错误,修改参数后没有重新生成DB块;
冗余DB块部分长度没有更改只有2个字节;
非冗余DB块长度太短,只有2个字节;
非冗余DB块长度为奇数。
S7-300软冗余系统在调试的时候一定要注意本文第二节中粗体描出的注意事项,要一项一项对防止出错,否则调试的时候会很麻烦。如果实在调不出来而系统冗余的程序和数据比较多的时候,最好耐心点,一点一点的把冗余部分的程序加进去;还有就是重新下载程序的话,最好是采用第二种方法下载,要不然容易出错。
图2.2同步方式信道设置
图中:
“MPI_ADR”表示对方的MPI地址,对于MPI同步有效;“LADDR”
“VERB_ID”对于PROFIBUS/ETHERENT同步有效,分别代表同步CP的硬件地
址和连接号。
图2.3 LADDR获得方式
注意:选择MPI同步,冗余程序块会调用SFC65“X_SEND”和SFC66“X_REV”进行数据同步,占用S7-300 CPU的2个“S7 basic communication”连接资源,要确保在组态中预留足够的资源,否则会因为连接资源不够影响同步链路的通讯。
第二种方法:
选中“程序块”,选择菜单"PLC——>Download User Program to Memory Card"选项进行下载(删除MMC卡中所有的块,并把新的程序写到卡中,同时对CPU RAM进行一次复位)
3.3
从前面我们可以了解到S7-300软冗余的同步以通讯方式来分有三种,分别为MPI、PROFIBUS DP、Ethernet,根据不同的同步方式在FC100“SWR_START”的参数设置也是不一样的,如下图所示
由于冗余系统一旦启动就会自动生成工作DB块(DB1、DB2、DB3、DB5),DB5存储在EPROM中,因此在之后的运行中这些信息将不会被改变(包括程序下载后再次重启过程),因此修改参数后必须删除已生成旧的DB块,否则会导致CPU故障。方法如下:
第一种方法:
1.打开项目在线窗口——>2.删除所有程序块,——>3.重新下载块——>4.对CPU进行存储器复位操作。
图1.5软冗余控制字
表1软冗余系统用到的一些功能块
注意1:冗余程序段中不能使用S7的定时器和计数器,只能使用IEC定时器,原因是在冗余数据同步的时候无法对S7的定时器和计数器进行同步,从而导致系统执行时存在问题。
注意2:可以通过写控制字的对应位,对冗余系统进行手动切换,方便调试。
注意3:由于S7-300软冗余系统控制器切换时间远小于操作站通讯卡的切换时间,导致现场会发生控制器切换但通讯未切换的问题,用户将只能看到而无法操作数据,在发生紧急状况时造成不良后果,因此可以提取状态字并在画面中显示提示用户做通讯卡切换。
2
软冗余的调试中有很多陷阱,容易误导、犯错,,导致系统无法运行,下面将结合西山煤电项目调试过程中出现的一些调试问题,一一列举。
3.1
在FC100“SWR_START”功能块中定义了冗余同步数据区包括:过程映像输出区/DB/IEC/M;非冗余数据区包括:DB。冗余数据区,主站的数据会通过冗余链路覆盖到备用站,保证主备之间数据同步;非冗余DB区,不要手动创建,程序自动生成;无论主备,数据按照定义的A-B B-A方向传递。
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))。
注意1:无论冗余数据区还是非冗余数据区,A、B站点的长度必须一致。如果不需要使用,长度定义为0。
注意2:冗余数据区DB块定义可以不连续,但是只要定义了,单个数据区的长度必须大于2(默认空DB块长度为1个INT=2)
注意3:非冗余数据区A-B B-A的DB必须同时使用,不能只有一个方向的(A-B 0 BYTE ,B-A 100Байду номын сангаасYTE -----B STOP;B-A 0 BYTE ,A-B 100BYTE -----A STOP)。否则,CPU停机。
注意:ET200M的两个IM153同时掉电,两个CPU都处于PROFIBUS故障状态,系统无法识别此时的主站,软冗余系统会处于错误状态,所以建议两个IM153模块使用不同的电源供电。
首先,我们一起来看一个现象,如图1所示,此时冗余系统A为主站,B为备用站,通过状态字可以看到此时冗余系统正常,CPU停止/运行测试,状态字也可以切换,ET200M状态如图2。
图1.3软冗余程序结构
首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
在线监控中,FB 101的RETURN_VAL若为0,则说明系统冗余正常,若为8015则说明数据同步不成功。
冗余系统控制字和状态字如下图所示
图1.4软冗余状态字
图1
图2
此时,如果人为模拟DP总线故障(比如拔掉一侧的电缆),我们首先来看ET200M的状态,如图3
图3
可以看到,“ACT”的灯顺利的切到了B站,此时给人的印象就是当DP出现故障时系统能够自动切换到了另一侧,调试大功告成了!可是,此时的现象恰恰是一种假象,我们来看此时系统的状态字,如图4,状态字并没有切换,仍然认为B是主站,所以此时硬件虽然切换了,但是实际的控制并没有切换。此时冗余系统处于一种混乱的状态。
图1.2软冗余工作流程
1.3
对于硬件组态,可采用西门子提供的冗余模板,修改CPU信号并添加ET200从站,比较简单,没有什么特别的地方,这里就不再赘述。
S7-300软冗余系统的用户程序包括非冗余程序段、用户程序段、系统诊断功能块、站间冗余数据备份等组成,一般建议将非冗余程序段写到OB1中,而冗余程序段写在OB35中。非冗余程序段和冗余程序段与普通系统的写法一样,区别只是放置的位置不同。在编制冗余程序的时候需要先调用FB 101功能块,用来判断整个系统的冗余状况,在FB101的背景DB块中可以读取到冗余连接状况和标志位。利用冗余标志位来选择执行或者不执行冗余程序段。因此编制冗余程序可分为4部分,如下图所示:
图4
所以说,这就是OB86中的FC102的重要作用,见图5,DP网络的故障是通过FC102监测到的,如果一时粗心没有在OB86中调用它,那很自然就会出现上面那种问题!
图5
最后总结一下,软冗余调试,不要仅仅通过IM153外部的“ACT”指示灯判断是否切换成功,一定要同时结合系统的状态字!
3
在西山煤电输煤项目上出现过的上述问题有:
软件需要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执行全部程序,若为备用系统则跳过冗余程序段只执行非冗余用户程序。
注意仅在启动时,由FC 100 'SWR_START'按照所需长度一次性生成上述数据块(DB_COM_NO除外)。完成对FC 100 'SWR_START'参数的修改之后,通常也需要编辑此数据块。更改FC100 'SWR_START'的参数设置后,必须重新启动CPU,因为如果更改了区域长度,发送DB和接收DB将有新的长度,因此必须重新生成。
注意4:非冗余数据区创建的长度必须是偶数字节,不能是奇数字节,A、B站点长度一致。否则,CPU停机。
图2.1数据冗余设置
3.2
软冗余工作DB(DB1、DB2、DB3),程序会自动生成,不要在项目中手动添加。
FB101“SWR_ZYK”的背景数据块DB5,注意生成DB5的长度。正常MPI同步-194字节;以太网/PROFIBUS同步-358字节。
下载方式错误,没有清空程序;
连接资源问题“S7 basic communication”只有一个;
OB100中调用的FC100,AB站标识错误,修改参数后没有重新生成DB块;
冗余DB块部分长度没有更改只有2个字节;
非冗余DB块长度太短,只有2个字节;
非冗余DB块长度为奇数。
S7-300软冗余系统在调试的时候一定要注意本文第二节中粗体描出的注意事项,要一项一项对防止出错,否则调试的时候会很麻烦。如果实在调不出来而系统冗余的程序和数据比较多的时候,最好耐心点,一点一点的把冗余部分的程序加进去;还有就是重新下载程序的话,最好是采用第二种方法下载,要不然容易出错。
图2.2同步方式信道设置
图中:
“MPI_ADR”表示对方的MPI地址,对于MPI同步有效;“LADDR”
“VERB_ID”对于PROFIBUS/ETHERENT同步有效,分别代表同步CP的硬件地
址和连接号。
图2.3 LADDR获得方式
注意:选择MPI同步,冗余程序块会调用SFC65“X_SEND”和SFC66“X_REV”进行数据同步,占用S7-300 CPU的2个“S7 basic communication”连接资源,要确保在组态中预留足够的资源,否则会因为连接资源不够影响同步链路的通讯。
第二种方法:
选中“程序块”,选择菜单"PLC——>Download User Program to Memory Card"选项进行下载(删除MMC卡中所有的块,并把新的程序写到卡中,同时对CPU RAM进行一次复位)
3.3
从前面我们可以了解到S7-300软冗余的同步以通讯方式来分有三种,分别为MPI、PROFIBUS DP、Ethernet,根据不同的同步方式在FC100“SWR_START”的参数设置也是不一样的,如下图所示
由于冗余系统一旦启动就会自动生成工作DB块(DB1、DB2、DB3、DB5),DB5存储在EPROM中,因此在之后的运行中这些信息将不会被改变(包括程序下载后再次重启过程),因此修改参数后必须删除已生成旧的DB块,否则会导致CPU故障。方法如下:
第一种方法:
1.打开项目在线窗口——>2.删除所有程序块,——>3.重新下载块——>4.对CPU进行存储器复位操作。
图1.5软冗余控制字
表1软冗余系统用到的一些功能块
注意1:冗余程序段中不能使用S7的定时器和计数器,只能使用IEC定时器,原因是在冗余数据同步的时候无法对S7的定时器和计数器进行同步,从而导致系统执行时存在问题。
注意2:可以通过写控制字的对应位,对冗余系统进行手动切换,方便调试。
注意3:由于S7-300软冗余系统控制器切换时间远小于操作站通讯卡的切换时间,导致现场会发生控制器切换但通讯未切换的问题,用户将只能看到而无法操作数据,在发生紧急状况时造成不良后果,因此可以提取状态字并在画面中显示提示用户做通讯卡切换。
2
软冗余的调试中有很多陷阱,容易误导、犯错,,导致系统无法运行,下面将结合西山煤电项目调试过程中出现的一些调试问题,一一列举。
3.1
在FC100“SWR_START”功能块中定义了冗余同步数据区包括:过程映像输出区/DB/IEC/M;非冗余数据区包括:DB。冗余数据区,主站的数据会通过冗余链路覆盖到备用站,保证主备之间数据同步;非冗余DB区,不要手动创建,程序自动生成;无论主备,数据按照定义的A-B B-A方向传递。
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))。
注意1:无论冗余数据区还是非冗余数据区,A、B站点的长度必须一致。如果不需要使用,长度定义为0。
注意2:冗余数据区DB块定义可以不连续,但是只要定义了,单个数据区的长度必须大于2(默认空DB块长度为1个INT=2)
注意3:非冗余数据区A-B B-A的DB必须同时使用,不能只有一个方向的(A-B 0 BYTE ,B-A 100Байду номын сангаасYTE -----B STOP;B-A 0 BYTE ,A-B 100BYTE -----A STOP)。否则,CPU停机。
注意:ET200M的两个IM153同时掉电,两个CPU都处于PROFIBUS故障状态,系统无法识别此时的主站,软冗余系统会处于错误状态,所以建议两个IM153模块使用不同的电源供电。
首先,我们一起来看一个现象,如图1所示,此时冗余系统A为主站,B为备用站,通过状态字可以看到此时冗余系统正常,CPU停止/运行测试,状态字也可以切换,ET200M状态如图2。
图1.3软冗余程序结构
首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
在线监控中,FB 101的RETURN_VAL若为0,则说明系统冗余正常,若为8015则说明数据同步不成功。
冗余系统控制字和状态字如下图所示
图1.4软冗余状态字
图1
图2
此时,如果人为模拟DP总线故障(比如拔掉一侧的电缆),我们首先来看ET200M的状态,如图3
图3
可以看到,“ACT”的灯顺利的切到了B站,此时给人的印象就是当DP出现故障时系统能够自动切换到了另一侧,调试大功告成了!可是,此时的现象恰恰是一种假象,我们来看此时系统的状态字,如图4,状态字并没有切换,仍然认为B是主站,所以此时硬件虽然切换了,但是实际的控制并没有切换。此时冗余系统处于一种混乱的状态。
图1.2软冗余工作流程
1.3
对于硬件组态,可采用西门子提供的冗余模板,修改CPU信号并添加ET200从站,比较简单,没有什么特别的地方,这里就不再赘述。
S7-300软冗余系统的用户程序包括非冗余程序段、用户程序段、系统诊断功能块、站间冗余数据备份等组成,一般建议将非冗余程序段写到OB1中,而冗余程序段写在OB35中。非冗余程序段和冗余程序段与普通系统的写法一样,区别只是放置的位置不同。在编制冗余程序的时候需要先调用FB 101功能块,用来判断整个系统的冗余状况,在FB101的背景DB块中可以读取到冗余连接状况和标志位。利用冗余标志位来选择执行或者不执行冗余程序段。因此编制冗余程序可分为4部分,如下图所示:
图4
所以说,这就是OB86中的FC102的重要作用,见图5,DP网络的故障是通过FC102监测到的,如果一时粗心没有在OB86中调用它,那很自然就会出现上面那种问题!
图5
最后总结一下,软冗余调试,不要仅仅通过IM153外部的“ACT”指示灯判断是否切换成功,一定要同时结合系统的状态字!
3
在西山煤电输煤项目上出现过的上述问题有:
软件需要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执行全部程序,若为备用系统则跳过冗余程序段只执行非冗余用户程序。