A 23. fejezet („Hibakeresés, diagnosztika, jelmonitorozás") gyakorlatainak részletes megoldásai és a tudáspróba megoldókulcsa. Előbb dolgozd ki magad, csak utána ellenőrizz!
Gyakorlatok — megoldások
23.1. feladat — Mérd meg a ciklusidőt és a watchdogot
Értékelési szempontok
A jegyzőkönyvben a Last, Average, Max és Min Cycle Time értékek szerepelnek a ciklus
hosszának minden fokozatánál. A Max a lényeges: a watchdog akkor old ki, ha egy ciklus
túllépi a Time × Sensitivity szorzatot (8.7) — ehhez elég egyetlen kiugró ciklus.
Kioldáskor a task hibaállapotba (kivételbe) kerül, a Status ezt jelzi, és a Log lapon
megjelenik az Exception bejegyzés — időbélyeggel, súlyossággal és a jelentő komponenssel
(23.8).
⚠ Gyakori hiba: az Average értékre hagyatkozni. Egy 12 ms-os átlag mellett is lehet
160 ms-os csúcs — és a leállást az okozza.
23.2. feladat — Kövesd a jel útját
Megoldás — a négy szint
| Szint | Mit nézel? | Mit jelent, ha itt akad el? |
|---|---|---|
| 1. | a DI LED a készüléken |
ha nem gyullad: bekötés, érzékelőtípus (PNP/NPN), tápellátás |
| 2. | az I/O-leképezés Current Value oszlopa |
ha a LED ég, de itt nem látszik: rossz csatorna vagy hiányzó leképezés |
| 3. | a hozzárendelt változó a monitorozásban | ha itt nincs érték: nincs hozzárendelt változó, vagy más POU-t nézel |
| 4. | a program azon pontja, ahol felhasználod | ha idáig eljut, de nem hat: a logika a hibás — vagy egy Force van bent (23.6) |
A figyelőlista ereje éppen az, hogy a 2–4. szint egy képernyőn látszik: így nem kattintgatással, hanem ránézésre derül ki, hol szakad meg a lánc.
23.3. feladat — Az oktató által generált hiba
Értékelési szempontok
A jegyzet akkor jó, ha lépésenként rögzíti, mit ellenőriztél és mit tapasztaltál — a zsákutcákat is. A záró kérdés a feladat lényege: hány lépéssel korábban lehetett volna megtalálni?
A tipikus tanulság: a hibát rendszerint azért kerestük sokáig, mert a közepén kezdtük (a programban), ahelyett hogy a jel útját követtük volna kívülről befelé (23.1). A diagnosztika négy szintje éppen ezt a sorrendet rögzíti.
23.4. feladat — Olvasd ki a hibatárolót
Értékelési szempontok
A megoldás tartalmazza az Exception bejegyzés időbélyegét, leírását és a jelentő
komponens nevét, valamint az XML-export megnyitásának tapasztalatát. Az AuditLog-ban a
saját tevékenységed nyoma látszik: bejelentkezés, letöltés, esetleg kényszerítés.
Ez a két napló együtt válaszol a hibakeresés két alapkérdésére: mi történt és ki tette. Az XML-export pedig azért fontos, mert a projektmunka dokumentációjához bizonyítékot ad (23.8).
23.5. feladat — A monitorozás konzisztenciája
Értékelési szempontok
A várt tapasztalat: a figyelőlistán előfordulhat olyan pillanatkép, amelyben a két érték
logikailag lehetetlen kombinációt mutat (bA és bB egyszerre igaz, pedig bB := NOT bA).
Amit ez jelent: a monitorozás nem garantálja, hogy a látott értékek ugyanabból a ciklusból származnak. A kijelzés nem pillanatfelvétel a program állapotáról, hanem egymás után kiolvasott értékek halmaza.
Következmény a hibakeresésre: ellentmondásos megjelenítésből nem szabad logikai
következtetést levonni. Ha az összefüggés fontos, a programban kell rögzíteni (egy ciklusban
kiszámított állapotváltozó, RS tároló, naplóbejegyzés) — és azt figyelni.
(Ez az I függelék M4 mérési pontja: a monitorozás ciklus-konzisztenciájáról a dokumentáció nem ad kifejezett kijelentést, ezért méréssel érdemes megismerni a viselkedést.)
Tudáspróba — megoldókulcs
| # | Válasz | Indoklás | Szakasz |
|---|---|---|---|
| 1 | a | A keresés a hardveres szinten (LED-ek) kezdődik — minden szint a következő előfeltétele. | 23.1 |
| 2 | b | Online módban az I/O-leképezés a Current Value oszloppal egészül ki. |
23.3 |
| 3 | c | Bemenethez leképezett változó a programból nem írható. | 23.3 |
| 4 | d | A kézzel átírt cím fix szimbólumot kap, és nem frissül automatikusan. | 23.3 |
| 5 | a | Töréspontnál a debug task I/O-i nem frissülnek. | 23.5 |
| 6 | b | Az adat-töréspont csak a CODESYS Control Win alatt működik. | 23.5 |
| 7 | c | A watchdog kioldását a Status = Exception jelzi. |
23.7 |
| 8 | d | A watchdog szempontjából a Max. Cycle Time a mérvadó — az átlag elrejti a kiugrást. | 23.7 |
| 9 | a | A Log lapon nincs Jitter oszlop — az a task-monitorozás adata. |
23.8 |
| 10 | b | Az AuditLog a felhasználói interakciókat mutatja, felhasználónévvel. |
23.9 |