Helló byte-by!
"Ha minden comparátor ugyanazt a special bit-et (255.06) használja, akkor a rákötött kimenetek mind aktívak lesznek , ha ez 1-ben lesz nem ?"
Nem. Bár tudjuk, hogy a létradiagram a huzalozott vezérlések kiváltására jött létre így azt utánozza és ahhoz hasonlít. Ha ezt a létrát lehuzaloznád, akkor úgy volna ahogy feltételezed.
De mégis csak egy processzor hajtja végre a programot, ami nem egy időben hajt végre minden utasítást, hanem sorban elemzi ki a logikai műveleteket és sorban kapja meg az egyes eredményeket. Létra esetén konkrétan soronként fentről lefele és a soron belül balról jobbra történik.
Ha a létrában bekapcsolsz egy bitet valahol a programban, az onnantól lefele be lesz kapcsolva egészen addig, amíg valami valahol (esetleg ugyanaz a sor a követező ciklusban) ki nem kapcsolja. Annyi csavar van még a dologban, hogy ha ez a bit egy fizikai kimenet, akkor a kimenetre a programon belül történt ki vagy bekapcsolás állapota minden ciklusban csak egyszer, a PLC ciklus végén jut el, mert a kimenet amit a program ki vagy bekapcsol nem a fizikai kimeneti bit, azt csak a PLC operációs rendszere írja ki a ciklusok végén.
No de visszatérve a kétségeidre:
Ha írunk egy ilyen programot:
Akkor az a következő eredményt adja. Ha a 0.00 bemenet OFF, akkor a 10.00 OFF, a 10.01 ON, a 10.02 OFF, a 10.03 ON állapotú lesz. Ha bekapcsoljuk a 0.00 bemenetet, akkor 10.00 ON, 10.01 OFF stb lesz.
Így működik a korábbi példában lévő összes flag, így az összehasonlítás eredményét tároló flagek is. A programban ahogy az sorban fut, minden CMP utasítás a saját eredménye szerint beállítja ezeket a flageket. Az összehasonlítás eredménye a programban bárhol felhasználható, de csak a következő CMP utasítás előttig, mert az felülírja őket a saját eredményével.
A CMP flagek tehát mindig a legutóbb végrehajtott összehasonlítás szerint állnak be. Ebből következően fontos az alábbi két szabály:
1. Összehasonlítás végrehajtása nélkül nem értékeljük ki a flagek eredményét
2. A flagek eredményét bármennyiszer felhasználhatjuk, de csak a következő összehasonlításig. Onnantól már a másik CMP eredményét tartalmazzák...