控制器冗余
要提高系统的可用性,您可以使用具有冗余的第二个控制器 PROFINET 控制器结合 CODESYS Redundancy. CODESYS Redundancy 充当“后端”以同步两个控制器上的应用程序。土生土长的 PROFINET 系统冗余 (SR) 确保与现场设备的数据交换顺畅。
随着 PROFINET 系统冗余,两个控制器各自保持一个连接(AR = 应用程序关系)到每个 PROFINET 支持S2系统冗余的现场设备。其中一个连接有 PRIMARY
角色,而另一个连接具有 BACKUP
角色。在这里,仅与 PRIMARY
角色传输有效数据。如果与 PRIMARY
角色失败,则可以顺利切换到与 BACKUP
角色,现在成为新角色 PRIMARY
连接,在最短的时间内。混合操作与 PROFINET 不支持 S2 系统冗余的现场设备是可能的。然而,在这种情况下,当连接失败时数据传输会短暂中断,因为建立了一个完整的新连接。 PROFINET 系统冗余可以通过其他冗余机制进行扩展,例如 MRP(“线路冗余”)。
CODESYS 运行时的配置
[CmpRedundancyConnectionIP] Link1.IpAddressLocal=192.168.56.1 ; IP address of redundancy link of local PLC Link1.IpAddressPeer=192.168.56.101 ; IP address of redundancy link of peer PLC Link1.Port=1205 [CmpRedundancy] BootupWaitTime=5000 TcpWaitTime=2000 StandbyWaitTime=50 ; This timeout depends on the quality of real time task and communication system LockTimeout=20 ; Maximum time of timer lock Bootproject=Application ; Name of your CODESYS application RedundancyTaskName=MainTask ; Task name in your CODESYS application DataSyncAlways=1 PlcIdent=1 ;// Redundant Controller = 2 !!! SyncWaitTime=100;
项目中的配置
在项目中,IP地址和控制站名称等设置 PROFINET 还需要在第二个控制器 (PLC 2) 上配置控制器。
当。。。的时候 冗余配置 对象被插入到项目中,有额外的设置 EtherNet Adapter 在 PLC 2 上 EtherNet Adapter 设备。
在控制器的配置中,一个额外的 系统冗余 显示应在 PLC 2 上使用的设置选项卡。支持 S2 系统冗余的现场设备自动设置为该模式。
重要
这 CODESYS Redundancy 只允许同步单个任务。在这个任务中,所有 PROFINET 应使用 I/O 数据,I/O 映射应仅对现有变量进行。因为只有 PROFINET 控制器与 PRIMARY
连接接收到有效的 I/O 数据,否 PROFINET I/O 数据应在 BACKUP 控制器上进行处理。 PROFINET 用于非循环服务的功能块(例如, RDREC
, WRREC
)或报警处理(例如, RALARM
) 不得在同步任务或同步数据区域中使用。
冗余任务的优先级必须明显低于 PROFINET 输入/输出任务。
的标准行为 PROFINET 操作过程中的控制器:
当控制器的角色为“主动”时, PROFINET 控制器(和所有连接)是
PRIMARY
.当控制器的角色为“备用”时, PROFINET 控制器(和所有连接)是
BACKUP
.当启动时控制器的角色为“Standalone”时,只有 PROFINET PLC 1 上的控制器是
PRIMARY
控制器。当控制器的角色变为“独立”时(冗余连接中断或另一个 PLC 发生故障), PROFINET 控制器保留其当前角色。
这 冗余管理器 功能块通过有用的错误处理扩展了标准行为:
当一个连接
PRIMARY
控制器终止(完全关闭所有连接或单个连接终止),备用控制器切换到“活动”及其 PROFINET 控制器成为新的PRIMARY
控制器。当。。。的时候 PROFINET 两个控制器之一上的控制器发生故障(例如,没有网络),此控制器切换到“模拟”。
注意:RedundancyManager 不能定义在同步区域中,例如全局变量列表中。