193901. lajstromszámú szabadalom • Kapcsolási elrendezés több csatorna villamos fogyasztásának összegzésére
193901 CWR/8: Amennyiben CREG értéke nem zérus, a program visszaugrik CWR/A pontra, egyébként folytatódik CWR/9-ben, CWR/9: „C“ port P5 „0“. Háttérmemória vezérlő vonalai letíltódnak. RET: Szubrutinból általános visszatérítő parancs a főprogramba. CRD/1: „A“ port bemenet, „B“ port kimenet, egyébként ugyanaz, mint CWR./l. CRD/2: ugyanaz, mint CWR/2. CRD/3: ugyanaz, mint CWR/3. CRD/A: ugyanaz, mint CWR/A. CRD/4: ugyanaz, mint CWR/4. CRD/5: „C“ port/P6 „0“ Háttérmemória a kiválasztott byte tartalmát az olvasás engedélyező jel hatására kiteszi az „A“ port pontcsoportra. CRD/6: A program beolvassa az „A“ portra helyezett byte tartalmát és elhelyezi az operatív memóriában a HL által címzett helyre. CRD/7: „C“ port/P6 „ 1“ olvasás engedélyezés letíltódik. CRD/8: ugyanaz, mint CWR/7. CRD/9: ugyanaz, mint CWR/8. CRD/10:ugyanaz, mint CWR/9. A 9. ábra szerinti programrészlet leírása: III/1. Csatornaszám beállítás. A program folyamatosan kijelzi a beprogramozott numerikus értéket és figyeli, hogy a megadott érték belül van-e a megengedett értékhatárokon. Addig nem lép tovább, amíg ez a feltétel nem teljesül. A feltétel teljesülése után beállítja a program a ciklus számlátót 0 0 értékre (jelölése CSZ) és CWR szubrutinnal elmenti a csatorna szám értékét a háttérmemóriába. IH/2. Csatornaszám megegyezik már a CSZ- el? Ha nem, akkor folytasd III/3-nál, ha igen, ugorj ki az impulzus egyenérték megadás szekvenciából, mert minden csatorna érvényes egyenértékkel van ellátva. A program 111/C-ben folytatódik. III/3. Impulzus egyenérték számláló részének megadása a ciklusszámláló által meghatározott csatornához. A program karakter érkezésre vár a tasztatúráról. Ha numerikus karakter érkezett a program balról beshifteli a kijelölt adatmezőbe és kijelzi a kijelzőmezőn. Termináló parancs karakter (T.K.) esetén zérus vizsgálat következik az említett adatmezőn, ha nem nulla a tartalom, a program tovább lép III/4 blokkra. Zérus tartalom esetén a program nem lép tovább, újra karakterre vár. Ellenőrzés parancs karakter érkezésekor (E.K.) a program II1/A pontra ugrik. Ezzel mód nyílik a már beprogramozott paraméterek ellenőrzésére, hiba esetén a szükséges paraméterek módosítása megtörténhet. 11 III/4 Az impulzus egyenérték nevező részének megadása a blokk feladata, egyébként működése azonos a 111/3.blokk működésével. IH/5. Ciklusszám növelés és III/3. és 111/4- -ben megadott paraméterek mentése (CWR szubrutin) a blokk feladata. 111/-ból feltétel nélküli ugrás III/B pontra. III/6. A II1/6. blokktól a III/ll blokkig a program a beintegrált valósidejű óra beprogramozását, valamint a tarifá- 1 is idő értékek megadását várja. A 1II/6-0S blokkban történik a CSZ. újra állítása, valamint az operatív memóriában a kezdő címek beállítása. ÍII/7. A program karakter érkezésére vár. Ebben a szekvenciában a termináló parancs után nincs zérus vizsgálat, (megengedett időérték) Numerikus karakter esetén a program eljárás hasonló a III/3-ban ismertetettekkel. T.K. és E.K. parancs érkezés esetén a program tovább iép. III/8. Amennyiben III/7. szekvenciából E.K.-val lépett ki a program, akkor ugrás III.C. pontra ellenőrzési, vagy javítási célból. Egyébként a program III/9-ben folytatódik. III/9. Beprogramozott paraméterek mentése háttérmemóriába (CWR), valamint a STATUS SZÓ felírása itt történik a programmemóriából. Ezután, ha RESET parancs érkezik a tasztatúráról, melynek hatására a program mindig feltétel nélkül elugrik a 01. sz. blokkvázlat „A“pontjára, a II. blokk után a program nem a III. blokkban, hanem a IV. blokkban folytatódik. 1II/10.CSZ. növelés: CSZ = CSZ + 1 III/ll. A program megvizsgálja, hogy CSZ. értéke megegyezik-e a program által ismert határértékkel. Ha még nem érte el, akkor III/D. pontra ugrik és folytatódik a kapcsolási időértékek megadása, egyébként felugrik III.A. pontra. A Ill-as szekvenciából csak RESET paranccsal lehet kijönni. A 10. ábra szerinti programrészlet ismertetése: IV /1 - : Ciklusszám kezdőérték megadás (0) IV/2.: Nagyobb a ciklusszám a csatornaszámnál? Ha nagyobb, akkor szekvencia vége, kiugrás a 01.sz. blokkvázlat B jelű pontjára. Ha kisebb, a program IV/3-ban folytatódik. IV/3.: Ciklus szám alapján az aktuális csatorna bemeneti egyenérték tömbcímének kiszámítása. IV/4.: A csatorna egyenérték számláló és nevező legnagyobb közös osztója kiszámításának előkészítése. A csatorna bemeneti egyenértéktömb számláló részét egy osztó szubrutin osztandó mezőjébe tölti a program, a nevező részét pedig az osztó mezőbe. 12 5 10 15 20 25 30 35 40 45 50 55 60 65 7