Hirdetés

Új hozzászólás Aktív témák

  • Szevasz moseras!

    "6. Nyomógomb élkezelést (egy nyomásra a kimenet BE, egy másikra pedig KI) hogy lehet létrában megoldani ?"

    A konkrét megoldás függ az adott PLC-től is. Többféleképpen is megoldható, de az elv kb. az, hogy létre kell hozni a nyomógombra egy le vagy felfutó impulzust. Vagyis olyan belső változó bitet, ami egy PLC ciklus ideig aktív lesz, amikor a gomb 0->1 vagy 1->0 állapot átmenetet produkál. Ezután ezzel a bittel invertálni kell egy másik bitet. Ez utóbbi lesz az, amit a gomb egyszer be, aztán ki kapcsol.

    "7. Melyik nyelv a "jó" megoldás a problémákra az 5 közül ? Gondolom ez feladattól függ, de általánosságban mikor jó a létra, mikor jó az ST ?"

    Persze hogy a feladattól függ, hiszen mindegyiket egy-egy feladatra találták ki.
    Ugyanakkor igen nagy az átfedés is, hiszen az alacsonyabb szintű nyelvekkel megoldható a magasabb szintűben írt feladat. A nagyfokú átfedés miatt benne van a válaszban a melyiket szeretem/ismerem dolog is. :)
    De pl. az olyan folyamatok, amik nagyon jól, egymástól elhatárolható állapotokból (lépésekből) áll, azokra valamelyik szekvenciális nyelv a legjobb. Különösen ha a folyamat bonyolult elágazásokból és ágak egyesülésekből álló lépéshalmaz.
    A létra elég alacsony szintű, de elsősorban a logikai kapcsolatok hálózatára van kihegyezve, ebben hatékony (mint az FBD, de a kettő közötti különbség jóformán csak a megjelenítésben van). Összetettebb számításokhoz a létra vagy FBD már elég körülményes tud lenni. Az ilyen program hamar átláthatatlan lesz. Amit létrában 6-7 oldal kiszámoltatni, utasítás listában pár sorban is elférhet.
    Pl. létrában egy pozícionálással foglalkozó programot írni lehet ugyan, de nem biztos hogy az a legjobb megoldás. Viszont jó megoldás ha a pozícionálás részleteivel foglalkozó program pl utasításlistában van írva, ami egy külön blokk és azt létrából hívjuk. Vagyis a blokknak létrából mondjuk meg mikor mit csináljon, de a végrehajtás részleteit (hogy azt hogyan csinálja amit csinál) a blokkon belül STL-ben írjuk meg.
    Mivel az utasítás lista a legalacsonyabb szintű nyelv, ez áll legközelebb a HW-hez. Éppen ezért ez az a nyelv, ami leginkább eltér az egyes gyártmányoknál.

    "8. C, C++-os múltamnmal nekem egyébként az ST tetszik, de a létrát is meg szeretném érteni jól."

    Ez a múlt mindenképp hasznos lesz!
    De a létra kicsit más gondolkodást igényel.

    Szia Szirty

    Köszönöm a gyors válaszokat!

    Ezek alapján el is indultam egy valós példával:
    [link]

    És a hozzátartozó lista:

    VAR
    IN1: BOOL; (*Garázsfeljáró autó/kézi váltókapcsoló*)
    IN2: BOOL; (*Még nem tudom*)
    IN3: BOOL; (*Hóérzékelő*)
    IN4: BOOL; (*Garázsfeljáró fűtés kézi START/STOP nyomógomb*)
    M100: BOOL;
    M101: BOOL;
    R_TRIG_1: R_TRIG;
    SR_1: SR;
    M1: BOOL; (*Garázsfeljáró fűtés feltétel*)

    IN5: BOOL; (*Lakás fűtés igény*)
    M2: BOOL; (*Lakás fűtés feltétel*)

    Q101: BOOL; (*Termofej_1*)
    Q104: BOOL; (*Garázsfeljáró fűtés aktív*)
    T1: TON;
    Q102: BOOL; (*Gázkazán*)
    Q103: BOOL; (*Garázsfeljáró szivattyú*)

    T2: TON;
    LAKAS_KERINGETO_SZIVATTYU: BOOL;
    Q201: BOOL; (*Lakás keringető szivattyú*)
    END_VAR

    Szóval ez egy valós példa szeretne lenni. Házas téma, lakásfűtés + garázsfeljáró fűtés.

    1. A létrában az általad linkelt képen látható megoldást (valahol középen leágazok egy kontakttal, és onnan készítek egy coil-t), ezt nem tudtam megoldani. Mindig csak a meglévő coil-al akar párhuzamosan rakni egy másikat, de az elé nem enged befűzni semmit.

    2. Kimeneti változók visszacsatolása/nyomógomb megoldás rendben, lásd a képet.

    3. Használom az "M"-es változókat is, ez is jó.

    4. "FB"-ben tudok több független kimenetet előállítani egy soron, úgyhogy most ezt használom létra helyett

    5. Analóg-ot értem, de most ebben nem volt rá szükség. Akkor ST-ben megírom a fg.-t, aztán azt beillesztem a létrába vagy FB-be, ez így jól hangzik

    Néhány dolgot nem értek:
    6. "FB"-ben, ahogy a képen is látható nem tudok visszacsatoló vonalat rajzolni egérrel, címkézni kell, ez így nem szép :(

    7. ahogy a képen is látod, azt próbáltam, hogy először megfogom az eseményeket (pl. a garázsfűtés csak külső eseményektől függ, de a házfűtés a garázsfűtéstől is, ahogy a képen látható). Utána ezekhez a már magasabb szintű eseményekhez rendelem az output-okat. Viszont ez nem tűnik jónak, mert pl. a Q102 (gázkazán)-t az egyik be a másik pedig kibillenti, pedig működnie kellene. Itt akkor egy sorban egy kimenetre koncentráljak, és ahhoz tegyem oda a bemeneteket, mert akkor azt már más nem bántaná :F Vagy maradjon így, de akkor még egy külön sorban markerezzek, és ott OR-oljam össze a kazán jeleit ?

    8. Úgy látom, hogy nem mindegy a network-ok sorrendje. Pl. a képen első a garázs, második a lakás. Ha megfordítanám, akkor a lakás elindulhat a garázzsal együtt :F

    9. Mi alapján nevezzem el az "M"-eket ? Mitől lesz egy "M" M100.3 vagy M110.4 ? Ezt elég fontosnak gondolom, mert az a jó, ha ránézek, és azonnal tudom (nagyjából), hogy mi is akar az ott lenni...

    Köszi.

    Imi.

Új hozzászólás Aktív témák