Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
asuspc96
#2798
üzenetére
A leírását elnézve olyan sok probléma nem lehet vele. A potméterek jól vannak beállítva? Az egyik az érzékenységet állítja (ez lehet túl érzékeny is, mindenre bekapcsol), a másik a bekapcsolás időtartamát, ami a leírás szerint akár 200 mp is lehet, ami nem kevés. A legrosszabb eset persze a kettő (rossz) kombinációja.
Rá tudsz mérni valamivel (oszcilloszkóp, multiméter, digitális analizátor)?
-
kovisoft
őstag
válasz
asuspc96
#2776
üzenetére
Rendben, akkor én értettem félre. Ha meg kell várniuk egymást és egyszerre kell újraindulniuk, akkor jó lesz cog777 join-os megoldása.
Pythonban nem lesz memóriaszivárgás, mert automatikusan felszabadítja azokat az objektumokat, amikre már nincs referencia.
Szerk: lassú voltam.
-
cog777
őstag
válasz
asuspc96
#2769
üzenetére
"Arra gondolok ugye, hogy a listában ugye azokra a
thread-ekre van meg a referencia...ebből indul ki az okfejtésem. Szóval arra akarok kilyukadni, hogy így nem fognak egy idő után elszaporodni a szálak ? "Teljesen jol gondoltad
, ki kell torolni a listat, ha minden szal vegzett es ujrakezdeni. PC-n (RPi-n is kb PC operacios rendszer fut) szerintem teljesen mindegy ha eldobja a szalat es nem hasznositja ujra/tartja meg. Van rendes memoria kezeles stb. Nem ugy mint a kicsi esp32...
"És akkor hogy szedem ki az infót az egyes szálakból, hogy éppen hol tart ?
Gondolom akkor kéne valami szinkronizációs lépés is. Arra gondolok, hogy egyik szálból a másikba csak úgy nem fogok tudni átdobni infót."
Csak erdekesseg keppen mondtam, ha fontos lenne a nagyon rovid ido akkor meg a print utasitas is szamitana.
En meg a harverhez ertek kevesbe, mennyi a relek kapcsolasi ideje?
Version2 (kovisoft-nak es neked is koszonhetoen):while True:
for i in range(len(self.relay_threads)):
self.relay_threads[i].start()
for i in range(len(self.relay_threads)):
self.relay_threads[i].join()
self.relay_threads = [] -
cog777
őstag
válasz
asuspc96
#2766
üzenetére
A kododbol kiindulva es legegyszerubben, berakod egy ciklusba

while True:
for i in range(len(self.relay_threads)):
self.relay_threads[i].start()
Mert ahogy latom, vegigfut a feladatokon aztan kilep a szalbol.
(Csak erdekessegnek megemlitem hogy esp32-n futo micropythonon, ha sokszor keszul szal es lepsz ki belole akkor nem szabaditja fel a stack-et es par nap utan crash, igy kenytelen voltam allando 4 szalat kesziteni a halozati kezeleshez)Ha a releket viszonylag sok ideig tartod nyitva es zarva akkor vegulis az en egyszerubb megoldasom is mukodhet. Sok ido itt: masodperc.
Beagyazott rendszereknel szokas hogy van egy ciklus amelynek iteracioja rovid, tehat gyorsan vegig tud menni az osszes feladaton. Sot, ha mindig kivarja az idejet a kovetkezo iteraciora, hiaba vegzett az osszes feladataval, akkor remekul lehet az egyes feladatok idejet megtervezni es akar ido diagrammon abrazolni.
Tehat:
Vezerlo ciklus:
Rele 1 vezerles (nyit/zar/semmit nem csinal, tablazattol fuggoen)
Rele 2 vezerles (nyit/zar/semmit nem csinal, tablazattol fuggoen)
Rele 3 vezerles (nyit/zar/semmit nem csinal, tablazattol fuggoen)
Rele 4 vezerles (nyit/zar/semmit nem csinal, tablazattol fuggoen)
Var (legalabb 1ms legyen ez az iteracio)Ilyenkor teljes kontrol alatt van a vezerlese a hardvernek. Ez nem ritka implementacio, emlekszem hogy egy uzemben egy kis teljesitmenyu proci vezerelt komoly dolgokat igy, abban nem voltak szalak. (Ja, nem azert irom h ne probald ki a szalakat, csak mint erdekesseg)
Bocs ha ezt mar tudtad, nem derult ki szamomra hogy mennyire vagy szakertoje a temanak.
Mas: a print utasitas is lassit
a fontos idoziteseket elronthatja. Ilyenkor szoktak kulon szalban/processzben futo naplozasba beletenni az esemenyeket... de ha tobb mp-es idok vannak akkor nem szamit itt. -
cog777
őstag
válasz
asuspc96
#2757
üzenetére
Csak hangosan gondolkodom:
Kerdes az hogy mennyire fontos az hogy egyszerre kapcsoljanak a relek.Python csak 1 CPU-t tud hasznositani tehat mindenkeppen kapcsolgat a szalak kozott.
Ha eleg az hogy (hasra utok) 0.5 ms alatt kapcsoljon mind a negy rele, akkor akar a szalakat is elhagyhatod, igy egyszerubb lesz.
Pl csinalhatsz egy ciklust, abban vegig mesz mind a 4 relen, majd kivarod az egysegnyi idot, kezded elolrol.En valoszinuleg ezt csinalnam, es kimernem hogy mennyi ido alatt kapcsol 4 relet. Szerintem RPi gyors hozza.
Szalakkal valoszinuleg valamivel/kicsit jobb lenne, de ez sem parhuzamos, es nem biztos h megeri hogy 100us-ot nyertel

Persze ha tanulni akarsz, akkor okes.
Ha tenyleg parhuzamossagot szeretnel akkor inditanod kell kulon processzeket es vezerelni oket, de nem biztos h megeri.
Nalunk a vezerlo szoftvernel par ms a limit ami alatt reagalni kell az esemenyekre. Tehat meg nalunk sem kell egybol lekezelni, pedig GPS-t es hidraulikat kell kezelni.
-
justmemory
senior tag
válasz
asuspc96
#2759
üzenetére
Hát... az ütemezés lényege, hogy pontosan történjen minden
Olvastam arról egy cikket régen, hogy az időbeliség hogyan alakul, hiszen a kódnak le kell futnia, stb... Ilyenformán egyszerre nehéz elindítani bármit egy sima kóddal is, hiszen minden kódsor egymás után van... de pl.: egy bash cron-al is tehetsz próbát...
Én olyasmire tudnék gondolni, hogy akártime.sleep()-et is tehetsz bele, stb.
Új hozzászólás Aktív témák
- DJI FPV Racer drón
- Üzletből, garanciával, Macbook Pro M1 Max 14" 2021, 32GB RAM/512GBSSD/Liquid Retina XDR/magyar bill.
- Eladó RTX 3070 ti / i5 8600K / 16GB DDR4 / 500GB NVME SSD
- Asus Dual RTX 4070 SUPER EVO + FirstShop garancia 2027.04.09-ig
- Eladó GARANCIÁLIS Asus ROG Astral Nvidia Geforce RTX 5080 OC 16gb
- iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4266
- ÁRGARANCIA!Épített KomPhone i5 14600KF 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- Bomba ár! Lenovo ThinkPad T480s - i5-8GEN I 8-16GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Samsung Galaxy Tab S9 FE 256GB, Wi-Fi, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

, ki kell torolni a listat, ha minden szal vegzett es ujrakezdeni. PC-n (RPi-n is kb PC operacios rendszer fut) szerintem teljesen mindegy ha eldobja a szalat es nem hasznositja ujra/tartja meg. Van rendes memoria kezeles stb. Nem ugy mint a kicsi esp32...
