Fehlererkennung und -vermeidung

Der Zeitstempel gehört zu den wichtigsten Mechanismen von openSAFETY und verhindert Wiederholungen, vertauschte Reihenfolgen und Verzögerungen. Jedem Datenpaket wird bei seinem Versand die aktuelle Zeit aufgeprägt, mit dessen Hilfe der Empfänger sowohl doppeltes Auslesen vermeidet als auch die zeitliche Reihenfolge verschiedener Pakete sowie Verzögerungen feststellen kann. openSAFETY setzt keine verteilten Uhren voraus; ein spezielles Verfahren synchronisiert die Zeitgeber der Microcontroller in den Teilnehmern verlässlich untereinander. Bei der Zeitüberwachung zur Verhinderung von Fehlern, die durch den Verlust oder übermäßige Verzögerung von Daten verursacht werden, werden die Knoten ständig auf Lebensfunktion und ordnungsgemäßes Funktionieren überwacht. Außerdem erkennt der Consumer an den Anfragen, dass die Datenverbindung nicht unterbrochen ist. Dieser „Watchdog“ genannte Mechanismus wird bei openSAFETY als softwarebasierte Funktion umgesetzt. Der Identifier schließt Verwechslungen seitens des Empfängers aus: openSAFETY-Frames verfügen über eine eindeutige Kennung, die acht oder 16 Bit groß sind und aus einem Code besteht, der aus Teilen des Adressfeldes, des enthaltenen Telegrammtypus und des Frametyps gebildet wird. Das zuverlässigste Mittel, um Veränderungen des ursprünglichen Inhaltes zu erkennen, ist das CRC-Verfahren, bei dem mit einem Schlüssel aus jedem Datensatz eine Prüfsumme gebildet wird, die gemeinsam mit dem Schlüssel dem Datensatz angehängt wird. Diese Prüfsumme kodiert in unverwechselbarer Form den Datensatz. Der Empfänger errechnet aus der Bitfolge und dem Schlüssel den ursprünglichen Datensatz und vergleicht das Ergebnis mit dem nicht kodierten Datensatz. Bei Abweichungen des ursprünglichen Dateninhaltes wird die Nachricht ignoriert.