Keresés

Hirdetés

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

  • Szirty

    őstag

    válasz Royality20 #2716 üzenetére

    Helló Royality20!

    "visualizációval egy input értékét nem lehet megváltoztatni igaz? ezt ugy értem hogy lerakok vizuba egygombot megcimezem pl Ix0.0 és ha a gombot megnyomom azt a inputot egynek nézné."

    Végig gondoltad hogyan tudna működni egy ilyen megoldás? Hogyan oldanád fel azt az ellentmondást, amit ezzel a megoldással hoznál létre?
    Egy digitális bemeneti bit állapotát a PLC fizikai bemenetére kapcsolt feszültség határozza meg. Ha nincs fesz. a bit=0 ha van fesz a bit=1. Tehát MINDIG vagy nulla vagy egy!
    Ekkor jösz te a gonboddal és megnyomod. Nyilván azért, hogy az amúgy éppen nullában lévő bitet 1-be állítsd (hisz ezért raktad oda). Ekkor szerencsétlen bitet egyszerre kellene nullába (mert a bemenet inaktív) és 1-be (mert nyomod a gombot) állítani. Na ilyenkor mi legyen?
    Vagy mi legyen ha nem nyomod a gombot de a bemeneten feszültség van? Csak akkor billentse 1-be amikor nyomod és ne bántsa ha nem nyomod, vagy akkor nullázza amikor nem nyomod és hagyja érvényesülni amikor nyomod? stb.
    Tudom (gondolom) hogy te az összes variáció közül, ami az elvi lehetőségek kombinációjából következik csaj az egyik szeretnéd, de honnan tudja a PLC hogy melyik lenne az?

    Az ellentmondás feloldására vannak bevált módszerek.
    Az egyik és (részemről) leginkább ajánlott az, hogy soha nem csinálunk ilyet :)
    Ha valamit bemenettel és HMI gombbal is kapcsolni kell, akkor tegyünk külön változót a gombnak és a PLC programjában írjuk meg mikor melyik bit (a gomb bitje ill. a bemeneti bit) mit kapcsoljon hova.

    A másik hogy mégis így oldjuk meg: a bemeneti bitet kapcsolunk a HMI gombjával. Sok PLC-nél ezt meg lehet tenni (mert a HMI megengedi), csak nem nagyon van értelme, mert akárhogy is nyomkodjuk azt a gombot, a bemeneti bit állapotát a PLC minden ciklusban (néhányszor 10 ezred másodpercenként) felülírja a bemenet fizikai állapotának megfelelően.

    A harmadik módszer a FORCE mód. Ezt bizonyos PLC-k támogatják (pl. Omron, Siemens). A lényege az, hogy ebben a módban bizonyos be vagy kimenetek állapotának vezérlését át lehet venni a PLC programtól és pl. a programozó eszközről lehet őket vezérelni. Ez a mód azonban hibakeresési tesztelési céllal létezik. Nem javasolnám üzemszerű használatra. Főleg mert rettenetesen be tudja vinni az embert az erdőbe aki erről mondjuk nem tud és keresi a hibát...

  • Szirty

    őstag

    válasz Royality20 #2728 üzenetére

    Helló Royality20!

    Nem ismerem a codesyst, de a problémád megoldására az egyik lehetséges mószer a kerekítés :)
    Biztosan van benne ilyen utasítás (Round, RND stb).
    A kérdéses real típusú értéket megszorzod 10-el, kerekíted majd elosztod tízzel. Az eredmény 1 tizedes jegyre kerekített érték lesz
    (Ha két tizedes jegyre akarsz kerekíteni, akkor 100-zal kell operálni)

  • moseras

    tag

    válasz Royality20 #2757 üzenetére

    Szia!

    Tapasztalatom szerint az idő kb. felében (vagy ennél nagyobb hányadban) legyen szabad a proci. Vagyis ha pl. 15ms a taszk végrehajtási ideje, akkor 30ms-nél gyakrabban nem hívhatod meg!

    Imi.

  • moseras

    tag

    válasz Royality20 #2759 üzenetére

    Szia!

    A gyártó sajnos erről nem tesz említést, legalábbis én sehol nem találtam erről semmit. A 841/873-ban egy 44MHz-es ARM 32 bites processzor található, ez old meg mindent, ez futtatja az ftp szervert, a web szervert, ez futtatja a felhasználó programját, ez futtatja a modbus TCP szervert, ez szolgálja ki a webvisu-t, 44MHz-től nem lehet többet várni.

    Az, hogy az idő felében szabad legyen, ez tapasztalat.

    Ami le van írva:

    - 10 vagy az alatti prioritású taszkokat nem tud félbeszakítani ftp/web/visu/modbus_tcp művelet
    - 10 felettieket igen

    Saját tapasztalat:
    - a taszkok számát minimalizálni kell, a legjobb ha csak egy van, és ott az idő fele szabad
    - vannak olyan funkcióblokkok, amelyek blokkolódnak (pl. file írása a belső flash-re, tcp/ip-s blokkok), ezeket mindenképp külön taszkba kell tenni

    Imi.

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