Hirdetés

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

  • Szirty

    őstag

    válasz And #5418 üzenetére

    Helló And!

    Természetesen lerakhatsz akármennyi FB41 blokkot (pontosabban amennyit a ciklus idő és a memória elbír, én raktam már le 40-et,. működött mind).
    Nagyon fontos, hogy mindegyiknek saját instance DB-je kell hogy legyen. Ha leraksz egy újat annak már nem lehet DB41 a munkaterülete, különben a két azonos DB-t használó PID egymásnak bekavar (hibásan fognak működni).

    Hogy miért nem engedi létrehozni azt nem tudom, a körülményeket részletezd lehetőleg pontosan. hogyan csinálod, milyen DB blokkok léteznek már, milyen számot adsz a DB-nek, milyen hibaüzenet keletkezik, stb, stb. Ennek így működnie kell. Sőt, igazából csak így képes a működésre :-)

    Természetesen az FB41-et bármelyik ciklikusan végrehajtódó program blokkból (OB, FB,FC) lehet hívni.
    A szabály mindösszesen annyi, hogy:
    1. A hívása pontosan azonos időközönként történjen
    2. Meg kell adni neki paraméterben ezt az időt.

    Ha bármelyik feltétel nem teljesül a fentiek közül, akkor a PID idővel kapcsolatos paraméterei nem lesznek pontosak (pl. integrálási idő). Ha csak a P tag van felhasználva akkor valószínűleg nem jelentkezik ilyen hiba (mert ahhoz nem tartozik idővel kapcsolatos paraméter), Ha hívási ciklusidő nem nagyon ingadozik és kevéssé tér el a megadottól, akkor az időzítési kevésbé lesz bizonytalan.

    OB1-ből vagy egyéb blokkból hívott FB41-nél is biztosítható a pontos ciklusonkénti hívás a blokk EN "bemenete" előtt megadott megfelelő feltétellel. (pl 1 mp-es impulzus sorozat).
    Ez általában csak hosszabb hívási ciklusok használata mellett javasol, mert pl. pontos 100ms nem biztosítható ilyen módon mondjuk egy 10-20ms-es PLC ciklus idő mellett, de 1s már kellően pontos lehet.

    [ Szerkesztve ]

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