SCADA grafikas lapas iesaldēšana: pamatcēloņu analīze un optimizācija Foxboro I/A sērijai un Woodward EasyGen

Problēma: Darbstacija iesaldējas tikai atverot konkrētas displejus
Operatori ziņo, ka dažu SCADA displeju atvēršana aizņem 15–30 sekundes. Pele kursors aizkavējas ielādes laikā. Citi displeji atveras 2–3 sekunžu laikā. PLC komunikācijas statuss paliek veselīgs. Diagnostikā neparādās tīkla kļūdas.
Šis modelis norāda, ka problēma ir grafikas slānī, nevis komunikācijas slānī. Iesaldētais displejs satur sarežģītākus objektus nekā ātri ielādējamie. Foxboro I/A Series displeju pārvaldnieks veic objektu inicializāciju. Woodward EasyGen GraphWorX izpildlaiks renderē SVG bāzētu grafiku. Abas platformas cīnās, ja viens displejs pārsniedz to projektēšanas kapacitāti.
Iemesls 1: Pārmērīgs reāllaika animācijas objektu skaits
Sūkņa rotācijas simboli, konveijera lentes kustība, maisītāja griešanās animācijas un krāsu stāvokļa indikatori prasa nepārtrauktas atsvaidzināšanas ciklus. Katrs animētais objekts patērē vienu CPU pavedienu pārzīmēšanas aprēķinam. Ja displejā ir vairāk nekā 40 aktīvi animācijas objekti, renderēšanas dzinējs piesātinās.
Foxboro I/A Series V7.0 displeju pārvaldnieks piešķir vienu renderēšanas pavedienu uz 10 animācijas objektiem. Ar 50 animācijām sistēma darbojas ar 5 paralēliem renderēšanas pavedieniem plus galveno displeja pavedienu. CPU izmantošana pieaug līdz 85–100% uz viena kodola.
Woodward EasyGen ar GraphWorX64 katra rotācijas animācija ik pēc 100 ms izsauc matricas transformācijas pārrēķinu. Ģeneratora pārskata lapa ar 30 rotējošiem simboliem ģenerē 300 transformācijas operācijas sekundē. GPU paātrinājuma slieksnis ir 25 vienlaicīgas transformācijas bez speciālas grafikas aparatūras.
Risinājums: Aizvietojiet rotācijas animācijas ar statiskiem krāsu stāvokļa indikatoriem. Izmantojiet mirgošanas ātrumu 1 (0,5 s ieslēgts/izslēgts) vietā gludai rotācijai darbības statusam. Tas samazina CPU slodzi par 60–70% uz objektu.
Iemesls 2: Tagu abonēšanas sprādziens lapas inicializācijas laikā
Katra grafiskā elementa piesaiste vienam vai vairākiem PLC tagiem. Kad operators atver displeju, SCADA klients vienlaikus nosūta abonēšanas pieprasījumus visiem piesaistītajiem tagiem. Displejs ar 800 tagu atsaucēm izsauc 800 atsevišķus abonēšanas ziņojumus 200 ms laikā.
Foxboro I/A Series AW (Application Workstation) pārsūta abonēšanas CP (Control Processor) caur Nodebus. Katram abonējumam nepieciešama Nodebus transakcija. Nodebus atbalsta maksimāli 500 transakcijas sekundē uz mezglu. 800 tagu displejs pārsniedz šo limitu sākotnējā ielādē.
Rezultāts: pirmie 500 tagi atjaunojas nekavējoties. Pārējie 300 tagi rindojas un ierodas 1–3 sekundes vēlāk. Operatoriem redzami daļēji atjaunoti displeji ar novecojušām vērtībām.
Woodward EasyGen OPC UA klients abonē tagus 100 tagu partijās. 800 tagu displejam nepieciešamas 8 partiju cikli. Ar 250 ms partijas ciklu pilna inicializācija aizņem vismaz 2 sekundes pirms renderēšanas sākuma.
- 1. solis: Saskaitiet kopējo tagu atsauču skaitu problemātiskajā displejā. Foxboro Display Editor izmantojiet Rīki > Tagu skaita atskaite. GraphWorX64 izmantojiet Rediģēt > Atrast > Visas piesaistītās mainīgās.
- 2. solis: Ja skaits pārsniedz 600, sadaliet displeju divos apakšdisplejos, savienotos ar navigācijas pogām. Mērķējiet uz maksimāli 400 tagiem uz displeju.
- 3. solis: Foxboro I/A Series palieliniet Nodebus transakciju buferi no noklusējuma 256 līdz 512 CP Sistēmas īpašībās > Tīkla cilnē.
- 4. solis: Woodward EasyGen konfigurējiet OPC UA abonēšanas režīmu uz monitorēta vienuma pievienošanu, nevis abonēšanas izveidi GraphWorX konfigurācijas failā. Tas atkārtoti izmanto esošās sesijas.
Iemesls 3: Iebūvēti tendences diagrammas, kas vaicā vēsturiskos datus
Daudzi displeji iebūvē reāllaika tendences logus, kas rāda pēdējās 60 minūtes procesa datus. Kad displejs atveras, katra tendences diagramma vaicā vēsturisko datu bāzi sākotnējai datu aizpildīšanai. Trīs tendences diagrammas vienā displejā ģenerē trīs vienlaicīgus vēsturiskos vaicājumus.
Foxboro I/A Series Historian (Informix vai SQL bāzēts) apkalpo tendences pieprasījumus caur AIM Historian API. 60 minūšu tendence ar 5 sekunžu paraugu intervālu atgriež 720 datu punktus uz pildspalvu. 4 pildspalvu tendences diagramma iegūst 2 880 punktus. Trīs diagrammas kopā iegūst 8 640 punktus. Vaicājuma izpildes laiks ir no 3 līdz 8 sekundēm atkarībā no datubāzes indeksa statusa.
Vaicājuma izpildes laikā displeja pavediens bloķējas, gaidot datus. Operators redz iesaldētu ekrānu līdz visiem tendences datiem ir saņemti.
- 1. solis: Identificējiet iebūvētus tendences objektus lēni ielādējamajā displejā. Piefiksējiet laika diapazonu un parauga intervālu katram.
- 2. solis: Samaziniet sākotnējo laika diapazonu no 60 minūtēm līdz 15 minūtēm. Tas samazina datu punktu skaitu uz pildspalvu no 720 līdz 180, samazinot vaicājuma laiku par 75%.
- 3. solis: Iespējojiet tendences datu aizkavētu ielādi. Konfigurējiet tendences datu aizpildīšanai 2 sekundes pēc displeja atvēršanas, nevis inicializācijas laikā. Foxboro iestatiet Trend Object īpašību InitialLoadDelay = 2000ms.
- 4. solis: Ierobežojiet tendences pildspalvu skaitu diagrammā līdz maksimumam 4. Ja nepieciešams vairāk mainīgo, izmantojiet atsevišķas diagrammas.
Iemesls 4: Augstas izšķirtspējas fona attēli patērē atmiņu
Procesa grafika bieži izmanto skenētas P&ID shēmas kā fonus. Tipisks P&ID skenējums 300 DPI lielai procesa zonai rada attēlu failus 8–15 MB PNG formātā. Ielādējot SCADA displejā, nesaspiestais bitkaršu attēls aizņem 50–80 MB RAM.
Foxboro I/A Series Display Manager kešo fona attēlus koplietotajā atmiņā. Noklusējuma keša izmērs ir 128 MB. Divi displeji ar 12 MB foniem katrs patērē 24 MB kešā plus 48 MB darba kopiju = kopā 72 MB. Atverot trešo displeju, kešs tiek iztukšots un pārlādēts, izraisot redzamu pauzi.
Woodward EasyGen GraphWorX64 glabā fonus kā base64 kodētas virknes displeja GDFX failā. 10 MB fons palielina GDFX faila izmēru par 13 MB (base64 pārslodze). Šīs virknes parsēšana pievieno 1,5–2 sekundes displeja ielādes laikam.
- 1. solis: Pārbaudiet fona attēlu failu izmērus SCADA projekta direktorijā. Atzīmējiet jebkuru attēlu, kas pārsniedz 2 MB.
- 2. solis: Eksportējiet fonus atkārtoti ar 96 DPI un JPEG saspiešanu (kvalitātes iestatījums 85%). Tas samazina 10 MB PNG līdz 400–600 KB JPEG ar minimālu vizuālo kvalitātes zudumu.
- 3. solis: Foxboro I/A Series palieliniet Display Manager keša izmēru līdz 256 MB, izmantojot AW vides mainīgo DISPLAY_CACHE_SIZE=262144.
- 4. solis: Woodward EasyGen konvertējiet fona attēlus uz ārējo atsauču režīmu, nevis iebūvēšanu. Izmantojiet ImageSource=File ceļu, nevis ImageSource=Embedded.
Nobeigums un rīcības ieteikumi
SCADA grafikas lapu iesaldēšana rodas no četriem pārklājošiem resursu pieprasījumiem. Pirmkārt, pārmērīgs animācijas objektu skaits pārslogo CPU renderēšanas pavedienu. Otrkārt, tagu abonēšanas sprādziens pārsniedz komunikācijas joslas transakciju kapacitāti. Treškārt, iebūvētās tendences diagrammas bloķē displeja pavedienu, vaicājot vēsturiskos datus. Ceturtkārt, augstas izšķirtspējas foni izsmeļ atmiņas kešu.
Foxboro I/A Series sistēmām prioritāri palieliniet Nodebus transakciju buferi līdz 512, iestatiet tendences aizkavēto ielādi uz 2 sekundēm, paplašiniet displeja kešu līdz 256 MB un ierobežojiet displejus līdz 600 tagiem maksimāli. Woodward EasyGen sistēmām aizvietojiet rotācijas animācijas ar krāsu stāvokļa indikatoriem, izmantojiet OPC UA monitorēto vienumu atkārtotas izmantošanas režīmu un konvertējiet iebūvētos fonus uz ārējiem failu atsaucēm.
Auditējiet visus displejus, kuru ielādes laiks pārsniedz 8 sekundes. Dokumentējiet pirms un pēc metrikas savā CMMS. Mērķējiet uz maksimālu ielādes laiku 5 sekundes jebkuram displejam uz standarta darbstacijas aparatūras (Intel i5, 8 GB RAM, integrētā grafika).
