S7300软冗余调试总结_第1页
S7300软冗余调试总结_第2页
S7300软冗余调试总结_第3页
S7300软冗余调试总结_第4页
S7300软冗余调试总结_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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的调用完成了。接下来是fc102 “swr_diag”诊断块的调用,诊断块fc102必须在中断块ob86中调用。参数如下图:db_work,其实还是fc100的那个工作数据块db1,所以填“1”。ob86_ev_class 和ob86_flt_id这两个参数填的是ob86本身定义的临时变量,在ob86的参数定义部分可以看到,变量名和形参名相同,如下图:return_val返回值:这个一般填的是一个int型内存变量,我用了mw14,因为例程是用这个的。到这里冗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论