193901. lajstromszámú szabadalom • Kapcsolási elrendezés több csatorna villamos fogyasztásának összegzésére
193901 IV/5. : A IV/5—IV/7. tömbök együttesen Euklideszi algoritmus szerint képezik a legnagyobb közös osztót. Amikor a maradék nulla értékű lesz, az osztó jelenti a legnagyobb közös osztót. A IV/5. blokk az előkészített operandusokkal elvégzi az osztást. IV/6.: A program megvizsgálja, hogy zérus-e a maradék. Ha nem zérus, akkor IV/7-be lép és keresi tovább a legnagyobb közös osztót (LNKO). 1V/7.: Az új, ismételt osztáshoz újabb adat előkészítés történik. A IV/5-ben szereplő osztó lesz az új osztandó és a IV/5-ben keletkezett maradék lesz az új osztó. Ezután visszaugrás IV/B pontra. IV/8.: A programszegmens egyszerűsítést végez. A csatorna bemeneti egyenérték számláló részét elosztja az LNKO értékkel. A kapott hányados neve: E.SZ. IV/9.: Hasonlóan a IV/8-hoz a szegmens egyszerűsít. A csatorna bemeneti egyenérték nevező részét osztja el a program az LNKO-val: E.N. IV/10.:E.Sz.Értékét elosztja a program a IV/9-ben kapott hányadosa. A kapott hányados egész része lesz az impulzusonként! halmozás „i“ jelű komponense. A maradék rész lesz a „j“ jelű komponens. Az osztó értéke lesz a ciklus határozó „m“ jelű érték. IV/11.: A kiszámított „i“; „j“; „m“ értékek a mérés adat gyűjtő blokk részére csatornánként eltárolásra kerülnek az operatív memóriában. Visszaugrás IV/A pontba. A 11. ábra szerinti programrészlet leírása: V/l. A program elolvassa a valós idejű ÓRA egységet. V/2. Megvizsgálja a program, a másodperc értékét. Ha nem zérus az értéke, V/8 szekvenciára ugrik. V/3. A program az ENG nevű flag-et vizsgálja, ha értéke zérus, akkor V/4.-ben folytatódik a rutin, ha nem, akkor kiugrik a kapcsolóóra vezérlő rutinból. A program az V=2. és V/3. szegmensekkel együtt biztosítja, hogy ez a rutin V/4-től minden percben csak egyszer fusson le. V/4. szekvenciában ENG flag tiltó állapotba kerül. A program összekomparálja a valós idő óra és perc értékét a kapcsolási időtömbök értékeivel. Azonosság esetén, amely ki- vagy bekapcsolási időpontot jelent valamelyik tarifális időtartamra, a PUFFI jelzésű memória rekeszben az érintett tarifa időszak bitjét „0“-ba vagy „l“-be állítja. A szekvencia második szakaszában a program adott sorrend szerint végigvizsgálja a tarifa biteket, úgy, hogy a legmagasabb prioritású tarifa bitjével kezdi a vizsgálatot. Csak akkor lép tovább a vizsgálatban, ha ez kikapcsolt állapotot mutat. 13 8 Egyébként, beállítja az operatív memóriában lévő TSVAD nevű címpointerbe a bekapcsolt tarifának az energiaösszeget tároló tömb kezdő címét. Amennyiben a második szintű (prioritású) tarifa is kikapcsolt állapotot mutat PUFFI alapján, a program nem vizsgál tovább, hanem elhelyezi TSVAD pointerbe a harmadik (legalacsonyabb prioritású) tömbcímet. Ezzel a módszerre! biztosítható, hogy egy időben mindig legyen kijelölt tarifális tömb, ahová az összegzett energiafogyasztás mérés történik, másrészt csak egy tömb legyen kijelölve és az a legmagasabb prioritású legyen a bekapcsoltak közül. (Egy tarifaidőszak beágyazódhat a másik tarifa időbe, így előfordulhat több bekapcsolt tarifa állapot a PUFFI-ben). A teljesítmény mérés viszont időszakosan szünetelhet is a kapcsolási programtól függően. V/5. A program eggyel csökkenti a periódus idő percszámlátót. V/6. Vizsgálat történik, hogy a periódusidő számláló értéke zérusra csökkent-e. Ha nem, akkor a programnak vége. V/7. Periódusidő számláló kezdő értékét visszaállítja a program, (ez a teljesítmény mérés időalapja) és a program lenullázza a mindenkori teljesítmény számláló tömböt (MXADL) V/8. ENG értékét zérusra állítja a program. Engedélyező állapot. A kijelzést vezérlő és tasztatúrát lekezelő 12. ábrán látható program blokk ismertetése: A készülék üzemszerű állapotban kioltja a kijelző mezőt. Ez a program blokk figyeli a tasztatúra mezőt. Amennyiben karakter érkezik, a DSPKR nevű belső számláló időzítőt elindítja a program és adott ideig a kijelzés engedélyeződik. Ezután a program tartalmilag is lekezeli a karaktert (parancs- vagy adatkaraktert.) Parancskarakterként elfogadja a TÖRL (kijelző mező törlése), emellett a T.K. parancsot, amelynek két funkciója van. Egyrészt adatbeírás lezáró. funkciót teljesít, ha a DFLAG nevű belső jelző állapota zérus, másrészt a következő kijelzési adatcsoportot lehívja a kijelzőre (amennyiben DFLAG értéke „I“)- A T.K. parancsot kiváltó nyomógombbal sorrendben minden mérési eredmény és bemeneti paraméter lehívható a kijelzőre. Adatkarakter esetén DFLAG jelző értéke „0“ lesz, majd a karakter beshiftelődik egy átmeneti PUFFG nevű mezőbe. A T.K. parancs hatására íródik át PUFFG tartalma a funkcionális helyére (operatív-, illetve háttérmemóriába). Az átmeneti tároló használatára (PUFFG) azért van szükség, mert a T.K. parancs hatására az effektiv elhelyezés előtt, egy tartalmi vizsgálat van közbeiktatva: amennyiben az átírandó érték nem esik bele a valós idő értékek értéktartományában akkor PUFFG tartalma lenullázódik és ez kerül átírásra, majd kijelzésre. 14 5 10 15 20 25 30 35 40 45 50 55 60 65