S7-300软冗余调试总结--WINCC组态

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

当硬件组态和PLC编程完成以后,我们需要把软冗余系统和WINCC的上位机画面连接起来,将操作步骤大概写一下供大家参考。

首先,添加S7通讯协议组。在Tag Management上右击,点add new driver.按下图选择

加上协议族后,选择TCP/IP那一项,右击鼠标,点第二项system parameter,这里需要根据具体情况设置。主要是UNIT那一项下边有个Logical device name,这里选择计算机所用的网卡。设置完成后,右击TCP/IP,选第一项New Driver Connection…建立连接,设置连接的Name 和连接的properties。这样就建好了连接,具体的变量不用说啦,都一样。

下边说如何实践冗余现实。首先在画面编辑器打开一个画面,在右边动态向导栏(dynamic wizard)里选择“建立冗余连接”(creat redundant connection),出来对话框,点“next”,出现选择连接的窗口,点一下上边所建的连接,“next”,出现下面窗口

这里Main Connection是主连接,也就是主PLC站的连接,下边的Reserve Connection 需要自己根据具体情况修改,默认的是和主站一样的。。。要改为自己备用PLC 站的地址,比如IP192.168.0.2,,0,2,02。继续下一步“next”,然后结束。冗余连接就生成了,按正常说,现在就可以实现下边PLC故障切换的时候,自动将上位机WINCC中变量转到备用PLC连接上。但是实际上现在不能完全实现自动切换,和手动切换。尤其是下边主备站都没问题的时候,手动切换过来会发现WINCC跟PLC失去联系。。。传上来的数据多是错的。要实现完整的切换,需要在全集脚本里加上几句话,来强制连接切换,这样才能完全实现容易的切换。

当我们上边冗余连接建立以后,在变量组里会自动生成一个@sw变量组(其中SW是

前边建立的连接的名称),这个变量组里的变量在后边要用到。打开全局脚本编辑器Global Scrip C 在左边项目浏览栏里边找:Actions Actions:XXX,其中XXX为你的计算机名。在这个文件夹的下边有个@sw.pas文件,其中的SW就是刚刚在TCP/IP协议项下建立的那个连接的名字。打开这个文件,将编辑窗口拉到最下边,将紫色部分代码复制添加到上下文相对应的位置。

MSRTCreateMsg( ServiceID, &MsgCreate, &Error );

}

}

}

if ( ServiceID != 0 )

{ MSRTStopMsgService ( ServiceID, &Error );

}

if ( GetTagDWordWait( "@sw@ConnectionState" ) == 0 )

{ SetTagDWord( "@sw@ForceConnectionState", 1 );

}

else

{ if ( GetTagBitWait( "SWR_wincc.Standby" ) == TRUE )

{ SetTagDWord( "@sw@ForceConnectionState", 0 );

}

}

return 1;

这其中的几个变量"@sw@ConnectionState", "@sw@ForceConnectionState"这两个变量在前边说到的@SW变量组里边有。其中的SW是连接的名字,需要对应上自己前边建的连接的名字。"SWR_wincc.Standby"这个变量就是FB101冗余程序块的背景数据块中的变量DB***.DBX9.1,***是在PLC冗余程序中调用冗余程序时自己设定的背景数据块号,我用的是DB101,所以我这里变量就连接DB101.DBX9.1这个数据位。

好啦,这样就可以实现手动自动切换啦。。。当然手动切换可以自己按照DB101的定义去手动生成变量做,也可在网上搜索《S7300S7400SIMITIC S7的软冗余》这个文档,里边有介绍一个系统自带的手动切换冗余的模板,很方便。。。

参考文献:S7300S7400SIMITIC S7的软冗余

wincc实现软冗余手册(英文)

相关文档
最新文档