Störungsfreies Design von industrieller Steuerungssoftware
2026-02-21 14:08:57··#1
Zusammenfassung: Dieser Artikel beschreibt die Merkmale von Störungen in industriellen Umgebungen und erläutert die Methode zur Störungsunterdrückung in industrieller Steuerungssoftware. Schlüsselwörter: Industrielle Steuerungssoftware, Störungsunterdrückung, Zuverlässigkeit. Beim Einsatz von Computersystemen in industriellen Umgebungen verursachen viele Störquellen zwar keine Schäden an der Hardware, verhindern aber häufig den ordnungsgemäßen Betrieb des Systems und können so zu Steuerungsausfällen und schwerwiegenden Unfällen führen. Die Störungsunterdrückung von Computersystemen lässt sich nicht vollständig durch Hardware lösen; daher gewinnt die Forschung zu softwarebasierten Störungsunterdrückungsproblemen zunehmend an Bedeutung. I. Strukturelle Merkmale und Störungspfade industrieller Steuerungssoftware. Obwohl sich die Funktionen industrieller Steuerungssoftware je nach System unterscheiden, weist ihre Struktur im Allgemeinen folgende Merkmale auf: Echtzeitfähigkeit: Einige Ereignisse in industriellen Steuerungssystemen sind zufällig und erfordern eine umgehende Behandlung durch die Steuerungssoftware. Periodizität: Nach Abschluss der Systeminitialisierung tritt die industrielle Steuerungssoftware in die Hauptprogrammschleife ein. Tritt während der Ausführung des Hauptprogramms eine Interruptanforderung auf, wird die Hauptprogrammschleife nach Ausführung der entsprechenden Interrupt-Service-Routine fortgesetzt. Abhängigkeit: Industrielle Steuerungssoftware besteht aus mehreren Aufgabenmodulen, die zusammenarbeiten, miteinander verbunden und voneinander abhängig sind. Menschliches Eingreifen: Industrielle Steuerungssoftware ermöglicht es Bedienern, in den Systembetrieb einzugreifen und Betriebsparameter anzupassen. Idealerweise läuft die industrielle Steuerungssoftware normal. Durch Störungen aus der industriellen Umgebung werden jedoch Periodizität, Abhängigkeiten und Echtzeitfähigkeit der Software beeinträchtigt, was zu Fehlfunktionen und schließlich zum Kontrollverlust über das industrielle Steuerungssystem führt. Dies äußert sich in: Änderungen des Programmzählers (PC), die den normalen Programmbetrieb stören. Störungen des PC-Werts führen zu zufälligen Werten und damit zu chaotischen Programmausführungen. Geleitet vom fehlerhaften PC-Wert führt das Programm eine Reihe sinnloser Anweisungen aus und gerät oft in eine Endlosschleife, was zum Kontrollverlust des Systems führt. Störungen des Status der Ein-/Ausgabeschnittstellen beeinträchtigen die Korrelation und Periodizität der industriellen Steuerungssoftware, wodurch Systemressourcen von einem einzelnen Aufgabenmodul monopolisiert werden und ein Systemstillstand entsteht. Zudem nehmen Datenerfassungsfehler zu. Störungen dringen in den Vorwärtskanal des Systems ein, überlagern das Signal und erhöhen die Datenerfassungsfehler. Dieses Phänomen ist besonders ausgeprägt, wenn die Sensorschnittstelle des Vorwärtskanals ein Niederspannungssignal empfängt. RAM-Datenbereiche werden durch die Störungen verändert. Je nach Störungskanal und Art der gestörten Daten variiert der Schaden am System. Manche Störungen verursachen numerische Fehler, andere Steuerungsausfälle, wieder andere verändern Programmzustände und manche den Betriebszustand bestimmter Komponenten (z. B. Timer/Zähler, serielle Schnittstellen usw.). Bei der Entwicklung eines Fernablesesystems für Stromzähler traten häufig starke elektromagnetische Störungen im Feld auf, die RAM-Daten beschädigten. Es kommt zu Steuerungsausfällen. In industriellen Steuerungssystemen wird der Ausgabewert des Steuerungszustands oft durch die Eingabe bestimmter Bedingungszustände und deren logische Verarbeitungsergebnisse bestimmt. In diesen Prozessen können Störungen Fehler in den Bedingungszuständen verursachen, was zu erhöhten Ausgabesteuerungsfehlern oder sogar zu Steuerungsausfällen führt. II. Software-Gegenmaßnahmen gegen Programmstörungen: Systemstörungen können den PC-Wert verändern und so Programmstörungen verursachen. Die wichtigste Software-Gegenmaßnahme bei Programmfehlern besteht darin, das System nach Erkennung des Fehlers umgehend in seinen ursprünglichen Zustand zurückzuführen. 1. Ein Überwachungs- und Tracking-Timer überwacht den Programmstatus mittels Timer-Interrupt. Das Zeitintervall des Timers ist etwas länger als die Zeit, die das Hauptprogramm für einen normalen Durchlauf benötigt. Die Timer-Zeitkonstante wird einmal während der Ausführung des Hauptprogramms aktualisiert. Solange das Programm normal läuft, tritt somit kein Timer-Interrupt auf. Sollte das Programm jedoch einen Fehler aufweisen und die Timer-Zeitkonstante nicht rechtzeitig aktualisieren, was zu einem Timer-Interrupt führt, setzt die Timer-Interrupt-Service-Routine das System zurück. Im 8031-Anwendungssystem wird beispielsweise zur softwareseitigen Interferenzunterdrückung das vom 8155-Timer generierte „Überlauf“-Signal als externe Interruptquelle INT1 für den 8031 verwendet. Als externer Takteingang für den 8155-Timer dient ein 555-Timer. Der Zeitwert des 8155-Timers ist etwas länger als die normale Schleifenzeit des Hauptprogramms. Im Hauptprogramm wird die Zeitkonstante des 8155-Timers bei jedem Schleifendurchlauf aktualisiert. Zu Beginn des Hauptsteuerungsprogramms wird klassifiziert und entsprechend behandelt, ob die automatische Wiederherstellung durch einen Hardware-Reset oder einen Timer-Interrupt ausgelöst wurde. 2. Software-Abfangmechanismen einrichten: Wenn der PC außer Kontrolle gerät und das Programm dadurch unkontrolliert in den Nicht-Programmbereich wechselt, werden im Nicht-Programmbereich Abfangmaßnahmen eingerichtet, um das Programm in den Abfangmechanismus zu zwingen und es anschließend in den Ausgangszustand zurückzubringen. Im Z80-Befehlssystem entspricht beispielsweise das Datenfeld FFH dem Neustartbefehl RST 56, der das Programm automatisch zur Einstiegsadresse 0038H springen lässt. Daher werden in einem Anwendungssystem mit Z80-CPUs alle Nicht-Programmbereiche auf FFH gesetzt, um das außer Kontrolle geratene Programm abzufangen. Zusätzlich wird an Adresse 0038H ein Transferbefehl gesetzt, der das Programm zum Programm für die Störungsbehebung springen lässt. III. Software-Gegenmaßnahmen gegen Systemblockaden: In industriellen Steuerungssystemen sind Ein-/Ausgabeschnittstellen wie A/D- und D/A-Wandler sowie Displays unerlässlich. Diese Schnittstellen kommunizieren mit der CPU mittels Polling oder Interrupts. Sie reagieren sehr empfindlich auf Störungen. Sobald ein Störsignal das Statuswort einer Schnittstelle verfälscht, interpretiert die CPU dies fälschlicherweise als Ein-/Ausgabeanforderung und unterbricht ihren aktuellen Betrieb, um die entsprechende Ein-/Ausgabe-Serviceroutine auszuführen. Da die Schnittstelle selbst jedoch keine Daten ein- oder ausgibt, belegt diese Serviceroutine über einen längeren Zeitraum CPU-Ressourcen, ohne diese freizugeben. Dies verhindert die Ausführung anderer Aufgaben und führt zu einer Systemblockade. Diese Art von durch Störungen verursachter Blockade lässt sich softwareseitig mithilfe einer „Zeitscheibenmethode“ beheben. Die konkreten Schritte sind: Die maximale normale Ein-/Ausgabezeit wird basierend auf den Zeitanforderungen der verschiedenen Ein-/Ausgabe-Peripheriegeräte zugewiesen. Jedem Ein-/Ausgabe-Taskmodul wird eine entsprechende Timeout-Prüfroutine hinzugefügt. Wenn Störungen den Schnittstellenstatus beeinträchtigen und eine Fehlfunktion der CPU verursachen, bleiben die Bereitschaftsinformationen des Peripheriegeräts über einen längeren Zeitraum ungültig. Nach einer gewissen Zeit kehrt das System automatisch vom Serviceprogramm des Peripheriegeräts zurück, um die Periodizität der Gesamtsoftware zu gewährleisten und einen Deadlock zu verhindern. IV. Software-Gegenmaßnahmen gegen Datenerfassungsfehler: Je nach Art und Folgen von Datenstörungen werden unterschiedliche Software-Gegenmaßnahmen eingesetzt, ohne dass ein festes Muster existiert. Bei Echtzeit-Datenerfassungssystemen werden zur Eliminierung von Störsignalen in Sensorkanälen häufig aktive oder passive RLC-Netzwerke in Hardware verwendet, um analoge Filter zur Frequenzfilterung zu realisieren. Eine ähnliche Frequenzfilterung kann auch mithilfe der Rechen- und Steuerungsfunktionen der CPU erreicht werden, die ähnliche Funktionen wie analoge Filter ausführen; dies ist die digitale Filterung. Zahlreiche Monografien zur digitalen Signalverarbeitung behandeln dies detailliert und können konsultiert werden. Mit der zunehmenden Geschwindigkeit der Computerverarbeitung wird die Anwendung digitaler Filterung in Echtzeit-Datenerfassungssystemen immer verbreiteter sein. In allgemeinen Datenerfassungssystemen können einfache numerische und logische Operationen zur Erzielung von Filtereffekten verwendet werden. Einige gängige Methoden werden im Folgenden vorgestellt. 1. Arithmetisches Mittel: Für einen einzelnen Datenpunkt werden mehrere aufeinanderfolgende Messwerte erfasst und deren arithmetisches Mittel berechnet. Dieser Mittelwert dient als Messwert für diesen Punkt. Diese Methode reduziert den Einfluss von Störungen auf die Messergebnisse. In der Regel sind 3 bis 5 Mittelwerte ausreichend. 2. Vergleichs- und Auswahlverfahren: Weisen die Messergebnisse des Regelsystems Abweichungen auf, kann das Vergleichs- und Auswahlverfahren zur Eliminierung fehlerhafter Einzelwerte eingesetzt werden. Dabei wird jeder Messpunkt mehrmals hintereinander abgetastet, und die Auswahl erfolgt anhand des Variationsmusters der Messwerte, wodurch fehlerhafte Daten eliminiert werden. Beispielsweise bedeutet „drei Messungen durchführen und zwei auswählen“, dass jeder Messpunkt dreimal hintereinander abgetastet und die beiden identischen Werte als Messwert verwendet werden. 3. Medianverfahren: Sind die Messwerte aufgrund von Störungen zu groß oder zu klein, werden für einen Messpunkt mehrere Messwerte nacheinander erfasst und verglichen. Der Medianwert dient als Messwert für diesen Punkt. 4. Rekursives digitales Filterverfahren erster Ordnung: Dieses Verfahren nutzt Software, um den Algorithmus eines RC-Tiefpassfilters zu implementieren und so den Hardware-RC-Filter durch eine Softwarelösung zu ersetzen. Die Formel für das rekursive digitale Filterverfahren erster Ordnung lautet: Yn = QXn + (1 - Q)Yn-1, wobei Q die Zeitkonstante des digitalen Filters, Xn der Filtereingang bei der n-ten Abtastung und Yn der Filterausgang bei der n-ten Abtastung ist. Softwarefilter können Fehler bei der Datenerfassung effektiv eliminieren. Die Wahl des Verfahrens sollte jedoch auf dem Variationsmuster des Signals basieren. V. Software-Gegenmaßnahmen für RAM-Datenfehler : In der Echtzeitsteuerung ist die Zerstörung von Daten im RAM eine der schwerwiegendsten Gefahren durch Störungen. Da der RAM verschiedene Rohdaten, Flags und Variablen speichert, kann seine Beschädigung Systemfehler oder -störungen verursachen. Je nach Ausmaß der Datenbeschädigung lassen sich drei Kategorien unterscheiden: * Vollständige RAM-Beschädigung; * Beschädigung eines bestimmten Datensegments im RAM; * Beschädigung einzelner Daten. In industriellen Steuerungssystemen wird der Großteil des RAM-Inhalts temporär für Analyse- und Vergleichszwecke gespeichert; nur ein sehr kleiner Teil der Daten darf nicht verloren gehen. Abgesehen von diesen unversehrten Daten kann der Großteil des restlichen Inhalts kurzzeitig beschädigt werden, was lediglich zu kurzfristigen Systemschwankungen führt, die sich schnell automatisch beheben lassen. Daher werden in der industriellen Steuerungssoftware, solange die wenigen unversehrten Datensegmente geschützt werden, üblicherweise Methoden wie „Verifizierung“ und „Kalibrierung“ eingesetzt. Beide Methoden haben ihre Vor- und Nachteile: Die Verifizierung ist aufwendiger, bietet aber eine hohe Zuverlässigkeit bei der Fehlererkennung. Die Flagging-Methode ist einfach, aber ineffektiv bei der Erkennung einzelner Datenbeschädigungen in Datentabellen. In der Programmierung sollten beide Methoden daher in Kombination verwendet werden. Die konkrete Vorgehensweise ist wie folgt: * Setzen eines Flag-Codes „0“ oder „1“ am Anfang und Ende wichtiger Bereiche im RAM-Arbeitsbereich; * Setzen eines Prüfworts für feste Datentabellen im RAM. Während der Programmausführung prüft ein vordefiniertes Fehlerprüfungsprogramm in regelmäßigen Abständen, ob jeder Flag-Code korrekt ist. Im Fehlerfall wird die Datenredundanztechnologie eingesetzt, um den Fehler mithilfe eines Programms zur Störungsunterdrückung zu beheben. Die allgemeinen Designprinzipien für redundante Datentabellen lauten: * Datentabellen sollten weit voneinander entfernt angeordnet werden, um die Wahrscheinlichkeit einer gleichzeitigen Beschädigung redundanter Daten zu verringern. * Datentabellen sollten so weit wie möglich vom Stack-Bereich entfernt sein, um die Möglichkeit einer Datenbeschädigung durch Stack-Überlauf aufgrund von Bedienungsfehlern zu minimieren. Die oben genannten Methoden zur Wiederherstellung von RAM-Bereichen sollten je nach den spezifischen Gegebenheiten der verschiedenen Anwendungssysteme ausgewählt werden. VI. Software-Gegenmaßnahmen bei Anomalien des Regelzustands In bedingten Regelsystemen steht die Sicherstellung normaler Regelzustände im Vordergrund. Treten Störungen in das System ein, beeinflussen sie verschiedene Regelzustände und verursachen Fehler in der Regelausgabe. Um die Systemsicherheit zu gewährleisten, können die folgenden softwareseitigen Störungsunterdrückungsmaßnahmen eingesetzt werden: 1. Software-Redundanz: Bei bedingten Regelsystemen wird die einfache Abtastung und Verarbeitung der Regelausgabe durch eine zyklische Abtastung und Verarbeitung ersetzt. Diese Methode bietet eine hohe Resistenz gegenüber zufälligen Störungen. 2. Einrichtung eines aktuellen Ausgabestatusregisters: Bei Störungen des Ausgabekanals und deren Verfälschung kann das System die Ausgabestatusinformationen des aktuellen Ausgabestatusregisters abfragen und den fehlerhaften Ausgabestatus umgehend korrigieren. 3. Einrichtung eines Selbsttestprogramms: Durch das Setzen von Statusflags in bestimmten Teilen oder Speichereinheiten des Computersystems und kontinuierliche, zyklische Tests während des Betriebs wird eine hohe Zuverlässigkeit der Datenspeicherung, -übertragung und -verarbeitung im System gewährleistet. Die oben beschriebenen Methoden zur Störungsunterdrückung in der industriellen Steuerungssoftware basieren auf der praktischen Erfahrung des Autors. Durch die Anwendung geeigneter Störungsunterdrückungsmaßnahmen bei der Entwicklung industrieller Steuerungssoftware lassen sich gute Ergebnisse erzielen. Die Kombination verschiedener Hardware-Störungsunterdrückungsmaßnahmen verbessert die Systemzuverlässigkeit erheblich.