Skip to main content

Einschränkungen

CODESYS -Version

Auf beiden Geräten muss die gleiche Version des Laufzeitsystems installiert sein, denn das Bootprojekt wird zwischen den Steuerungen übertragen und muss deshalb auf der 2. Steuerung ladbar sein.

Task und Kommunikation in Echtzeit

Nur zyklische Tasks sind erlaubt. Tasks vom Typ Ereignis, Status oder Freilaufend können nicht synchronisiert werden.

Die CODESYS Redundancy -Funktionalität synchronisiert genau eine Task (Redundanztask). Weitere Tasks und Applikationen sind möglich, laufen jedoch unsynchronisiert auf beiden SPSen.

Außerdem muss das Redundanzsystem, was die Taskausführung und die Kommunikation betrifft, gewisse Echtzeitanforderungen erfüllen: Die Laufzeit der Nachrichten (Anfrage und Antwort) der Redundanzkommunikation muss innerhalb eines vorher fest definierten Zeitintervalls vorliegen und der Task-Jitter muss berücksichtigt werden.

Echtzeit-Taskausführung bedeutet, dass die Applikationstask, die durch Redundanz gesteuert wird, einen begrenzten Jitter hat. Echtzeitkommunikation bedeutet, dass eine über die Redundanzverbindung gesendete Nachricht von der anderen SPS innerhalb einer bestimmten Zeit empfangen werden muss.

Task-Ausführungszeit

Die Nachrichtenlaufzeit (Zeit für Anfrage und Antwort) erhöht die Ausführungszeit der Task: Bei Verwendung von Redundanz wird die Gesamtausführungszeit der Task länger.

Ändern von Applikations- und Tasknamen

Das Ändern des Namens der redundanten Applikation oder der redundanten Task ist eine wesentliche Änderung und ist während des redundanten Betriebs nicht möglich. Denn nach einer Änderung müssen Sie beide SPSen neu konfigurieren, so wie in „Erste Schritte“ unter „Redundanzsystem konfigurieren“ beschrieben.

Wert für Zeitüberschreitung

Der Wert, den Sie für die Zeitüberschreitung angeben, muss höher sein als die Summe aus Task-Jitter-Zeit und maximaler Kommunikations-Jitter-Zeit. Beide Zeiten sind systemspezifisch. Wenn zur Laufzeit der Task-Jitter hoch ist und die Nachrichtenübertragung sich verzögert, tritt eine Zeitüberschreitung ein. Beim Warten auf eine Nachricht von der anderen SPS wird dann angenommen, dass die andere SPS nicht mehr läuft. Daraufhin schalten sowohl die wartende SPS als auch die sendende SPS jeweils in den Standalone-Betrieb. Das führt zu Synchronisierungsverlusten und zu Kommunikationsproblemen auf dem Feldbus.

Tipp

Die Zeitüberschreitung, nach der die aktive SPS in den Standalone-Betrieb wechselt, definieren Sie im Editor Redundanzkonfiguration in der Registerkarte Redundanzeinstellungen, Registerkarte Allgemein. Der Wert wird außerdem in der LZS-Konfigurationsdatei (beispielsweise CODESYSControl.cfg) mit dem Eintrag StandbyWaitTime gespeichert.

IEC-Timer

Unterschiedliche Taskausführungszeiten auf den beiden SPSen können „Bumps“ (voneinander abweichende Werte der Ausgänge) beim Umschalten verursachen. Um das zu vermeiden, werden die IEC-Timerwerte während der Ausführung einer IEC-Task eingefroren. Aufrufe von IEC-Zeitgebern (beispielsweise von der Funktion TON) während der Ausführung einer IEC-Task führen deshalb zu immer gleichen Timerwerten, auch wenn die physikalische Zeit weiterläuft. Implementierungen sollten deshalb nicht aktiv (eventuell in einer Schleife) warten. Denn IEC-Timerwerte ändern sich im aktuellen Task-Scan nicht.

Pointer, Referenzen, Interfaces

Die Mittel POINTER TO, REFERENCE TO und INTERFACE (und Interface-Instanzen) für das Ausdrücken von Beziehungen zwischen Applikationseinheiten funktionieren nicht mit synchronisierten redundanten Applikationen.

POINTER-Variablen dürfen nicht in Datenbereichen deklariert werden, die unter Redundanzkontrolle liegen. Denn redundant kontrollierte Daten werden während einer Synchronisierung auf die andere SPS übertragen. Pointer sind jedoch auf der anderen SPS nicht gültig, weil dort ein anderes Speicherlayout vorliegen kann.

Während des Übersetzens prüft die Redundanzfunktionalität, ob ein Pointer in einem redundant kontrollierten Bereich liegt. Für jeden Pointer, der dort gefunden wird, erscheint eine Warnung. Die Prüfung kann mit Hilfe des folgenden Eintrags in der Gerätebeschreibungsdatei deaktiviert werden:

<Device>
    <Custom>
            <Redundancy DisablePointerChecks="true">

EtherCAT DC

Die Redundanzerweiterung ist eher für die Prozessindustrie als für die Fabrikautomation ausgelegt. Deshalb werden EtherCAT-Antriebe mit verteilten Uhren nicht unterstützt. EtherCAT-E/As werden jedoch unterstützt.

Siehe auch Abschnitt „Task und Kommunikation in Echtzeit“ oben.

"Map on Existing": Abbilden auf bestehende Variablen

Die E/A-Mapping-Methode „Map on Existing” (Abbilden von E/As auf bestehende Variablen) wird bei Verwendung von CODESYS Redundancy nicht empfohlen. Solche Variablen werden nicht in den Eingangs- oder Ausgangsdatenbereichen gespeichert, sondern dort, wo sie deklariert sind. Dies führt dazu, dass sie während des Betriebs nicht synchronisiert werden.

Netzwerkvariablen

Netzwerkvariablen mit Schreibzugriff dürfen nicht verwendet werden, weil sonst mehrere Schreibtelegramme gleichzeitig gesendet werden. Netzwerkvariablen mit Lesezugriff sind erlaubt.

Dateizugriff

Ein Dateizugriff darf nicht verwendet werden, da unterschiedliche Dateidaten auf den unterschiedlichen SPSen beim Umschalten „Bumps“ verursachen können.

Wenn Sie Dateien verwenden, müssen Sie Dateihandles in den Datenbereichen deklarieren, die nicht der Redundanzkontrolle unterliegen. Die Dateien müssen auf beiden SPSen separat geöffnet werden. Das Dateihandle einer anderen SPS darf nicht verwendet werden, um auf Dateien auf dem lokalen PC zuzugreifen.

Beim Übersetzen prüft CODESYS Redundancy , ob Handlevariablen (RTS_IEC_HANDLE, CAA.HANDLE) in einem redundant kontrollierten Bereich liegen. Für jede Handlevariable, die in einem solchen Bereich gefunden wird, erscheint eine Warnung.

Online-Security-Benutzerverwaltung

Wenn eine Online-Security-Benutzerverwaltung verwendet wird, müssen Sie beide SPSen mit den gleichen Benutzernamen und den gleichen Passwörtern konfigurieren. Ansonsten werden Onlinedienste wie write variable oder online change nicht auf die Standby-SPS übertragen.

SoftMotion

CODESYS SoftMotion und CODESYS Redundancy können nicht kombiniert verwendet werden. Die Zeitanforderungen von SoftMotion können beim Einsatz von Redundanz nicht erfüllt werden.