Hirdetés

Új hozzászólás Aktív témák

  • moseras

    tag

    válasz Atok79 #622 üzenetére

    Szia.

    "mi az a state az egyes sorok végén?"

    Az állapotautomata belső állapotát leíró változó neve.

    Az állapotautomatákról pl. itt olvashatsz:
    [link]

    A nyomástesztet valahogy így írnám le (felülről lefelé nézve az új állapotot kikódoló sorokat):

    1. ha HIBA állapotban vagyok, ÉS nyomom a RESET-et, VAGY a blokk nincs engedélyezve, akkor NORMAL állapotba megyek

    2. egyébként: ha NORMAL állapotban vagyok, ÉS alacsony a nyomás, akkor TÖLT állapotba megyek

    3. egyébként: ha TÖLT állapotban vagyok, ÉS a nyomásom eléri VAGY meghaladja a 3.0 bar-t, akkor visszamegyek NORMAL állapotba

    4. egyébként: ha a nyomásom magas, akkor átmegyek HIBA állapotba

    5. egyébként: a state maradjon az ami, tehát state := state (ha ismered a CASE szerkezetet, akkor ez itt a DEFAULT ág)

    Azt is láthatod, hogy a HIBA állapotból csak a RESET hozza ki, tehát ha oda bekerült, akkor csak emberi beavatkozással lehet onnan kivenni.

    Ha belegondolsz, akkor ez nem más, mint egy grafikus leírása ezeknek:

    if (state == egyik_allapot) {
    if (feltetel)
    state := masik_allapot;
    } else if () {
    } else fi () {
    } else {
    state := state;
    }

    vagy:

    case (state) {
    case egyik_allapot:
    if (feltetel)
    state := masik_allapot;
    ...
    default:
    state := state;
    }

    Persze, ezt le lehet írni ST-ben is, ki hogy szeretné. Az ST-vel az a baj, hogy a gépészeknek hiába mutatod, nem látják a lényeget, viszont a grafikus leírás sokkal jobban szemlélteti a feladat megoldását.

    Imi.

Új hozzászólás Aktív témák