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

  • Szirty

    őstag

    válasz who_a_way #3001 üzenetére

    Helló who_a_way!

    Akkor megpróbálok minden kérdésedre válaszolni egyben.

    "van lehetőség az SR tároló Q kimenetét egy globális változóba kimenteni, hogy bárhonnan elérhető legyen?"

    A kérdésnek félig nincs értelme, mert az SR tárolónak eleve kötelezően meg kell adnod egy változót.
    Ez persze lehet globális meg lokális.
    Lokális változót SR tárolónak megadni nincs értelme (Network 1), mert a blokk lefutása után elveszti értékét, az SR tároló lényege pedig az, hogy megtartsa előző állapotát amíg azon nem akarunk változtatni. Így az SR tárolónak sem lesz értelme ott.

    Az SR tároló Q kimenetén viheted tovább a logikai vonalat, oda tehetsz egy globális változót közvetlenül is anélkül, hogy további feltételeket is megadnál (Network 2). Akkor az a változó fel fogja venni magának az SR tárolónak az állapotát . De mivel az előbbi lokális, a blokk lefutása után tartalma véletlenszerű lesz, ezért legalább annyira nincs értelme a Q kimenet felhasználásának mint magának az SR tárolónak ebben az esetben.

    Na most ha kötelezően meg kell adni neki egy változót és nincs értelme hogy az lokális legyen, akkor ugye csak globális lehet.
    Akkor viszont eleve eléred azt a változót mindenhonnan, hivatkozhatsz rá így annak nem lesz értelme, hogy az SR tároló Q kimenetét közvetlenül egy másik változóba tedd (Network 3) hiszen hivatkozhatsz közvetlenül arra, amelyik az SR tárolót realizálja.

    "Egyébként ez a bit nekem eléggé beragadt, tehát állandóan true, habár default false értéke van."

    Ha lokális változót használtál SR tárolónak, akkor nem csoda.

    "meg úgy általában számlálókat, időzítőket hogyan kell kinullázni a program indulásakor?"

    Ilyesmire nagyon ritkán van szükség, főleg az ellenkezője szokott kelleni, vagyis hogy megtartsa az értékét kikapcsoláskor és visszakapcsoláskor folytatódjon a folyamat, ahol abbamaradt.
    Ha mégis szükséges a törlés, akkor két eset lehetséges, az egyik függ attól milyen CPU-d van pontosan. Ha ugyanis a T vagy C, vagy M terület amit "nullázni" akarsz kikapcsoláskor nem esik bele a HW configban megadható retentív területbe, akkor biza felejteni fog. Hogy ott mit lehet beállítani az meg CPU függő.
    Igaz írtad hogy 314-es a CPU, de abból is konkrétan 27 (!) fajta van.
    A másik lehetőség,,hogy létrehozol egy OB100-at, (ez egyszer lefut amikor a CPU futtatni kezdi a programot) amiben bebillentesz egy bitet, amit az OB1 utolsó sorában törölsz (Reset).
    Majd ezt a bitet berakod minden számlálód SR tárolód timered stb Reset bemenetére.

    "Azzal szívok egy ideje, hogy beragadnak a bitek.."

    Ezzel így nem lehet kezdeni semmit :) Fejtsd ki!

    "Azt próbáltam megvalósítani, hogy egy kimeneten állandóan megy ki jel (start jel).
    A maradék 3 kimeneten pedig 10 másodpercenként aktiválódik a jel. Timerrel és SR tárolóval valósítottam meg, de nem úgy működik ahogy kéne."

    Ebben pedig csak akkor tudok segíteni valószínűleg, ha megmutatod mit csináltál és leírod mellé mit akartál csinálni.

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