S7300软冗余调试总结.doc

上传人:仙人指路1688 文档编号:4137659 上传时间:2023-04-07 格式:DOC 页数:7 大小:216.50KB
返回 下载 相关 举报
S7300软冗余调试总结.doc_第1页
第1页 / 共7页
S7300软冗余调试总结.doc_第2页
第2页 / 共7页
S7300软冗余调试总结.doc_第3页
第3页 / 共7页
S7300软冗余调试总结.doc_第4页
第4页 / 共7页
S7300软冗余调试总结.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《S7300软冗余调试总结.doc》由会员分享,可在线阅读,更多相关《S7300软冗余调试总结.doc(7页珍藏版)》请在三一办公上搜索。

1、S7-300软冗余调试总结我用的软硬件配置:序号订货号描述16ES7 307-1EA01-0AA0电源模块(5A)26ES7 390-1AF30-0AA0导轨530mm36ES7 315-2AH14-0AB0CPU315-2DP, 256K内存4 6ES7 953-8LG11-0AA0 SIMATIC Micro内存卡128KByte(MMC)56GK7 343-1EX30-0XE0CP343-1 以太网通讯模66ES7 972-0BA52-0XA0快速连线网络接头(不带编程口)76GK5 005-0BA00-1AA3以太网交换机X005(五个RJ45口)86ES7 307-1EA01-0AA

2、0电源模块(5A)96ES7 195-1GG30-0XA0有源总线模块的DIN导轨(620mm)106ES7 153-2AR03-0XA5IM153冗余套件高性能型2个1532和1个IM/IM总线模板与快速连线网络接头(不带编程口)组合件116ES7 972-0BA52-0XA0快速连线网络接头(不带编程口)126ES7 195-7HB00-0XA0有源总线模块BM 2 X 40136ES7 321-1BH02-0AA0开入模块(16点,24VDC)146ES7 331-7KF02-0AB0模拟量输入模块(8路)156ES7 332-5HD01-0AB0模拟输出模块(4路) 166ES7 39

3、2-1AJ00-0AA0 20针前连接器17工控机(含LCD显示器)186GK1 161-2AA00CP1612网卡(以太网10M/100M自适应,PCI总线)196ES7 862-0AC01-0YA0冗余软件20STEP7 V5.4编程软 21WINCC 6.2SP3概述:本系统2个315-2DP CPU通过CP343-1连接到以太网交换机实现冗余链路,用DP通讯的IM153-2 冗余套件实现ET200M的冗余通讯,CP1612SIEMENS以太网卡连接到交换机实现WINCC与冗余系统的通讯(据说可以直接用计算机网卡实现)。下面介绍我整理后的实现过程: 硬件配置:先添加两个站A站和B站,每个

4、站单独进行配置,硬件配置完后,需要增加一个冗余连接,这需要打开“网络配置”(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

5、 这里是可以选择的,原来是0001 A050,被我改成了0007 A050,这时的ID就成了7。因为资料上说以太网实现冗余一般Local ID 不能小于2(其他方式实现没说),所以要改一下,两个CPU的都要改一致,这个在后边设置FC100参数要用到,这样就建立了一个新的连接,在界面的下方能看到一个连接出现,另外需要注意的是如果用DP冗余I/O那么ET200M必须两个站里都要做,而且要一模一样,DP地址也一样。另一个需要注意的是输出地址必须连续,这个一般的时候如果有模拟量数字量混合的话,容易不连续,需要修改一下,改成连续的,比如我这里Q改为09,这个在后边FC100设置也要用。硬件配置需要注意的

6、就这些。 软件实现:要实现软冗余,需要在OB100中调用FC100“SWR_START”,用于初始化冗余,再在OB35中调用FB101“SWR_ZYK”来实现冗余程序和数据的同步,然后再OB86中调用FC102“SWR_DIAG”进行诊断,这个诊断调用必须得做。首先打开冗余程序库,里边有所需要的数据块:这其中SWR_AGSEND_300是300以太网和DP软冗余用的,SWR_XSEND_300,是MPI软冗余用的。后缀是400的当然就是400软冗余用的啦。这其中有个SFB3 TP ,这个是IEC定时器块,在软冗余程序中如果用到定时器,是不能用原来的Time定时器的,只能用IEC定时器,而且要提

7、前算好你要用的定时器计数器的个数,后边设置FC100要用。IEC定时器分别有SFB3 TP,SFB4 TON,SFB5 TOF等,具体功能看帮助吧。把这里边的块都复制到你的项目里,然后还要添加两个FC,分别是这两个FC在Libraries-SIMATIC_NET_CP-CP 300里边可以找到。在随便一个位置调用这两个块,然后再删除它们,只要项目的Blocks里边出现这两个块就行啦!这两个块要下载到CPU的,不过不用我们手动调用,据说是FB101内部调用它们以及上边的FB104。需要用的功能块和功能就这些啦。下一步就是要调用这些块,来实现软冗余啦。 建议,在做冗余同步程序前,把需要冗余的程序块

8、,数据块,都先做好,这个当然是按照设计要求来做啦,做这些程序的时候,把需要用到的DB块,DB号按连续的方式排列,比如DB40,DB41,DB42,DB43,DB44。所有需要冗余的DB块号必须为连续的。还有需要冗余的M内存变量地址如MB0MB5,以及前边配置硬件时规划好的输出地址09。都必须是连续的。 首先在项目中加入系统组织块OB100“complete restart”,在OB100中调用FC100“SWR_START”。FC100的参数设置相当复杂,而且基本上出现问题都出在这里,希望大家一定要认真看这一段。参数设置:AG_KENNUNG:这个参数是确定A、B站的,如果是A站程序,就写入“

9、A”,B站的程序就写入“B”。DB_WORK_NO:这里需要填入一个DB号,比如填入“DB1”,而这个DB1将来不需要手动生成,FC100会自动生成。这个DB是实现冗余过程内部需要的数据块。DB_SEND_NO:同上填入一个DB号,如“DB2”,同样是FC100自动生成,不需要手动生成。可能是和下边这个DB_RCV_NO一起,都是完成数据同步作用时用的数据块吧。DB_RCV_NO:同上填入一个DB号,如“DB3”,同样是FC100自动生成,不需要手动生成。MPI_ADR:这个参数是对方站的MPI地址,只有用MPI方式同步的时候才有意义。我还是按照实际CPU上边的MPI地址写上了,虽然没用,怕少

10、了会出问题。LADDR:CP通讯处理器组态时的硬件地址,采用DP或者以太网通讯时才用。这个地址就是前边硬件配置中插入冗余连接的时候出现的地址LADDR 十六进制0100,或者是十进制256。VERB_ID:这个就是我们组态硬件是,插入的冗余连接的那个ID号,被我从0001 A050改为了0007 A050,所以ID变成了7,这里就填7。DP_MASTER_SYS_ID:这个是DP主站网络的ID号,不是DP地址号,只要在硬件组态中,双击DP线,就可以出现这个号码,如下图,这里填1。DB_COM_NO:这个是调用FB101的时候使用的FB101的背景数据块,一般默认是DB5,我使用的是DB101,

11、为了和FB101对应。一定要记住,等调用的时候只能用这里填写的这个啦!DB_KOMMUN:这个参数是连接ET200M的DP通讯口类型,如果是CPU集成的DP通讯口连接ET200M就填“1”,如果是CP通讯卡上的DP口连接ET200M填“2”。ADR_MODUS:CPU分配I/O地址的矩阵的增量,不同CPU的地址矩阵不同。选项是两个1:对于基本地址0,1,2,3,44:对于基本地址0,4,8,12.我是没看懂,填了“1”。PAA_FIRST:冗余ET200M的第一个输出字节地址,按前边硬件配置,我填“0”。PAA_LAST:冗余ET200M的最后一个输出字节地址,按前边硬件配置,我填“9”。MB

12、_NO:冗余程序需要的内存变量地址区的起始地址,按前边提到的,我填“0”。MB_LEN:需要的内存变量区长度,以BYTE为单位,我填“6”。IEC_NO:冗余的IEC定时器、IEC计数器,所使用的背景数据块的起始地址。我用5个定时器,起始地址用DB200,这里只要填“200”就可以。IEC_LEN:冗余的IEC定时器、IEC计数器的背景数据块的个数,我用5个,所以填“5”。这里的5个背景数据块,会在调用IEC定时器时需要填写,不要忘记这里已经登记过了,不能乱写的。另外据说这些DB 的大小不能小于2个字。需要自己好好理解一下。我没太明白,开始的时候出错了,我就直接在每个DB里加了个INT型变量,

13、使它不小于2个字,反正最后没出错,能用。也不知道是不是这里的问题。(当时是现场调试,不求甚解,解决就行,呵呵,诸位见谅,哪位试出具体情况,还请赐教)DB_NO:冗余数据块的起始数据块,按前边说明,我填“40”,只填数字。DB_NO_LEN:这里是填一共用了几个数据块,我用了5个,于是填“5”。SLAVE_NO:冗余部分IM153的最低DP地址号,我的IM153设置为2,且只有一个,所以填“2”。SLAVE_LEN:只有一个冗余DP从站,填“1”。(这里冗余的DP从站如果不是一个,这里DP地址号要连续起来,比如2,3,4,5)。SLAVE_DISTANCE:IM153-2的PROFIBUS地址设

14、置的标识符,如果两个PROFIBUS接 口地址一样,则填“1”,如果不同(即分别为n和n+1)则填“2”。DB_A_B_NO:将非冗余数据从A站传送到B站,所用的发送数据DB。将那些需要传输的数据都直接或者间接存到这个DB里,系统会自己传送。DB_A_B_NO_LEN:上边选择的非冗余数据交换DB的数据量,就是字节数,A,B站这个参数必须一样,否则CPU停机。DB_B_A_NO:同上,这个是从B站传到A站的DB(见过例程里边有A-B,和B-A用同一个DB的,我也用了一个,没出问题。主要是我没有互相传送的数据,不知道有数据的时候是什么样,估计只要两个站一样应该没问题。)DB_B_A_NO_LEN

15、:同上RETURN_VAL:调用FC100的返回值。(一般都用MW2,如果返回值为16#0,无故障,其他参照故障代码说明。)EXT_INFO:FC100内部调用其他子块的返回值(一般用MW4,意义同上)下一步,在OB35中调用FB101“SWR_ZYK”,先插入OB35,然后打开OB35,用STL语言方式打开,第一次调用FB101代码如下(代码中标点为了看清楚,我改成中文标点了,可能不能复制直接使用,自己抄一遍吧): CALL SWR_ZYK , DB101 DB_WORK_NO :=DB1 CALL_POSITION :=TRUE RETURN_VAL :=FB101_ON_RETURN_V

16、AL MW6EXT_INFO :=FB101_ON_EXT_INF MW8DB101,是调用FB101的背景数据块,你可以自己设定,但是这个DB必须跟FC100的参数DB_COM_NO设置的一样。这个DB是自动生成的。而且,这个DB的大小是根据不同的冗余同步方式而变化的,MPI同步时为194字节;如果是DP或者以太网同步时,DB的大小为358字节。如果出现如上图错误,则可以检查此DB大小,或者将CPU停机,然后在线删除此DB,再从新生成,并下载一次。DB_WORK_NO :DB 1, 这个是FC100中调用的冗余工作DB ,必须和FC100中调用的一致。CALL_POSITION :=TRUE

17、, 这里必须是TRUE,我用LAD调用怎么也写不上去这个TRUE,所以没办法用了STL语言调用,呵呵,比较笨!RETURN_VAL := 这个是调用FB101的返回值,一般用的是MW8EXT_INFO := 这个是FB101调用子块的返回值,一般用的是MW10启动调用完成,下边就是需要冗余的程序了。先判断本站是否是主站,如果是主站,执行冗余程序,如果是从站,跳过冗余程序,直接执行FB101的结束调用。用DB101.DBX9.1来判断,这个可以看背景数据块DB101的详细解释。(我的背景数据块为DB101,你需要根据自己的背景数据块定。比如DB5.DBX9.1)上边的OVER子程序,是自己命名的

18、FB101 结束调用程序。下边就是需要冗余的程序举例。这些冗余程序的后边,就是FB101的调用结束程序。如下:OVER: CALL SWR_ZYK , DB101 DB_WORK_NO :=DB1 CALL_POSITION:=FALSE RETURN_VAL :=FB101_OFF_RETURN_VAL MW10EXT_INFO :=FB101_OFF_EXT_INF MW12第三行CALL_POSITION:=FALSE,这里调用位置为FALSE结束。背景数据块还是上边那个,DB_WORK_NO也同上。下边两个返回值自己定。我用的是照例程上写的。到此,冗余程序块FB101的调用完成了。接下

19、来是FC102 “SWR_DIAG”诊断块的调用,诊断块FC102必须在中断块OB86中调用。参数如下图:DB_WORK,其实还是FC100的那个工作数据块DB1,所以填“1”。OB86_EV_CLASS 和OB86_FLT_ID这两个参数填的是OB86本身定义的临时变量,在OB86的参数定义部分可以看到,变量名和形参名相同,如下图:RETURN_VAL返回值:这个一般填的是一个INT型内存变量,我用了MW14,因为例程是用这个的。到这里冗余就做完了。做完以后最好做个数据一致性检查。在项目浏览器中,鼠标点到BLOCKS文件夹上,然后点下拉菜单EDITCheck Block Consistency如下图:检查完后有几个背景块应该是不存在的,因为得系统运行的时候自己生成。其他都没问题就行啦。然后可以下载,运行试试啦。如果下载后运行还是有问题,那么请记住最关键的:每次从新修改完程序想再下载试试的话,最好降CPU停机,在线删除所有CPU中的块,然后复位CPU再重新下载,这样可以减少不必要的问题。如果还有问题,请参照西门子技术支持网站上的文档:F0462.PDF上边详细说明了各大多数错误的现象和问题的原因,对调试软冗余很有帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号