Millele see artikkel vastab
Artikli kokkuvõte
Topelt-OTE võistlusolukord (race condition) tekib siis, kui PLC-programm kirjutab ühe skaneerimistsükli jooksul samasse väljundmähisesse (coil) rohkem kui üks kord. Kuna redellogika täidetakse järjestikku, kirjutab viimane rida varasemad käsud üle. Lahendus on arhitektuurne: koondage väljundite juhtimine, valideerige skaneerimiskäitumine ja kontrollige tulemust simuleeritud seadme reaktsiooni põhjal.
Konveier ei ignoreeri stopp-käsku seetõttu, et PLC on „segaduses“. Ta ignoreerib seda, sest programm andis talle ühe skaneerimistsükli jooksul kaks erinevat käsku ja viimane juhis jäi peale.
Hiljutises 500 algajate esitatud lahenduse ülevaates, mis põhinesid OLLA Labi konveieri stsenaariumi andmetel, tekitas 68% kasutajatest dubleeriva kirjutamise samasse mootori käivitusbitti, kui lisasid teisese stopp-tingimuse või lubava tingimuse. See Ampergon Vallis sisemine mõõdik toetab ühte kitsast punkti: visuaalne kontroll jätab sageli tähelepanuta destruktiivse väljundite dubleerimise algajate redellogika muudatustes.
Mis on topelt-OTE viga PLC skaneerimistsüklis?
Topelt-OTE viga tekib siis, kui ühte ja sama väljundaadressi või silti (tag) kirjutab ühe PLC skaneerimistsükli jooksul rohkem kui üks Output Energize (OTE) juhis.
Redellogikas täidab PLC tavaliselt korduvat tsüklit:
- Sisendite lugemine
- Loogika täitmine
- Väljundite uuendamine
- Majapidamistoimingud ja side
See järjestus on deterministlik. Kui `MTR_1_Run` aktiveeritakse 3. real ja seejärel deaktiveeritakse või aktiveeritakse uuesti teisiti 15. real, määrab viimane rida lõpliku oleku, mis kirjutatakse väljundpilti.
„Viimane rida võidab“ reegel
„Viimane rida võidab“ reegel on järjestikuse täitmise praktiline tagajärg. PLC ei juhi tavaliselt füüsilist väljundkaarti sel hetkel, kui ta programmis OTE-juhisega kokku puutub. Ta uuendab sisemist väljundpilti loogika täitmise ajal ja kirjutab seejärel tulemuseks oleva oleku füüsilistesse väljunditesse skaneerimistsükli lõpus.
Miks konveier kokku jooksis? Stsenaariumi analüüs
Konveier jooksis kokku, sest stopp-tingimus kirjutati skaneerimistsükli hilisemas osas üle teise reaga, mis käskis sama mootori väljundit.
Destruktiivse mustri näide
Rida 3: `[NOT PE_1_Jam] ------------------------------- (OTE) [MTR_1_Run]` Rida 15: `[Upstream_Clear] -- [System_Run] ------------- (OTE) [MTR_1_Run]`
Kui `PE_1_Jam` muutub tõeseks, eemaldab 3. rida mootori käivitusbiti. Kui 15. rida jääb samas skaneerimistsüklis hiljem tõeseks, seatakse `MTR_1_Run` uuesti. Konveier töötab, kuigi ummistus püsib.
Kuidas märgata topelt-OTE võistlusolukorda OLLA Labi simulatsiooni abil?
Topelt-OTE võistlusolukorda märkate, jälgides väljundsildi olekut, käivitavaid tingimusi ja simuleeritud seadme reaktsiooni koos. OLLA Lab pakub ohutut keskkonda põhjus-tagajärg seoste jälgimiseks.
Kasutage muutujate paneeli diagnostikavahendina
Muutujate paneel (Variables Panel) paljastab sildi tasemel olekumuutused, mida staatiline redellogika ülevaade võib varjata. Diagnostiline muster on jälgida, kas `MTR_1_Run` naaseb skaneerimistsükli lõpuks tõeseks, kuigi ummistuse tingimus on aktiivne.
Milline on õige redellogika arhitektuur topeltmähiste vältimiseks?
Õige arhitektuur on lasta ühel real, ühel rutiinil või ühel selgelt piiritletud kaardistamiskihil omada lõplikku füüsilist väljundkäsku.
1. Paralleelne hargnemine: Ühendage loogika ühele reale koos selgete harude ja stopp-tingimustega. 2. Vahepealsed sildid: Arvutage sisemised tingimused mälubittide abil ja kaardistage need ühele lõplikule füüsilisele väljundile spetsiaalses väljundrutiinis.
References
- IEC 61131-3: Programmeeritavad kontrollerid — Osa 3: Programmeerimiskeeled - PLC skaneerimistsükli põhialused (AutomationDirect) - IEC 61508 Funktsionaalse ohutuse ülevaade - Võistlusolukorrad ja sünkroniseerimise kontseptsioonid (NIST sõnastik) - Digitaalse kaksiku valideerimine juhtimisloogika jaoks (IFAC-PapersOnLine)