- {{item.name}}
如何实现 Multi Panel(多功能面板)和S7-300软冗余系统的工业以太网通讯
- 0
- 290
- 1888
1 简介
软件冗余是低成本的冗余解决方案,适用于对切换时间要求不是很高的场合,主备切换
时间为秒级的控制系统。软冗余系统为两个站,一个为主站,一个为备用站;主备站的数据通讯链路为标准西门子通讯协议 (MPI/Profibus/Ethernet);冗余范围内的I/O模板需通过Profibus-DP网络连接到ET200M从站上;西门子的软件冗余 可以在S7-300或S7-400的标准系统中实现,只需调用软冗余软件包中的程序块。
西门子的多功能面板支持和软冗余CPU通讯,系统架构如图1所示,并且当某个CPU
连接中断,面板可以自动切换连接到另一个CPU;如果两个CPU主备切换,面板可以切换到主CPU。
图1
本文描述的是用WinCC flexible组态的多功能面板通过脚本的方式实现切换连接的方
法;本文只描述面板和CPU的集成PN口之间通过工业以太网通讯,面板和CPU之间通过其他通讯方式(如MPI/Profibus)连接也可以参考本文。
本文所使用的硬件和软件如下:
(A) S7-300 soft redundancy
CPU 315-2PN/DP (6ES7315-2EH13-0AB0, Firmware V2.5)
CPU 317F-2PN/DP (6ES7317-2FK14-0AB0, Firmware V3.2)
CP342-5 (6GK7342-5DA02-0XE0, Firmware V5.0)
IM153-2 (6ES7153-2BA02-0XB0)
(B) Panel
MP377 12”Touch (6AV6 644-0AA01-2AX0)
(C) Software
WinCC flexible 2008 SP3
Step7 V5.5 SP2+HF1
此方法只适用于支持三个以上连接,支持脚本及ChangeConnection函数的面板,如
TP/OP270、TP/OP277、MP270、MP277、MP370、MP377等。
本文不介绍软件冗余的原理及组态方法,详细可以参考:
《SIEMENS PLC系统软件冗余的说明与实现》
下载中心文档编号:A0039
78604454
2 组态Multi Panel和S7-300软冗余系统的通讯
2.1 CPU组态
A站:315-2PN/DP+IM153-2
B站:317F-2PN/DP+IM153-2
AB站之间通过CP342-5建立连接,实现冗余数据同步。
2.1.1 Step7中的硬件组态
A站:在Step7中组态315-2PN/DP,在DP总线上添加IM153-2,如图2所示。
图2
在CPU的属性中选择Clock Memory,设置Memory byte为MB0,如图3所示。
图3
B站:在Step7中组态317F-2PN/DP,在DP总线上添加IM153-2,如图4所示。
图4
在CPU的属性中选择Clock Memory,设置Memory byte为MB0,如图5所示。
图5
2.1.2 Step7中的网络组态
A站和B站之间通过CP342-5建立FDL连接,此连接为AB站之间的数据链路通道,打开Netpro界面,新建一个FDL连接,如图6所示。
图6
2.1.3 Step7中的CPU编程
说明:本文描述的编程只涉及实现软冗余功能的部分,其他功能的实现不予介绍。
A站:OB100中调用FC100,实现初始化,如图7所示。
图7
OB35中调用FB101,必须在执行冗余用户程序的前/后分别调用FB101,如图8所示,而FB101内部调用了FB104、FC5、FC6,必须装载这三个块。
图8
OB86中调用FC102,当DP总线有故障时CPU可以实现主备切换,如图9所示。
图9
B站:OB100中调用FC100,实现初始化,如图10所示。
图10
OB35和OB86中的编程和A站相同。
组态好的项目分别下载到CPUA和CPUB中,做好硬件接线。
2.2 在WinCC flexible中组态Multi Panel
在Step7中插入一个Simatic HMI station,选择设备类型为MP377 12” Touch,如图
11所示。
(说明:本文描述的是在Step7中集成组态MP377的项目,这不是必须的,也可以分开
组态,即单独组态CPU和MP377。)
图11
2.2.1 组态连接
在项目中组态三个连接,分别对应A站、B站和实际连接。
Conn_A对应A站,CPU的参数是A站的参数,如图12所示。
图12
Conn_B对应B站,CPU的参数是B站的参数,如图13所示。
图13
建立Conn_real用于创建过程变量,通信驱动程序选择“SIMATIC S7 300/400”,PLC
的地址参数默认设置为192.168.0.2,扩展插槽是2,机架号是0。切换连接的脚本会根据切换条件给conn_real分配不同的参数。
2.2.2 组态变量
在Conn_A下建立变量,如图14所示。其中trigger_PLCA的地址是M0.4,采集模式是
“循环连续”,采集周期是500ms。
图14
在Conn_B下建立变量,如图15所示。其中trigger_PLCB的地址是M0.4,采集模式是
“循环连续”,采集周期是500ms。
图15
项目中的其他变量如图16所示,test1~test5是测试变量,用于测试conn_real的连接状
态。
图16
2.2.3 切换连接的脚本逻辑解释
在变量trigger_PLCA的“事件—更改数值”中添加脚本connection_PLCA,实现切换连
接到conn_A,如图17。脚本逻辑参见下文。
图17
在变量trigger_PLCB的“事件—更改数值”中添加脚本connection_PLCB,实现切换连
接到conn_B,如图18。脚本逻辑参见下文。
图18
在项目树下面的“设备设置—调度器”中建立一个作业,每分钟执行一次,在函数列表
中添加脚本connection_lost,用于检测是否和两个CPU的连接都中断,如果都中断,提示“connection lost”,如图19所示。
图19
本文附件中包含三个脚本文件。在项目树的“脚本”下添加脚本“connection_PLCA”,
将附件中的connection_PLCA.txt文件内容拷贝到connection_PLCA中,注意ChangeConnection的参数必须和conn_A的参数一致,如图20所示。
图20
继续添加脚本“connection_PLCB”,将附件中的connection_PLCB.txt文件内容拷贝
到connection_PLCB中,注意ChangeConnection的参数必须和conn_B的参数一致,如图21所示。
图21
继续添加脚本“connection_lost”,将附件中的connection_lost.txt文件内容拷贝到
connection_lost中,如图22所示。
图22
以connection_PLCA为例解释脚本逻辑。
(1) 触发变量trigger_PLCA的地址M0.4,每0.8秒0/1变化一次,如果面板和CPU连接正常,能一直检测到变量数值变化,即能触发connection_PLCA动作;
(2) 初始化。给”connected_to”变量赋值"Conn_A, 192.168.0.2";
(3) 给A站的连接状态值"conn_state_PLCA"复位为1,表明连接正常;
(4) 判断B的连接状态值"conn_state_PLCB",如小于10则加1,如果检测到B站断开,则B的连接状态值会加到11;
(5) 切换连接。给出切换条件:
(A) 如果B的连接状态值>=11,说明B站断开;
(B) 如果B的连接状态值<=5,即连接正常,但同时读A站的软冗余状态字SwitchPLCA和B站的软冗余状态字SwitchPLCB,如果A状态字=5同时B状态字=10,说明A为主B为备;
(C) 如果B的连接状态值<=5,即连接正常,但A站的软冗余状态字SwitchPLCA=0h25(十进制37),B站的软冗余状态字SwitchPLCB=9,说明A运行而B停机。
以上三个条件只要满足一个,就可以切换连接到CPUA,因此三个条件做“或”运算。
CPU状态与状态字变量SwitchPLCA(DB5.DBB9)和SwitchPLCB(DB5.DBB9)的对
应关系请参考表1。
操作 | CPUA状态 | CPUB状态 | CPUA状态字 SwitchPLCA | CPUB状态字 SwitchPLCB | 连接到 |
上电 | 主、Run | 备、Run | 0000 0101 (0x05) | 0000 1010 (0x0A) | Conn_A |
A停机 | 备、stop | 主、run | 0000 0101 (0x05) | 0010 1001 (0x29) | Conn_B |
A启动 | 备、run | 主、run | 0000 0110 (0x06) | 0000 1001 (0x09) | Conn_B |
B停机 | 主、run | 备、stop | 0010 0101 (0x25) | 0000 1001 (0x09) | Conn_A |
B启动 | 主、run | 备、run | 0000 0101 (0x05) | 0000 1010 (0x0A) | Conn_A |
B从站断开 | 主、run | 备、run | 0000 0101 (0x05) | 0000 1010 (0x0A) | Conn_A |
B从站恢复 | 主、run | 备、run | 0000 0101 (0x05) | 0000 1010 (0x0A) | Conn_A |
A从站断开 | 备、run | 主、run | 0000 0110 (0x06) | 0000 1001 (0x09) | Conn_B |
A从站恢复 | 备、run | 主、run | 0000 0110 (0x06) | 0000 1001 (0x09) | Conn_B |
表1
连接状态变量conn_state_PLCA/B的值和连接的对应关系如表2。
变量conn_state_PLCA/B的值 | 连接状态 |
0 | 初始化 |
1~5 | 连接正常 |
6~10 | 连接中断 |
11~20 | 故障 |
100 | 无效 |
表2
(6) 如果检测到无连接的状态,则切换到A站。
脚本connection_PLCB的逻辑和connection_PLCA基本相同,只是在第⑤步的切换条
件上不同,具体如下。
(A) 如果A的连接状态值>=11,说明A站断开;
(B) 如果A的连接状态值<=5,即连接正常,但同时读A站的软冗余状态字SwitchPLCA和B站的软冗余状态字SwitchPLCB,如果A状态字=6同时B状态字=9,说明B为主A为备;
(C) 如果A的连接状态值<=5,即连接正常,但A站的软冗余状态字SwitchPLCA=5,B站的软冗余状态字SwitchPLCB=0h29(十进制41),说明B运行而A停机。
以上三个条件只要满足一个,即切换连接到CPUB。
脚本connection_lost的逻辑如下。
(1)每分钟读一次两个连接的状态变量,如果连接正常,将连接变量conn_state_PLCA/B设为5;
(2)如果读到连接状态变量的值大于等于5,则设为100,表明连接无效;
(3)如果两个连接的状态变量值均为100,说明两个连接都无效,显示“connection lost”。
2.2.4组态画面
组态一个画面,如图23所示。其中current connection后面的IO域连接的是
“connected_to”变量,显示当前conn_real连接的是哪个CPU;plc A/B connection status后面的IO域连接的是“conn_state_PLCA/B”变量,显示两个CPU的连接状态变量;trigger_PLCA/B后面的IO 域连接的是“trigger_PLCA/B”变量;test1~test5后面的IO域连接的是“test1~test5”变量,是测试变量; Status of PLC A/B后面的IO域连接的是“StatusOfPLCA/B(DB5.DBW8)”变量,用于显示两个CPU的状态信息。
图23
2.3 项目下载测试
组态后的项目编译下载到MP377中,在MP377和两个CPU之间连好网线,做如下调
试。
(1)上电初始化,A为主站、run,B为备站、run,变量trigger_PLCA/B都在0/1变化,
MP377默认和A站连接,如图24所示。
图24
(2) 手动停止CPUA,A站为stop状态,B站为主、run。Conn_A无效,变量
trigger_PLCA无效,连接变量conn_state_PLCA为100,连接conn_real切换到CPUB,如图25所示。
图25
(3) 再次启动A站,A为备、run,B为主、run。Conn_A恢复,trigger_PLCA/B都在
0/1变化,conn_real保持和CPUB连接,如图26所示。
图26
(4) 拔掉B和屏之间的网线,conn_B断开,trigger_PLCB无值,conn_real切换到和
CPUA连接,如图27所示。
图27
(5) 再拔掉A和屏之间的网线,两个连接都无效,因此屏上显示“connection lost”,
conn_real连接中断,如图28所示。
图28
(6) 连上A站和B站与屏之间的网线,conn_A和conn_B均恢复,trigger_PLCA/B都在
0/1变化,conn_real和CPUB连接,因为B为主、Run,A为备、Run,如图29所示。
图29
关键词
WinCC flexible,多功能面板,Step7,S7-300软冗余,工业以太网,连接
相关附件下载:
脚本文件 ( 2 KB )
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 如何对多功能面板(Multi panel)进行触摸校准?
- 如何实现Comfort Panel(精智面板)和S7-300软冗余系统的工业以太网通讯
- 如何实现Comfort Panel(精智系列面板)和S7-400H PN的工业以太网通信
- 如何实现Basic Panel(精简系列面板)和S7-400H PN的工业以太网通信
- 如何实现WinCC V7和S7-400H PN的工业以太网通信
- 如何实现WinCC和 SIMOTION的工业以太网通信
- 如何组态WinCC flexible Runtime (PC 或操作面板)和 SIMATIC S7-300 / S7-400 之间的工业以太网连接?
- 如何在 WinCC(TIA 博途)中组态一个 WinCC Runtime Advanced 或 HMI 面板和 S7 控制器的工业以太网(PROFINET)连接?
- 软冗余系统中如何实现冗余待机
- 如何编写通讯块 FB67“TUSEND”,FB68 “TURCV”,FB65“TCON”和 FB66“TDISCON”实现用 CPU 集成的工业以太网接口进行基于 UDP 协议的数据传输?
{{item.nickName}}