Skip to main content

Controller-Redundanz

Um die Verfügbarbarkeit des Systems zu erhöhen, können Sie in Kombination mit der CODESYS Redundancy eine zweite Steuerung mit einem redundanten PROFINET-Conroller einsetzen. Die CODESYS Redundancy übernimmt als "Backend" die Synchronisierung der Applikation auf den beiden Steuerungen. Die native PROFINET-Systemredundanz (SR) sorgt für stossfreien Datenaustausch mit den Feldgeräten.

Bei der PROFINET-Systemredundanz halten beide Controller je eine Verbindung (AR = Application Relation) zu jedem PROFINET-Feldgerät, das S2-Systemredundanz unterstützt. Eine der Verbindungen hat die Rolle PRIMARY, die andere Verbindung die Rolle BACKUP. Dabei überträgt nur die Verbindung mit der Rolle PRIMARY gültige Daten. Wenn die Verbindung mit der Rolle PRIMARY ausfällt, kann in kürzester Zeit stossfrei auf die Verbindung mit der Rolle BACKUP umgeschaltet werden, die nun zur neuen PRIMARY-Verbindung wird. Ein Mischbetrieb mit PROFINET-Feldgeräten, die keine S2-Systemredundanz unterstützen, ist möglich. Hier wird aber die Datenübertragung beim Ausfall der Verbindung kurz unterbrochen, da ein vollständiger, neuer Verbindungsaufbau gestartet wird. PROFINET-Systemredundanz kann mit anderen Redundanzmechanismen, wie MRP ("Leitungsredundanz") erweitert werden.

Konfiguration des CODESYS Runtime

[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;

Konfiguration im Projekt

Im Projekt müssen zusätzlich die Einstellungen wie IP-Adresse und Controller-Stationsname für den PROFINET-Controller auf der zweiten Steuerung (SPS 2) konfiguriert werden.

Wenn das Objekt Redundanzkonfiguration ins Projekt eingefügt wird, gibt es am EtherNet Adapter-Gerät zusätzliche Einstellungen für den EtherNet Adapter auf der SPS 2.

In der Konfiguration des Controllers erscheint eine weitere Registerkarte Systemredundanz für die Einstellungen, die auf SPS 2 verwendet werden sollen. Feldgeräte, die S2-Systemredundanz unterstützen, werden automatisch in diesen Modus gesetzt.

Wichtig

Die CODESYS Redundancy erlaubt nur die Synchronisierung einer einzelnen Task. In dieser sollten alle PROFINET-E/A-Daten verwendet werden, wobei das E/A-Abbild nur auf existierende Variablen vorgenommen werden sollte. Da nur der PROFINET-Controller mit der PRIMARY-Verbindung gültige E/A-Daten empfängt, sollte auf einer BACKUP-Steuerung keine Verarbeitung von PROFINET-E/A-Daten stattfinden. PROFINET-Funktionsbausteine für azyklischen Dienste (beispielsweise RDREC,WRREC) oder Alamverarbeitung (beispielsweise RALARM) dürfen nicht innerhalb der synchronisierten Task oder der synchronisierten Datenbereichen verwendet werden.

Die Priorität der redundanten Task muss deutlich niedriger sein als die der PROFINET I/O-Task.

Das Standardverhalten des PROFINET-Controllers im Betrieb:

  • Wenn die Rolle der Steuerung "Active" ist, dann wird der PROFINET-Controller (und alle Verbindungen) PRIMARY.

  • Wenn die Rolle der Steuerung "Standby" ist, dann wird der PROFINET-Controller (und alle Verbindungen) BACKUP.

  • Wenn die Rolle der Steuerung zum Zeitpunkt des Starts "Standalone" ist, wird nur der PROFINET-Controller auf SPS 1 zum PRIMARY-Controller.

  • Wenn die Rolle der Steuerung auf "Standalone" wechselt (Redundanzverbindung unterbrochen oder Ausfall der anderen SPS), behält der PROFINET-Controller seine aktuelle Rolle.

Der Funktionsbaustein RedundancyManager erweitert das Standardverhalten um sinnvolle Fehlerbehandlung:

  • Wenn die Verbindungen eines PRIMARY-Controllers abgebrochen werden (kompletter Shutdown aller Verbindungen oder einzelner Verbindungsabbruch), schaltet die Standby-Steuerung auf "Active" und deren PROFINET-Controller wird zum neuen PRIMARY-Controller.

  • Wenn der PROFINET-Controller auf einer der beiden Steuerungen einen Ausfall hat (beispielsweise kein Netzwerk), wird diese Steuerung auf "Simulation" umgeschaltet.

    Achtung: Der RedundancyManager darf nicht in einem synchronisierten Bereich definiert werden, sondern beispielweise in einer globalen Variablenliste.