dynamische Bildwechsel durch variable Bitmap

Fritz99
2014-03-05
2014-07-21
  • Fritz99 - 2014-03-05

    Hallo CODESYS-Community,
    ich lese schon einige Jahre unregelmäßig hier im Forum mit. Vielen Dank für den ermöglichten Wissenszuwachs. Nun hänge ich trotz intensiver Bemühungen seit einigen Wochen an der Lösung eines Problems fest.
    Ich möchte, wie auch in der Hilfe unter „Bitmap, variabel“ gut beschrieben, einen dynamischen Bildwechsel zum Laufen bringen. (es handelt sich um die OSCAT-Wetterdaten bzw. die Bilder dazu)
    Das ganze sieht folgendermaßen unter PLC_PRG aus:
    CASE nId OF
    0: stBitmap := '00.jpg';
    1: stBitmap := '01.jpg';
    2: stBitmap := '02.jpg';
    3: stBitmap := '03.jpg';
    4: stBitmap := '04.jpg';
    5: stBitmap := '05.jpg';
    6: stBitmap := '06.jpg';
    7: stBitmap := '07.jpg';
    8: stBitmap := '08.jpg';
    9: stBitmap := '09.jpg';
    10: stBitmap := '10.jpg';
    11: stBitmap := '11.jpg';
    12: stBitmap := '12.jpg';
    13: stBitmap := '13.jpg';
    14: stBitmap := '14.jpg';
    15: stBitmap := '15.jpg';
    16: stBitmap := '16.jpg';
    17: stBitmap := '17.jpg';
    END_CASE

    Die Bitmaps sind alle in der Bitmapliste aufgeführt. Das variable Bitmap wurde über F2 in der Visualisierung als „PLC_PRG.stBitmap“ eingebunden. Zwischenzeitlich habe ich unter „Variable“ in der Bitmap-Konfiguration alles probiert, aber es wird immer nur das erste Bild (00.jpg) angezeigt. Zwischenzeitlich bin ich auch noch bzgl. der einzusetzenden Variable verunsichert. Ist das nun die INT-Variable vom WEATHER_ICON von der Internetabfrage, ist es die nld-Variable aus der CASE-Anweisung. Ich komme hier einfach nicht weiter, sozusagen festgefahren.
    Hat jemand vielleicht eine Idee zur Problemlösung.
    Danke!
    Gruß Müller

     
  • Dochteren IA - 2014-07-21

    Hallo Ftritz99,

    Haben Sie auch eine Bitmap Oberfläche in der Visualisierung eingetragen?
    Und diese Oberfläche mit einer STRING Variable, z.b. stDynamischeBitMap verbinden.

    Diese Stringvariabele im Global_Variable Bereich eintragen: stDynamischeBitMap : STRING(30);
    Im Programm kan mann dann diese Stringvariabele mit Ihre stBitmap beschreiben.

    stDynamischeBitMap := stBitmap;

    Dann soll es schon funktionieren.

     

Log in to post a comment.