Zurück zum Blog

SLC 500-Überlauffehler 0020: Die S:5/0-Sperre beheben

Diagnostizieren Sie den schwerwiegenden SLC-500-Fehler 0020H, bevor Sie S:5/0 löschen. Erfahren Sie, wie die End-of-Scan-Promotion funktioniert, ermitteln Sie die erste fehlerverursachende Anweisun...

Der Fehler 0020H bei SLC 500 wird häufig als Überlauffehler beschrieben, doch der Code weist auf mehr hin als auf eine fehlerhafte ADD-Anweisung. Rockwell definiert ihn als Zustand eines Minor Errors, der beim Erreichen von END, TND oder REF durch den Prozessor weiterhin gesetzt war und deshalb zu einem Major Error hochgestuft wurde. Die Diagnoseaufgabe besteht darin, das Statusbit zu identifizieren, das die Hochstufung verursacht hat, festzustellen, welcher Vorgang es gesetzt hat, und zu entscheiden, ob eine kontrollierte Wiederherstellung sicher ist.

Allen-Bradley-SLC-500-Prozessor zur Diagnose des Major Errors 0020H

Fehler 0020H sollte zu einer Untersuchung der Statusdatei führen und nicht automatisch zu dem Schluss, dass die Prozessorhardware ausgefallen ist.

Lesen Sie die Statusdatei, bevor Sie etwas löschen

Notieren Sie Fehlercode, Katalognummer des Prozessors, Betriebsart, Uhrzeit, Produktionszustand sowie die Werte von S:5 und S:6, bevor Sie die Steuerung zurücksetzen. S:5/0 ist die Überlauffalle für mathematische Berechnungen. S:5/2 weist auf einen Fehler im Steuerregister hin, der durch Anweisungen wie FIFO-, Bit-Shift- oder Sequenzanweisungen verursacht werden kann. Auch andere S:5-Bits können am Ende des Scans hochgestuft werden. Wenn Sie den Prozessor löschen, bevor Sie diese Werte erfassen, vernichten Sie wichtige Beweise und begünstigen, dass derselbe Fehler erneut auftritt.

Das Rockwell SLC 500 Instruction Set Reference Manual erklärt, dass S:5/0 gesetzt wird, wenn ein mathematischer Überlauf auftritt, und dass ein Major Error 0020H ausgelöst wird, wenn das Bit bei der Ausführung von END, TND oder REF weiterhin gesetzt ist. Das Handbuch empfiehlt, das Bit nach der betreffenden Anweisung zu untersuchen, geeignete Maßnahmen zu ergreifen und erst danach S:5/0 mit einem OTU oder das entsprechende Statuswort zu löschen.

Verstehen Sie sowohl das mathematische Ergebnis als auch die Falle

Bei ADD, SUB, MUL, DIV oder NEG setzt ein Ergebnis, das im Ziel nicht dargestellt werden kann, das arithmetische Überlaufbit S:0/1 und die Falle S:5/0. Im Standardzustand von S:2/14 ist ein positives Ergebnis auf 32767 und ein negatives Ergebnis auf -32768 begrenzt. Wenn S:2/14 gesetzt ist, können stattdessen die niederwertigsten 16 Bits im Ziel abgelegt werden. Diese Einstellung verändert das Verhalten des Ziels; sie beweist jedoch nicht, dass das Anwendungsergebnis gültig ist.

DDV und einige Konvertierungs- oder Skalierungsanweisungen unterliegen zusätzlichen Regeln, daher muss die Untersuchung der genauen Referenz der jeweiligen Anweisung folgen. Eine Division durch null, eine ungültige Steuerlänge oder eine indirekte Adresse außerhalb ihres zulässigen Bereichs kann einen anderen Statuspfad auslösen. Ordnen Sie nicht jedes 0020H-Ereignis einem „Integerüberlauf“ zu, ohne S:5 und die Anweisung zu prüfen, die unmittelbar vor dem Setzen des Bits ausgeführt wurde.

Finden Sie den ersten fehlerverursachenden Vorgang

Prüfen Sie die letzten Änderungen und gleichen Sie jede Anweisung ab, die das beobachtete Statusbit setzen kann. Bei einem mathematischen Überlauf sollten Sie Skalierungsberechnungen, Produktionssummen, Einheitenumrechnungen, akkumulierte Laufzeitwerte, Vorzeichenbegrenzungen und Zwischenergebnisse untersuchen. Eine Berechnung kann in technischen Einheiten mathematisch korrekt, aber dennoch unsicher sein, wenn ein Zwischenschritt in einer 16-Bit-Ganzzahl gespeichert wird.

Erfassen oder protokollieren Sie Quelloperanden, Zielwerte, S:0/1 und S:5/0 rund um verdächtige Anweisungen. Reproduzieren Sie in einem Offline-Testsystem Grenzfälle knapp unterhalb, genau am und oberhalb des zulässigen Bereichs. Wenn mehrere Anweisungen die Falle während eines Scans setzen können, fügen Sie vorübergehend Diagnose-Latches hinzu, die die erste Stelle identifizieren. Diese Diagnosebits sollten nach der Ursachenklärung überprüft, benannt und entfernt oder formell beibehalten werden.

Verwenden Sie Wiederherstellungslogik nur nach einer ausdrücklichen Richtlinie

Ein pauschales OTU S:5/0 am letzten Rung kann die Hochstufung am Ende des Scans verhindern, unterdrückt jedoch auch die Abschaltung, unabhängig davon, welche Berechnung übergelaufen ist. Das kann für einen unkritischen Zähler akzeptabel sein, dessen Wert begrenzt und durch einen Alarm überwacht wird. Es ist nicht akzeptabel, wenn das Ergebnis Bewegungen, Druck, Temperatur, Dosierung, den Geräteschutz oder eine sicherheitsrelevante Entscheidung beeinflusst.

Robuste Logik prüft das Ergebnis der Anweisung unmittelbar an der Stelle ihrer Ausführung. Validieren Sie die Operanden vor der Ausführung, wählen Sie ein Ziel mit ausreichendem Wertebereich, begrenzen Sie Werte nur, wenn dies prozesstechnisch sinnvoll ist, setzen Sie einen Diagnosealarm, verwenden Sie einen dokumentierten sicheren Ersatzwert und löschen Sie anschließend die Falle. Wenn die richtige Reaktion darin besteht, die Sequenz anzuhalten, bewahren Sie den Fehlerzustand, statt den Prozessor zum Weiterlaufen zu zwingen.

Eine User Fault Routine kann eine kontrollierte Wiederherstellung für ausgewählte Ereignisse unterstützen, und das Rockwell-Handbuch enthält ein Beispiel, das wiederholte 0020H-Vorkommen zählt und schließlich eine Abschaltung zulässt. Dieses Muster ist aussagekräftiger als ein bedingungsloses Löschen, weil es zwischen einem einzelnen, behandelten Ereignis und einem wiederkehrenden Fehler unterscheidet. Die Fault Routine selbst muss sorgfältig getestet werden; ein zweiter Fehler in ihr kann Diagnoseinformationen überschreiben oder die Wiederherstellung verhindern.

Trennen Sie Softwarefehler von Hardwareproblemen

Eine Überlauffalle weist normalerweise auf Programmdaten und das Verhalten von Anweisungen hin, nicht auf einen ausgefallenen Baugruppenträger. Dennoch können instabile Spannungsversorgung, Speicherprobleme oder unbeabsichtigte Programmänderungen die Daten beeinflussen und sollten untersucht werden, wenn die Beweislage dafür spricht. Überprüfen Sie Batterie und Spannungsverlauf der Steuerung, vergleichen Sie das laufende Programm mit dem freigegebenen Archiv und prüfen Sie, ob ein HMI, eine Nachricht oder ein externes System die betreffenden Operanden schreibt.

Tauschen Sie einen SLC-Prozessor nicht als erste Maßnahme gegen eine reproduzierbare mathematische Bereichsüberschreitung aus. Ein Ersatzprozessor, auf dem dasselbe Programm mit denselben Daten läuft, wird den Fehler erneut erzeugen. Wenn die Plattform veraltet ist, planen Sie Ersatzgeräte und Migration im Rahmen des Lebenszyklusplans für PLC- und PAC-Systeme am Standort; trennen Sie diese Entscheidung jedoch von der unmittelbaren Ursachenanalyse.

Beweisen Sie die Wirksamkeit der Korrektur

Testen Sie die korrigierte Logik mit Normalwerten, an beiden Bereichsgrenzen, mit ungültigen Eingaben, bei Kommunikationsverlust, beim ersten Scan und unter allen Rücksetzbedingungen. Stellen Sie sicher, dass die Alarme die betroffene Berechnung identifizieren, der Ersatzwert sicher ist und wiederholte Ereignisse gezählt werden. Beobachten Sie S:5/0 und S:0/1 während eines repräsentativen Produktionszyklus und verifizieren Sie, dass der Prozessor einen wiederkehrenden Überlauf nicht lediglich verbirgt.

Archivieren Sie die RSS-Dateien vor und nach der Änderung, die Fehlernachweise, Testergebnisse und die Begründung für jede Wiederherstellungslogik. Ergänzen Sie diese Dokumentation bei der Modernisierung der Anwendung durch die Leitlinien zur SLC-Skalierungsmigration am Standort. Fehler 0020H wird beherrschbar, wenn das Team ihn als präzises Problem von Status und Datenqualität behandelt und nicht als Bit, das man sofort unlatchen muss.

Einen Kommentar hinterlassen

Bitte beachten Sie, dass Kommentare genehmigt werden müssen, bevor sie veröffentlicht werden.