Hirdetés

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

  • byte-by

    tag

    válasz levelko #3137 üzenetére

    halo levelko!

    Látom Szirty már postafordultával válaszolt, de ha már dolgoztam vele akkor mégis ide irom.

    a memóriatáblázatban az aktuális idő/dátum szerepel.
    az általad megnyitott terület értékei : A351 -5157=51 perc 57 s,
    A352 -1907= 19.-e 7 óra, A353- 1302 = 2013 év 2. hó.

    a programrészletet valószínűleg azért nem engedi, mert a relációban az általad megadott érték ugyan konstans, de nincs megadva a típusa.
    tegyél elé egy kettőskeresztet és mivel bcd és szó hosszúságú 4 digit lehet. (pl. #2745= 27 perc 45s)

    én azért irtam bele a relációba D területről egy változót.
    ebbe, a memoriatáblázatban, olyan értéket irsz bele amit csak akarsz. plusz , ha van HMI akkor onnan is vátoztatható, mivel oda egyszerűen beilleszthető a memória.
    tehát pl. a D10 -be beirod hogy 2740 (bcd-t kiválasztva) akkor 27 perc 40 másodperckor lesz igaz a reláció.
    és persze utána is, mivel nagyobb-vagy-egyenlő típusú.

    Az igazi probléma itt következik.
    mivel Te 7 órától 9 óráig akarod üzemeltetni a valamit, ezért Neked az A352 kell.
    viszont ez nap / óra felbontású.vagyis ha mindennap kell akkor meg kell oldani, hogy a nap aktuális legyen az összehasonlítandó értékben.
    Tehát ma 19-e van , bekapcsol 19.-én 7 kor , kikapcsol 19.-én 9 kor.
    a reláció összehasonlitandó értékei az A352 alatt: "be" #1907 és "ki" #1909 .
    viszont holnap 20.-a lesz, aztán 21, stb.

    tehát gondoskodni kell róla, hogy az összehasonlítandó érték első két digitje az aktuális napot mutassa.
    vagy csak az órát mutató biteket kell használni.( A352. 0-7 = nap, A352. 08-15 = óra)
    utasításlistában meg kell nézni a megfelelő specifikált bit mozgató utasításokat.
    a MOVD utasítással mozgatni tudod a digiteket egy memoriába és azt hasonlíthatod össze.

    byte-by

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