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

  • Szirty

    őstag

    válasz KB.Pifu #4107 üzenetére

    Szevasz Pifu!

    Csinálhatod úgy is, hogy lerajzolod háromszor és mindegyiknek a láthatóságát kapcsolgatod egy bittel de az nem túl szép megoldás.
    Ha sok ilyen van egy screenen az körülményessé teheti a szerkesztését. Állandóan kotorászni kell az egymásra helyezett, a szerkesztőben egymást kitakaró objektumok között. vagy ha mindegyiket külön layer-re teszed az könnyíthet a helyzeten, de akkor meg a layereket kell kapcsolgatni ha módosítani kell rajtuk.

    Amennyiben a szimbólumod grafikus primitívekkel rajzoltad (kör, vonal, négyzet, stb) akkor én az animation / appearance segítségével oldanám meg a dolgot.
    Csináltam erre egy példa projectet. Két lehetőséged van:

    Egy integer változó (a példában ez MW10) van hozzárendelve egy szürke hátterű és fekete keretű téglalap animation / appearance tulajdonságánál. Az integer egyes értékeihez eltérő háttérszíneket rendeltem hozzá.

    Amikor az MW10 tartalma 1, akkor a téglalap színe piros lesz, ha 2 akkor narancssárga, ha 3 akkor citromsárga, ha négy akkor zöld. Minden más érték esetén a téglalap eredeti, tehát szürke színű lesz.
    Itt tehát az MW10 integerbe kell a PLC programban különböző értékeket írkálni a szín megváltoztatásához.

    A másik lehetőség a bitenkénti színváltás (binary appearance).
    Egy byte változó van létrehozva ami az MB12 merker byte-ra hivatkozik. Az animation / appearance itt binary-re van állítva ahogy a képen is látható. Ilyenkor a színek nem a változó értékéhez, hanem annak bitjeihez rendelődnek hozzá a következőképpen:
    Ha az M12.1 TRUE, akkor a téglalap piros lesz, Ha M12.2 TRUE, akkor narancssárga, ha M12.3 akkor citromsárga, ha M12.4, akkor zöld.
    Ennél a megoldásnál arra kell figyelni, hogy ha a megadott bitek közül nem csak egy TRUE, hanem több is, vagy a byte olyan bitje TRUE, ami nincs felsorolva, akkor a téglalap eredeti (azaz szürke) színű marad!

    Amennyiben a megjelenített szimbólumod előre megrajzolt grafika, akkor is megoldható a dolog, de teljesen máshogy. Ennek a leírásától most eltekintenék, mert túl hosszú lenne ez az üzenet...

    [ Szerkesztve ]

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