1、当硬件组态和PLC编程完成以后,我们需要把软冗余系统和WINCC的上位机画面连接起来,将操作步骤大概写一下供大家参考。首先,添加S7通讯协议组。在Tag Management上右击,点add new driver.按下图选择加上协议族后,选择TCP/IP那一项,右击鼠标,点第二项system parameter,这里需要根据具体情况设置。主要是UNIT那一项下边有个Logical device name,这里选择计算机所用的网卡。设置完成后,右击TCP/IP,选第一项New Driver Connection建立连接,设置连接的Name 和连接的properties。这样就建好了连接,具体的变
2、量不用说啦,都一样。下边说如何实践冗余现实。首先在画面编辑器打开一个画面,在右边动态向导栏(dynamic wizard)里选择“建立冗余连接”(creat redundant connection),出来对话框,点“next”,出现选择连接的窗口,点一下上边所建的连接,“next”,出现下面窗口这里Main Connection是主连接,也就是主PLC站的连接,下边的Reserve Connection需要自己根据具体情况修改,默认的是和主站一样的。要改为自己备用PLC 站的地址,比如IP192.168.0.2,0,2,02。继续下一步“next”,然后结束。冗余连接就生成了,按正常说,现在
3、就可以实现下边PLC故障切换的时候,自动将上位机WINCC中变量转到备用PLC连接上。但是实际上现在不能完全实现自动切换,和手动切换。尤其是下边主备站都没问题的时候,手动切换过来会发现WINCC跟PLC失去联系。传上来的数据多是错的。要实现完整的切换,需要在全集脚本里加上几句话,来强制连接切换,这样才能完全实现容易的切换。当我们上边冗余连接建立以后,在变量组里会自动生成一个sw变量组(其中SW是前边建立的连接的名称),这个变量组里的变量在后边要用到。打开全局脚本编辑器Global Scrip C 在左边项目浏览栏里边找:ActionsActions:XXX,其中XXX为你的计算机名。在这个文件
4、夹的下边有个sw.pas文件,其中的SW就是刚刚在TCP/IP协议项下建立的那个连接的名字。打开这个文件,将编辑窗口拉到最下边,将紫色部分代码复制添加到上下文相对应的位置。MSRTCreateMsg( ServiceID, &MsgCreate, &Error ); if ( ServiceID != 0 ) MSRTStopMsgService ( ServiceID, &Error ); if ( GetTagDWordWait( swConnectionState ) = 0 ) SetTagDWord( swForceConnectionState, 1 ); else if ( Ge
5、tTagBitWait( SWR_wincc.Standby ) = TRUE ) SetTagDWord( swForceConnectionState, 0 ); return 1;这其中的几个变量swConnectionState, swForceConnectionState这两个变量在前边说到的SW变量组里边有。其中的SW是连接的名字,需要对应上自己前边建的连接的名字。SWR_wincc.Standby这个变量就是FB101冗余程序块的背景数据块中的变量DB*.DBX9.1, *是在PLC冗余程序中调用冗余程序时自己设定的背景数据块号,我用的是DB101,所以我这里变量就连接DB101.DBX9.1这个数据位。好啦,这样就可以实现手动自动切换啦。当然手动切换可以自己按照DB101的定义去手动生成变量做,也可在网上搜索S7300S7400SIMITIC S7的软冗余这个文档,里边有介绍一个系统自带的手动切换冗余的模板,很方便。参考文献:S7300S7400SIMITIC S7的软冗余 wincc实现软冗余手册(英文)