Keresés

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

  • Szirty

    őstag

    válasz skul0 #5174 üzenetére

    Helló skul0!

    "Alapesetben valóban nem támogatott a Windows 8 és 8.1, azonban kis ügyeskedéssel minden bizonnyal S7-GRAPH esetén is megoldható a dolog"

    Igen. Csak foglalkozni kell vele aztán vagy sikerül vagy nem.
    Az hogy "nem támogatott" nem azt jelenti hogy garantáltan lehetetlen telepíteni és használni vele, hanem azt hogy erre a gyártó nem ad semmiféle garanciát.

    "Nekem is Windows 8.1-en fut a STEP7, virtuális oprendszer nélkül."

    Ez is rendben van, ez sem lehetetlen (főleg a fentiek miatt).
    Sajnos azonban egy Step7.V5.4-et egy WinCC Flexible 2007-el és mondjuk egy ProTool 6.0-val nem annyira biztos hogy garantáltan sikerülne virtuális gép nélkül ráfaragni. Márpedig vannak rendszerek amik ezt igénylik, tehát marad a virtuális géppel való bajlódás.
    Sőt! Sok esetben nem is egy virtuális gép kell, mert mondjuk a SICK safety PLC-jének szoftvere és az OMRON safety PLC-jének szoftvere egy rendszeren nem futnak kitörő örömmel.

  • Szirty

    őstag

    válasz skul0 #4592 üzenetére

    Hi skul0!

    "Ennek a scheduler funkciónak viszont még utána nézek, nem hallottam róla."

    A KTP600 nem tud olyat. Felejtsd el!

    "A PLC-ből való váltást próbáltam én is: a képernyőn lévő, képernyőváltó gombok indítottak volna újra egy számlálót, aminek letelésével váltott volna az adott képernyőre a HMI az általad említett módon, de a HMI tag-ek csak set-eltek, resetelni nem voltak hajlandóak úgy"

    Kezdjük elölről!

    1. A panel (a KTP600 is) alapól tud képernyőt kímélni! Képernyő kímélőt akartál, ott van benne. Nem jó?

    2. A képernyőváltást integer tag event-jéhez rendelt "Activatescreen" funkcióval oldod meg? Nincs set reset, nem setelődik resetelődik semmi, nincs gomb se. A PLC-ben ítrod a TAG értékét és jön a screen saver.

    De PLC JOB-okkal is válthatsz képernyőt, vagy TAG exceed limit eseményre is.
    Továbbá van olyan funkció is, hogy "ActivateScreenByNumber" aminek egy változót is megadhatsz. Ezzel arra a számú képre vált, amelyiket a változó tartalmával kijelölöd (minden alkalommal lehet másik képernyő a kímélő :-)

    Azt, hogy mikor kell bekapcsolnod a képernyő kímélő képet (azaz mennyi ideje nem nyomtak gombot) kissé nehezebb ügy, de a képernyőváltásokat (amit a panel gombjaival a menüben navigálva pl. elkövetnek) figyelheted a "Screen bumber" nevű areapointer használatával. A panel ebbe írja bele mindig melyik képernyőt mutatja éppen, és figyelheted PLC-ből.

  • byte-by

    tag

    válasz skul0 #4584 üzenetére

    halo !

    valóban nem adtad meg a hmi típusát, de az 1200-as miatt gondolom valamilyen basic panel.

    a gond az, hogy a sorozat elég egyszerű és korlátolt, bár amire kitalálták arra jó.
    a Szirty által említett vizualizáció van, de ezek a hmi-k nem realtime animációk megjelenítésére készültek.

    byte

  • Szirty

    őstag

    válasz skul0 #4584 üzenetére

    Helló skul0!

    "Hogyan tudnám azt megoldani, hogy valós idejű, mozgó visszajelző animációt hozzak létre az érintőn?"

    használd az objektumok Animation tulajdonságainál található Diagonal, Horizontal, Vertical vagy Direct movement lehetőséget!.

    A mozgás teljesen folyamatos akkor sem lesz. Ezekkel az objektum X, vagy Y, vagy X+Y, vagy X és Y pixelkoordinátáit módosíthatod.
    De ha a szállítószalagon nincs encoder, vagy valamiféle útmérés, akkor ez neked nem nagyon lesz soha "valós idejű" helyzet megjelenítés. persze manipulálhatsz időzítésekkel, órajelekkel, de az egész inkább csak látványos hókusz-pókusz lesz.
    Én is csináltam már ilyet, de rendszerint nincs értelme az ilyenbe túlságosan sok energiát fektetni.

    "hogyan lehet ugyan ezen az érintőn egy képernyőkímélőt létrehozni."

    A gyártó már létrehozta. csak ki kell lépni a panelen a runtime-ból és megnyomni a "Screen saver" ikont, majd beállítani a késleltetését.
    Ha mindenképp te akarsz egy képernyőre váltani adott idő után, akkor azt a PLC-ből megteheted pl. úgy,hogy egy "Cyclic continuous" adatgyújtési módra állított PLC TAG "Change value" eventjéhez beraksz egy "Activatescreen" funkciót. ha a tag megváltozik, átvált oda.

    A panelből is megoldhatod ha olyan a panel amelyiknek van scheduler funkciója. Az ugyanis van amelyiknek van, van amelyiknek nincs, de ugye nem tartottad fontosnak megemlíteni milyen panel, csak azt hogy Siemens (amiből van vagy 80 féle).

  • Szirty

    őstag

    válasz skul0 #4131 üzenetére

    Helló skul0!

    Nagyon úgy néz ki ez, mint egy olyan gyakorló feladat, aminek a megoldásához FIFO buffert kellene építeni. Ezt abból gondolom, hogy előírta a MOV használatát.

    Én úgy csinálnám, hogy kijelölnék egy 3 elemű tártelütetet a buffer számára. Pl. D0-D2.
    D0 lenne a FIFO teteje (bemenete) és D2 az alja (kimenete).

    A FIFO úgy működne, hogy ha a D1 tartalma nulla, akkor beleírnám a D0 tartalmát és a D0-t törölném (0).
    Utána ha a D2 tartalma nulla, akkor beleírnám a D1-et és a D1-et törölném. EZzel kész is a 3 elemű buffer.

    Amikor egy tartály kiürül, a tartály számát bedobnám a FIFO tetejére (beírnám a D0-ba). Amennyiben a buffer üres, a fenti MOVE-ok (melyek minden PLC ciklusban lefutnak) a felül beírt érték leesne az aljára. Ha nem üres, akkor a benne lévő tetejére.
    Így már nincs más dolgunk, mint a FIFO aljáról kiolvasni az értéket. Ha ott 1 van, akkor az 1-es tartályt töltjük, ha 2 van akkor a 2-est, ha 3 van, akkor a 3-ast.
    Érdemes minden tartályhoz egy-egy RS tárolót (KEEP) használni, amit az adot ttartály leürülése bekapcsol, a megftelés pedig kikapcsol és a FIFO tetejére akkor bedobni a tartály számát, amikor ez az RS tároló bekapcsolt.

    Így elkerülhető, hogy a folyadék lötyögése esetén többször is beíródjon a FIFO-ba ugyanannak a tartálynak a száma.

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