S7-300软冗余调试总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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”进行诊断,这个诊断调用必须得做。

首先打开冗余程序库,里边有所需要的数据块:

这其中SWR_AGSEND_300是300以太网和DP软冗余用的,SWR_XSEND_300,是MPI 软冗余用的。后缀是400的当然就是400软冗余用的啦。这其中有个SFB3 TP ,这个是IEC定时器块,在软冗余程序中如果用到定时器,是不能用原来的Time定时器的,只能用IEC定时器,而且要提前算好你要用的定时器计数器的个数,后边设置FC100要用。IEC定时器分别有SFB3 TP,SFB4 TON,SFB5 TOF等,具体功能看帮助吧。把这里边的块都复制到你的项目里,然后还要添加两个FC,分别是

这两个FC在

Libraries-->SIMATIC_NET_CP-->CP

300里边可以找到。在随便一个位置调用这两个块,然后再删除它们,只要项目的Blocks里边出现这两个块就行啦!这两个块要下载到CPU的,不过不用我们手动调用,据说是FB101内部调用它们以及上边的FB104。需要用的功能块和功能就这些啦。

下一步就是要调用这些块,来实现软冗余啦。

建议,在做冗余同步程序前,把需要冗余的程序块,数据块,都先做好,这个当然是按照设计要求来做啦,做这些程序的时候,把需要用到的DB块,DB号按连续的方式排列,比如DB40,DB41,DB42,DB43,DB44。所有需要冗余的DB块号必须为连续的。还有需要冗余的M内存变量地址如MB0~MB5,以及前边配置硬件时规划好的输出地址0~9。都必须是连续的。

首先在项目中加入系统组织块OB100“complete restart”,在OB100中调用FC100“SWR_START”。FC100的参数设置相当复杂,而且基本上出现问题都出在这里,希望大家一定要认真看这一段。

参数设置:

AG_KENNUNG:这个参数是确定A、B站的,如果是A站程序,就写入“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地址写上了,虽然没用,怕少了会出问题。

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,为了和FB101对应。一定要记住,等调用FB101的时候只能用这里填写的这个DB啦!

DB_KOMMUN:这个参数是连接ET200M的DP通讯口类型,如果是CPU集成的DP通讯口连接ET200M就填“1”,如果是CP通讯卡上的DP口连接ET200M填“2”。ADR_MODUS:CPU分配I/O地址的矩阵的增量,不同CPU的地址矩阵不同。选项是两个1:对于基本地址0,1,2,3,4……4:对于基本地址0,4,8,12….我是没看懂,填了“1”。PAA_FIRST:冗余ET200M的第一个输出字节地址,按前边硬件配置,我填“0”。

PAA_LAST:冗余ET200M的最后一个输出字节地址,按前边硬件配置,我填“9”。

MB_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

型变量,使它不小于2个字,反正最后没出错,能用。也不知道是不是这里的问题。

(当时是现场调试,不求甚解,解决就行,呵呵,诸位见谅,哪位试出具体情况,

还请赐教)

DB_NO:冗余数据块的起始数据块,按前边说明,我填“40”,只填数字。

DB_NO_LEN:这里是填一共用了几个数据块,我用了5个,于是填“5”。

SLA VE_NO:冗余部分IM153的最低DP地址号,我的IM153设置为2,且只有一个,所以填“2”。

SLA VE_LEN:只有一个冗余DP从站,填“1”。(这里冗余的DP从站如果不是一个,这里DP地址号要连续起来,比如2,3,4,5)。

SLA VE_DISTANCE:IM153-2的PROFIBUS地址设置的标识符,如果两个PROFIBUS接口地址一样,则填“1”,如果不同(即分别为n和n+1)则填“2”。

相关文档
最新文档