Hi Petya85!
Én úgy csinálnám, hogy minden egyes lépéshez hozzárendelnék annyi bit tárólót, ahány munkahenger van, vagyis 8x4-et.
Így minden lépéshez tartozna 4 bit, ahol minden bit egy-egy munkahenger adott lépésben betanított állapotát tartalmazná.
Valamivel, pl. egy számlálóval címezném, hogy a 8 db 4-es tároló közül melyik épp az aktív.
A betanításkor mindig az adott lépés adott munkahengerhez tartozó bitje be vagy kikapcsolódna attól függően, hogy annak a munkahengernek abban a lépésben milyen helyzetben kellene lennie.
"Lejátszáskor" a lépésket a számláló végigcímezné.
A tárolt bitek állapota minden lépésben "kimásolódna" a munkahengerek szelep kimeneteire. Mindig csak az aktuális lépésé persze.
Egy programrész pedig összehasonlítaná mindegyik munkahenger tényleges (véghelyzet szerinti) és a tárolt (betanított) állapotát. Ha az adott lépésben a tárolt és betanított helyzet mind a négy munkahengernél azonos, akkor léptetném a számlálót. Tehát olyankor jöhetne a következő lépés.