SCADA-Grafikseiten frieren ein: Ursachenanalyse und Optimierung für Foxboro I/A Series und Woodward EasyGen

SCADA Graphics Page Freezing: Root Cause Analysis and Optimization for Foxboro I/A Series and Woodward EasyGen

Das Problem: Workstation friert nur beim Öffnen bestimmter Anzeigen ein

Bediener berichten, dass sich bestimmte SCADA-Anzeigen 15–30 Sekunden zum Öffnen benötigen. Der Mauszeiger hängt während des Ladens. Andere Anzeigen öffnen sich innerhalb von 2–3 Sekunden. Der PLC-Kommunikationsstatus bleibt stabil. In den Diagnosen treten keine Netzwerkfehler auf.

Dieses Muster isoliert das Problem auf die Grafikebene, nicht auf die Kommunikationsebene. Die einfrierende Anzeige enthält komplexere Objekte als die schnell ladenden. Bei der Foxboro I/A Series übernimmt der Display Manager die Objektinitialisierung. Bei Woodward EasyGen rendert die GraphWorX-Laufzeit SVG-basierte Grafiken. Beide Plattformen stoßen an ihre Grenzen, wenn eine einzelne Anzeige ihre Auslegungskapazität überschreitet.

Ursache 1: Übermäßige Echtzeit-Animationsobjekte

Pumpsymbolrotationen, Förderbandbewegungen, Rührwerksdrehanimationen und Farbstatusanzeigen erfordern alle kontinuierliche Aktualisierungszyklen. Jedes animierte Objekt verbraucht einen CPU-Thread für die Neuberechnung der Darstellung. Enthält eine Anzeige mehr als 40 aktive Animationsobjekte, ist die Rendering-Engine ausgelastet.

Bei Foxboro I/A Series V7.0 weist der Display Manager pro 10 Animationsobjekte einen Render-Thread zu. Bei 50 Animationen laufen 5 parallele Render-Threads plus der Hauptanzeigethread. Die CPU-Auslastung steigt auf 85–100 % auf einem einzelnen Kern.

Bei Woodward EasyGen mit GraphWorX64 löst jede Rotationsanimation alle 100 ms eine Neuberechnung der Matrixtransformation aus. Eine Generatorübersichtsseite mit 30 rotierenden Symbolen erzeugt 300 Transformationsoperationen pro Sekunde. Die GPU-Beschleunigungsschwelle liegt bei 25 gleichzeitigen Transformationen ohne dedizierte Grafikhardware.

Abhilfe: Ersetzen Sie Rotationsanimationen durch statische Farbstatusanzeigen. Verwenden Sie Blinkrate 1 (0,5 s an/aus) statt sanfter Rotation für den Betriebsstatus. Dies reduziert die CPU-Belastung pro Objekt um 60–70 %.

Ursache 2: Tag-Abonnement-Burst während der Seiteninitialisierung

Jedes grafische Element bindet sich an einen oder mehrere PLC-Tags. Öffnet ein Bediener eine Anzeige, sendet der SCADA-Client gleichzeitig Abonnementanfragen für alle gebundenen Tags. Eine Anzeige mit 800 Tag-Referenzen löst innerhalb von 200 ms 800 einzelne Abonnementnachrichten aus.

In der Foxboro I/A Series leitet die AW (Application Workstation) die Abonnements über den Nodebus an den CP (Control Processor) weiter. Jedes Abonnement erfordert eine Nodebus-Transaktion. Der Nodebus unterstützt maximal 500 Transaktionen pro Sekunde und Knoten. Eine 800-Tag-Anzeige überschreitet dieses Limit beim Initialladen.

Das Ergebnis: Die ersten 500 Tags werden sofort aktualisiert. Die restlichen 300 Tags werden in eine Warteschlange gestellt und treffen 1–3 Sekunden später ein. Bediener sehen teilweise aktualisierte Anzeigen, bei denen einige Werte veraltet erscheinen.

Bei Woodward EasyGen abonniert der OPC UA-Client Tags in Chargen von 100. Eine 800-Tag-Anzeige benötigt 8 Batch-Zyklen. Bei 250 ms pro Batch-Zyklus dauert die vollständige Initialisierung mindestens 2 Sekunden, bevor das Rendering beginnt.

  • Schritt 1: Zählen Sie die Gesamtzahl der Tag-Referenzen auf der problematischen Anzeige. Im Foxboro Display Editor verwenden Sie Werkzeuge > Tag-Zählbericht. In GraphWorX64 verwenden Sie Bearbeiten > Suchen > Alle gebundenen Variablen.
  • Schritt 2: Überschreitet die Anzahl 600, teilen Sie die Anzeige in zwei Unteranzeigen, die über Navigationsschaltflächen verbunden sind. Ziel sind maximal 400 Tags pro Anzeige.
  • Schritt 3: Erhöhen Sie bei Foxboro I/A Series den Nodebus-Transaktionspuffer von standardmäßig 256 auf 512 in den CP-Systemeigenschaften > Netzwerk-Tab.
  • Schritt 4: Konfigurieren Sie bei Woodward EasyGen im GraphWorX-Konfigurationsfile den OPC UA-Abonnementmodus auf monitored item add statt create subscription. Dies nutzt bestehende Sitzungen wieder.

Ursache 3: Eingebettete Trenddiagramme fragen historische Daten ab

Viele Anzeigen enthalten Echtzeit-Trendfenster, die die letzten 60 Minuten Prozessdaten zeigen. Beim Öffnen der Anzeige fragt jedes Trenddiagramm die Historian-Datenbank zur initialen Datenbefüllung ab. Drei Trenddiagramme auf einer Anzeige erzeugen drei gleichzeitige historische Abfragen.

In der Foxboro I/A Series bedient der Historian (Informix- oder SQL-basiert) Trendanfragen über die AIM Historian API. Ein 60-Minuten-Trend mit 5-Sekunden-Abtastintervall liefert 720 Datenpunkte pro Kurve. Ein 4-Kurven-Trenddiagramm ruft 2.880 Punkte ab. Drei Diagramme insgesamt 8.640 Punkte. Die Abfragezeit liegt je nach Datenbankindexstatus zwischen 3 und 8 Sekunden.

Während der Abfrage blockiert der Anzeigethread und wartet auf Daten. Der Bediener sieht einen eingefrorenen Bildschirm, bis alle Trenddaten eingetroffen sind.

  • Schritt 1: Identifizieren Sie eingebettete Trendobjekte auf der langsam ladenden Anzeige. Notieren Sie Zeitbereich und Abtastintervall jedes Objekts.
  • Schritt 2: Reduzieren Sie den initialen Zeitbereich von 60 auf 15 Minuten. Dadurch sinken die Datenpunkte pro Kurve von 720 auf 180 und die Abfragezeit um 75 %.
  • Schritt 3: Aktivieren Sie Lazy Loading für Trenddaten. Konfigurieren Sie Trends so, dass sie Daten 2 Sekunden nach Anzeigeöffnung laden, nicht während der Initialisierung. Bei Foxboro setzen Sie die Eigenschaft InitialLoadDelay des Trendobjekts auf 2000 ms.
  • Schritt 4: Begrenzen Sie die Anzahl der Trendkurven pro Diagramm auf maximal 4. Verwenden Sie bei mehr Variablen separate Diagramme.

Ursache 4: Hochauflösende Hintergrundbilder verbrauchen Speicher

Prozessgrafiken verwenden oft gescannte P&ID-Diagramme als Hintergründe. Ein typischer P&ID-Scan mit 300 DPI für einen großen Prozessbereich erzeugt Bilddateien von 8–15 MB im PNG-Format. Beim Laden in die SCADA-Anzeige belegt das unkomprimierte Bitmap 50–80 MB RAM.

Der Foxboro I/A Series Display Manager cached Hintergrundbilder im Shared Memory. Die Standard-Cachegröße beträgt 128 MB. Zwei Anzeigen mit je 12 MB Hintergrund verbrauchen 24 MB Cache plus 48 MB Arbeitskopie = 72 MB insgesamt. Das Öffnen einer dritten Anzeige erzwingt Cache-Eviction und Neuladen, was eine sichtbare Pause verursacht.

Woodward EasyGen GraphWorX64 speichert Hintergründe als base64-kodierte Strings in der GDFX-Datei der Anzeige. Ein 10 MB Hintergrund vergrößert die GDFX-Datei um 13 MB (base64-Overhead). Das Parsen dieses Strings verlängert die Ladezeit um 1,5–2 Sekunden.

  • Schritt 1: Prüfen Sie die Dateigrößen der Hintergrundbilder im SCADA-Projektverzeichnis. Markieren Sie alle Bilder über 2 MB.
  • Schritt 2: Exportieren Sie Hintergründe neu mit 96 DPI und JPEG-Kompression (Qualitätsstufe 85 %). So reduziert sich ein 10 MB PNG auf 400–600 KB JPEG bei minimalem Qualitätsverlust.
  • Schritt 3: Erhöhen Sie bei Foxboro I/A Series die Cache-Größe des Display Managers auf 256 MB über die AW-Umgebungsvariable DISPLAY_CACHE_SIZE=262144.
  • Schritt 4: Konvertieren Sie bei Woodward EasyGen Hintergrundbilder in den externen Referenzmodus statt Einbettung. Verwenden Sie ImageSource=File path statt ImageSource=Embedded.

Fazit und Handlungsempfehlungen

Das Einfrieren von SCADA-Grafikseiten resultiert aus vier überlappenden Ressourcenanforderungen. Erstens überlasten zu viele Animationsobjekte den CPU-Rendering-Thread. Zweitens überschreiten Tag-Abonnement-Bursts die Kapazität des Kommunikationsbusses. Drittens blockieren eingebettete Trenddiagramme den Anzeigethread bei historischen Datenabfragen. Viertens erschöpfen hochauflösende Hintergründe den Speicher-Cache.

Für Foxboro I/A Series-Systeme hat Priorität, den Nodebus-Transaktionspuffer auf 512 zu erhöhen, die Trend-Lazy-Load-Verzögerung auf 2 Sekunden zu setzen, den Display-Cache auf 256 MB zu erweitern und Anzeigen auf maximal 600 Tags zu begrenzen. Für Woodward EasyGen-Systeme empfiehlt sich, Rotationsanimationen durch Farbstatusanzeigen zu ersetzen, den OPC UA monitored-item reuse Modus zu verwenden und eingebettete Hintergründe in externe Dateireferenzen umzuwandeln.

Prüfen Sie alle Anzeigen mit Ladezeiten über 8 Sekunden. Dokumentieren Sie die Vorher-Nachher-Metriken in Ihrem CMMS. Ziel ist eine maximale Ladezeit von 5 Sekunden für jede Anzeige auf Standard-Workstation-Hardware (Intel i5, 8 GB RAM, integrierte Grafik).

Zeige alles
Blogbeiträge
Zeige alles
Bridging Allen-Bradley ControlLogix to Yokogawa CENTUM VP DCS via Modbus TCP: Protocol Mapping and Fault Diagnosis

Verbindung von Allen-Bradley ControlLogix mit Yokogawa CENTUM VP DCS über Modbus TCP: Protokollzuordnung und Fehlerdiagnose

Ein praxisorientierter Leitfaden zur Konfiguration der Modbus TCP-Kommunikation zwischen Rockwell Automation ControlLogix SPS und Yokogawa CENTUM VP DCS, einschließlich Registerzuordnung, Timeout-Anpassung und praxisnaher Fehlerbehebung.
PID Controller Tuning on Yokogawa Centum VP and Foxboro IA: A Field Engineer's Guide

PID-Reglerabstimmung an Yokogawa Centum VP und Foxboro IA: Ein Leitfaden für Feldingenieure

Die PID-Abstimmung auf Yokogawa CENTUM VP und Foxboro IA erfordert plattformspezifisches Wissen über den PID2-Block bzw. den PIDA-Block sowie die Nutzung von HART-Diagnosedaten der Feldgeräte. Dieser Leitfaden behandelt die Klassifizierung von Regelkreistypen, schrittweise Abstimmungsabläufe für beide Plattformen einschließlich der Ziegler-Nichols Closed-Loop-Methode und integrierter Auto-Tuner, HART-Diagnosen von Ventilstellern und Transmittern sowie praktische Fehlerbehebung bei oszillierenden und trägen Regelkreisen.
Commissioning Allen-Bradley PowerFlex 525 VFDs on ControlLogix 5580 Over EtherNet/IP: A Complete Field Guide

Inbetriebnahme von Allen-Bradley PowerFlex 525 Frequenzumrichtern auf ControlLogix 5580 über EtherNet/IP: Ein vollständiger Praxisleitfaden

Allen-Bradley PowerFlex 525-Antriebe kommunizieren mit ControlLogix 5580 über EtherNet/IP unter Verwendung von CIP Class 1 impliziter Nachrichtenübermittlung für zyklische I/O-Daten. Dieser Leitfaden behandelt die AOP-Versionanpassung, die IP-Konfiguration des Antriebs über den HIM-Parameter C128-C140, das Hinzufügen des Studio 5000-Moduls mit RPI- und Assembly-Größeneinstellungen, die Bitzuordnung des Logic Command/Status-Worts, den Zugriff auf explizite MSG-Parameter sowie die Diagnose der drei häufigsten Fehler: F81 Kommunikationsverlust, Fehler 16#0204 Verbindungszeitüberschreitung und F100 Parameter außerhalb des Bereichs.