Az Elektrotechnikai folyóiratban cikk jelent meg a 40/2017.(XII.. 5.) NGM rendeletet módosító 27/2020.(VII.16.)ITM rendelet magyarázata. Érdemes a témát kitárgyalnunk? Hiszen informatika nincs benne!
A lényege;
-a modósító rendelet kiadva Magyar Közlöny július 16-i számban, hatályba lép július 31-én, a módósító rendelet hatályát veszti július 31-én, ( figyelem még mindig 2020 évben vagyunk ), továbbiakban az új egybeszerkesztett szöveg lesz hatályos. Tehát holnaptól ezt kellene alkalmazni, mi csak most kezdünk el beszélgetni ! Ne mondja senki hogy ez nem egy szokásos jogtechnikai trükk !!
Lényeges változások: megszünt a szerelői ellenőrzés, és a a szabványossági felülvizsgálat , új fogalom villamos biztonsági felülvizsgálat amely tartalmazza ( hosszú távú célként ) az áramütés és a szabványos állapot / tűzvédelmi jellegű / felülvizsgálatokat. Persze erre új OKJ vagy helyette valami, új szakmai és vizsgarendeletek, új tanfolyami jegyzetek stb.
Mostmár nem is mondhatjuk a fogalmat Érintésvédelem, hogy lehet ezt eladni a kuncsaftoknak, az is nehéz volt hogy van a munkavédelmiseknek megfelelő, meg a tűzoltóknak / tudom katasztrófavédőknek / megfelelő felülvizsgálat jegyzőkönyv.
Akkor amikor a végére ér a 100 oldalas okfejtésnek amiben megmagyarázza miért nem kell cosfi-t mérni AC teljesítmény méréshez. Ő nem foglalkozik hatásos, meddő és egyéb vackokkal, neki egyből a watt fog kijönni egy sima áram méréssel :-)
> ahhoz a processzornak kb két ezred másodpercenként kell megnéznie az impulzus bemenet aktuális állapotát.
Most tekintsünk el attól, hogy ez egy általad meghatározott - teljesen légbőlkapott - követelmény, (szegény shannon és nyquist meg forognak a sírjukban) de azért lássuk be, hogy az 500Hz nem tűnik egy legyőzhetetlen feladatnak egy 16MHz-es CPU-tól. De persze tudom, nagyot kell mondani, hozzá kell tenni hogy "lehet" és máris mindenki csillogó szemekkel néz.
> Nagyon gyakori port-leolvasás helyett ELVILEG meg lehet oldani megszakítással is (interrupt)
Szerinted abban az interrupt rutinban mit is kellene egészen pontosan csinálni ?
A három fázis drótját átvezeted ezen ? Mit mondasz a juzernek, amikor reklamál, hogy a csúcsszuper 2800Ft, 3x2800Ft-os megoldásod nem ugyanazt mutatja, mint a villanyóra ? Továbbá ezzel a megoldással nem mérsz feszültséget, az pedig nem ártana a teljesítmény szamításhoz, de lehet csak én vagyok ilyen maradi, neked van egy gugli keresésed, amihez nem is kell...
A fejlesztésre fordított idő mennyi ? Mennyi pénzt kérnél a 2800 3x2800Ft-on kívül ?
Dehogy maradunk le... hisz csak egy néhány utasításos rutinnak kell futnia a megszakításkor.
---
Gyenge megoldás az, ha MINDEN más feladatrészt is a megszakításban (realtime időben) végez el a programozó (nem csak az impulzus adminisztrálását). Holott azokat a részeket már ráér kezelgetni a megszakításon kívül is (a nem realtime időben).
A szóban forgó MCU-kal többezer/sec tempóban is lehet ilyesmi megszakításokat kezelni lazán-kényelmesen.
Ha kb negyed másodpercenként érkező impulzusok között eltelt időt 1% alati pontossággal szeretnéd memérrni, ahhoz a processzornak kb két ezred másodpercenként kell megnéznie az impulzus bemenet aktuális állapotát.
Nagyon gyakori port-leolvasás helyett ELVILEG meg lehet oldani megszakítással is (interrupt), de ilyenkor fennáll a veszély, hogy a megszakítás ideje annyira hosszúra nyúlik, hogy eközben lemaradunk egy impulzusról. Ha kész a szoftver idevágó része és elég gyors lefutásúnak bizonyul (mondjuk nem több 0,15 másodpercél), akkor esetleg be lehet vállalni a megszakításos számlálást is. mert 0,2 másodpercél gyakoribb impulzusokat (45 kW) nem tartok életszerűnek családi ház esetén.
"cosfi-t hogyan számolod ebből kényelmesen ? hogyan méred a hatásos és a meddő teljesítményt ? "
Jelen esetben nem mérem sem a cosfit, sem a hatásos, sem a meddő teljesítményt, sem a Föld-Hold távolságot és a Duna vízszintjét sem. Szerencsére ezen mérések egyike sincs a feladatok között.
"hogy méred kényelmesen a (mondjuk) 50 vagy 80A áramot ?"
Ha van igény a pillanatnyi teljesítmény loggolására rövid időintervallumban akkor lehet bonyolítani, bár kötve hiszem hogy érdekes lehet bárkinek perces felbontásnál részletesebben.
Arra meg elég percenként megszámolni az impulzusokat, azaz az elfogyasztott energiamennyiséget és kész.
A többi számolható.
Milliónyi loggert csináltam már, sd kártyára pl bevett szokásom mp-es felbontásban loggolni dolgokat ha valami gép működése érdekel. Pl a hőszivattyúmon lóg egy ilyen, havonta kiveszem a kártyát, betolom excelbe és bármit lehet nézegetni.
A webes cuccok inkább felületesebb mérésekre vannak kitalálva, de arra nagyon egyszerűek és jók.
Futtatni kel egy pl. 100 Hz-es számlálót és az impulzusra beütő megszakításban a számlálót kiolvasni+nullázni aztán tárolni az éppen olvasott értéket.
A tárolt impulzustávolság>>idő érték listát lehet időnként elküldeni/kiolvasni az "okos feldolgozó" résznek. Ami lehet maga a cucc vagy lehet távoli cucc is.
- az értékek darabszáma lesz az energiafogyás, mivel 400 darab impulzus 1 kWh - az egyes értéke a múló idővel arányosak, ezért azok alapján a teljesítmény is számolható és relatív időskála is építhető akár 1/100 sec felbontással - HA időnként az abszolút idő is tárolásra kerül (pl. induláskor/lekérdezéskor/naponta RTC, GPS, NETTIME alapján) akkor a relatív idő skála a "való világ" idéjere is szinkronozható
Szóval két vonal látszik kirajzolódni a problémára:
1, követed az Elek és társai diskurzust, és egy ezredmilliomod tízezredét is pontosan mérő arduinot összekötsz egy Linux szerverrel, amelyre saját magad írsz egy pár tízezer soros szoftvert, és már kész is.
2, ha képben vagy a Cayenne+wemos cuccal, akkor komolyabb programozói tudás nélkül összeütöd egy óra alatt az egészet :-)
Én domoticz+wemos-t használok, easyESP van rajta, a webes felületen adogatttam hozzá lazán a szezorokat. Impulzus mérést még nem csináltam ezzel, de nem hiszem hogy bármivel is bonyolultabb lenne.
Megszámoltatod vele az impulzusok számát percenként (vagy ahogy tetszik) és lesz egy elfogyasztott energiamennyiség és átlagteljesítmény adatod.
Jobban belegondolva egyszerűbb lenne impulzusokból körülményesen számolgatott wattok helyett kényelmesen figyelni a három fázis áramát és feszültségét és ebből akkor számolunk wattot, amikor jól esik :)
Az impulzusokat meg számolhatja egy kimondottan erre a célra csinált pici ketyere (akár saját elemes táplálással) és az Arduino akkor kérdezi tőle a számlálás aktuális állását amikor akarja.
És akkor helyben nem kell foglalkozni a mintavételi sebességgel, az órával, áramszünettel, az Arduino mondjuk 5 percenként elküldi egy adat-sort a webszerverre: az elmúlt 5 perc alatt mért maximális watt, a minmális watt és az 5 percnyi energiafogyasztás.
> Már maga a log-olás sem egyszerű, hiszen a wattmérő kimenetén két egymást követő impulzus között eltelt idő lehet akár több hét is, de az impulzusok követhetik egymást akár negyed másodpercenként is. [...]
Szerintem ez könnyebb, mint gondolnád. Vagy egy felfutó, vagy egy lefutó élre csinálnék IRQ-t, és az hívná meg a timestamp rögzítést. Így tökmindegy mennyi áramszünet volt közben.
> ha negyed másodperces intervallumokat is egy százalékos pontossággal szeretnénk naplózni, akkor két EZREDmásodpercenként kell megnézni, hogy történt e változás az arduino kiválasztott bemenetén.
Azért a milli/mikrosec naplózása csak nem vágja földhöz. Ha igen, akkor tényleg erősíteni kell azon a vason.
> "AJAX-szal lekérném a kívánt dátumú logfájlt" [...]
24 óránként, hetente, havonta lehetne más kivonatokat is csinálni a logfájlokból, ez sem okozna szerintem problémát. Ezzel fel lehet gyorsítani az egyéb megjelenítési igényeket.
"ekkor sem lehetetlen csak azzal megoldani a problémát"
Már maga a log-olás sem egyszerű, hiszen a wattmérő kimenetén két egymást követő impulzus között eltelt idő lehet akár több hét is, de az impulzusok követhetik egymást akár negyed másodpercenként is. És biztosítanunk kell, hogy egy impulzus se legyen kihagyva (sem kétezer megszámolva) és az impulzusok között eltelt idő is kielégtő pontossággal legyen megmérve még negyed másodperces tempó esetén is. Már ezen a ponton kétséges, hogy
- egy arduino képes-e elég nagy gyakorisággal (és egyenletes tempóban!) leolvasni egy-egy bemenetét ahhoz, hogy negyed másodperc környékén is egy százalék alatti pontossággal tudjon időt mérni két impulzus között
- hogyan számoljunk megbízhatóan (hardveresen/szoftveresen) akkor is, amikor két egymást követő impulzus között eltelt két hét alatt két áramszünet is volt :)
"Ahogy a temploggerem csinálja, naponta nyitnék egy új logfájlt, és abban csak az impulzusok timestamp-jeit tárolnám."
Egy hőmérséklet loggernek elég ha óránként párszor ránéz a hőérzékelőre és feljjegyzi a fokot meg az időpontot, de ha negyed másodperces intervallumokat is egy százalékos pontossággal szeretnénk naplózni, akkor két EZREDmásodpercenként kell megnézni, hogy történt e változás az arduino kiválasztott bemenetén.
Ráadásul nem is maga a naplózás itt a lehinkább teljesítmény-igényes feladat, hanem pl az a pillanat, amikor gazdi az mondja a szoftvernek, hogy a több százezernyi adatsorból kérem azokat az időpontokat, amikor a fogyasztás magasabb volt 5000 wattnál. Na ez utóbbi munka talán fél óráig is tartana egy kis arduino-nak, egy normális webszerver számára viszont csupán egy-két másodperc.
"AJAX-szal lekérném a kívánt dátumú logfájlt"
Az előbb készakarva olyan példát írtam, amikor az összes naplófájlra szükség van ;) akár sok évre visszamenőleg. Ez az egyik nagy hátránya az Ajax/JS megoldásoknak, hogy komolyabb adatkezelési feladatok esetén rohadtul megbonyolódnak azok a JS megoldások, amelyeket viszont szerver oldalon könnyedén mregvalósít akár egy ipari tanuló is, mondjuk 20-50 PHP sorban. Szerintem a teljes adatfeldolgozás történjen a szerver oldalon, a végeredmény megjelenítése persze már futhat akárhonnan.
Ennyire limitált közegben minimális munkát bíznék az Arduinora, de még ekkor sem lehetetlen csak azzal megoldani a problémát, szerintem. Ahogy a temploggerem csinálja, naponta nyitnék egy új logfájlt, és abban csak az impulzusok timestamp-jeit tárolnám. Ez az eredeti adat, minden más úgyis ebből lesz kiszámolva. Webszerver oldalon meg elküldenék egy (a szerver oldal számára) statikus html-t, amiben a AJAX-szal lekérném a kívánt dátumú logfájlt, majd a JS-ben feldolgoznám, így az Arduino-nak nincs más dolga, csak byte-okat lapátolni.
Amennyiben nem tudsz érdemileg hozzászólni egy témához, ne offold szét kérlek egy semmi jelentőséggel bíró elírással[kicsit kontakthibás SHIFT billentyű miatt]. Nagyon köszönöm.