Hirdetés
- A természettel együtt ébredeznek a hardverek
- A '90-es évek jutnak az eszünkbe az ATK készülő egeréről
- Huszadik születésnapjára eléggé megváltozott az Antec nagytornya
- Még a saját szövetségeseivel szemben is fegyverként használná az AI-t az USA
- Mégis meglepi egy új GeForce-szal a rajongókat az NVIDIA?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amlogic S905, S912 processzoros készülékek
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Melyik tápegységet vegyem?
- Apple MacBook
- iPad topik
- Fejhallgató erősítő és DAC topik
- Házimozi belépő szinten
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Androidos fejegységek
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
horvathcsaba
#264
üzenetére
Helló horvathcsaba!
Nos az általad idézett PID controler hívás szerintem a következők miatt nem úgy működik mint ahogy várod:
1.
I_ITL_ON:=TRUE
Ez az integráló tag inicializálását kapcsolja be, és mivel TRUE értéket adtál neki, nálad ez aktív. Az inicializálás azt csinálja, hogy ha az I_ITL_ON:=TRUE, akkor az integráló tagbe beírja az I_ITL_VAL értékét, ami a te hívásodnál 0. Ezzel gyakorlatilag hatástalanítod az integráló tagot, mivel az nem lesz képes kimozdulni 0 értékről (amennyire tudom az I_ITL_ON nem élvezérelt).2.
CYCLE :=T#10S
A nagyobb gond szerintem ezzel lesz. A PID controller hívásának van egy olyan szabálya, hogy konstans időközönként kell meghívni! Tehát nem tehetd bele simán a programban, ahol minden PLC ciklusban lefut, mivel a PLC ciklusok hossza nem konstans. Két kézenfekvő hívási mód kínálkozik:
- Egy élvezérelt cycle memory bittel hívod.
- Cyclic interruptból hívod (pl. OB35)
Mindkét megoldás biztosítja a fenti feltételt. A PID CYCLE paraméterében pedig pontosan ugyanezt az időt kell megadnod amennyi időnként hívod (ms pontossággal). Ebből tudja a PID "belül", hogyan telik az idő, ennek alpján számolja az integrálási és diff időket stb. Ezért ha ez a paraméter nem jól van megadva, akkor a PID rendszerint kiakad vagy nem megfelelően működik.
A dolog folyománya hogy a PID legkisebb reakcióideje a hívási ciklusidőnél semmiképp nem lehet kisebb.
A fenti 10s tehát valószínűleg nem jó, hacsak nem 10 másodpercenként hívod a PID-et.3.
PVPER_ON:=TRUE
Ha a PVPER_ON be van kapcsolva, akkor a PID-nek a mért értéket (process variable) perifériaszó formában adod meg és a PID-re bízod az érték normalizálását (0-100% tartományra konvertálását), amit a PV_FAC mint szorzó és PV_OFF mint eltolás értéke alapján számol ki. Ezek nálad 1 és 0. Tehát ettől működhet ugyan, de a PIW 256-ban 0-100 tartományban kell tartani az értéket. A Step7 alapból feltelepít egy doksit ami angolul ugyan, de elég jól leírja mi merre meddig. Ebben van is egy blokk diagram a PID-ről, ami segít áttekinteni a paramétereket:
Új hozzászólás Aktív témák
- Formula-1
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kés topik
- MWC 2026: Kezünkben a Vivo V70, megvan a magyar ára is
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- Tarr Kft. kábeltv, internet, telefon
- Gyúrósok ide!
- Pécs és környéke adok-veszek-beszélgetek
- SUSE Linux
- Microsoft Excel topic
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Lenovo ThinkPad X1 Active Noise Cancellation fejhallgató
- MacBook Air M1 13" 16GB RAM 256GB SSD 27% áfás számla 0347AB
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Részletfizetés. BankMentes. Kamatmentes. Új noblechairs EPIC - ZÖLD 3 év garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

