Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: Schreiben einer Dimmzeit in ST

  1. #1
    Registriert seit
    07.03.2012
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich hoffe ihr könnt mir kurz helfen, versuche gerade nen FB zu schreiben der es mir ermöglicht, ne gewünschte Dimmhelligkeit langsam anzufahren.

    Konkreter gesagt: ich möchte den Dimmerbaustein von der Wago Gebäudebibliothek verwenden und diesen FB vor die Dimmvorgabe packen.
    Wollte das mal in ST ausprobieren, da ich bisher nur mit FUP gearbeitet habe mir da aber die Mittel fehlen.

    Also soweit bin ich bisher gekommen, aber mit den Zeiten hab ich probleme

    Code:
    FUNCTION_BLOCK dimm_time
    VAR_INPUT
        dimm_soll: BYTE;
    END_VAR
    VAR_OUTPUT
        dimm_ist: BYTE;
    END_VAR
    VAR
    END_VAR
    Code:
    WHILE dimm_ist > dimm_soll DO
    dimm_ist := dimm_ist +1;
    (* hier soll ein Delay von 2ms oder so hin*)
    END_WHILE
    
    
    WHILE dimm_ist < dimm_soll DO
    dimm_ist := dimm_ist -1;
    (* hier soll ein Delay von 2ms oder so hin*)
    END_WHILE
    Ich denke mal für die meisten hier sollte das kein Problem darstellen und ihr könnt mir kurz auf die Sprünge helfen.

    Danke
    Zitieren Zitieren Schreiben einer Dimmzeit in ST  

  2. #2
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    WHILE geht schon mal gar nicht, da du dadurch den laufenden Programm-Zyklus für die Dauer der Bearbeitung der Schleife festhältst.
    Ich würde mir bei Ungleichheit der Werte und nicht schon aktiver Dimmung ein Dimmung_Aktiv-Bit setzen. Ist dieses aktiv dann einen Timer starten und wenn der abgelaufen ist den Sollwert nach Bedarf verringern oder erhöhen und den Timer wieder neu starten. Bei Soll=Ist dann das Dimmung_Aktiv-Bit wieder rücksetzen.

  3. #3
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    kurz nebenbei.
    Verbessert mich, aber ich meine, ich sehe einen Fehler:#
    Code:
    WHILE dimm_ist > dimm_soll DO dimm_ist := dimm_ist +1; (* hier soll ein Delay von 2ms oder so hin*) END_WHILE
    Wenn der aktuelle Wert größer ist, als der Sollwert, dann soll der aktuelle Wert erhöht werden um 1.
    Das klingt für mich etwas unlogisch.

    Hat zwar nciht direkt mit dem Problem zu tun, aber nur so nebenbei!

    Grüße

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 08.12.2011, 15:01
  2. Antworten: 19
    Letzter Beitrag: 30.06.2010, 23:15
  3. Antworten: 50
    Letzter Beitrag: 12.11.2008, 23:13
  4. Antworten: 3
    Letzter Beitrag: 11.07.2007, 22:52
  5. Antworten: 0
    Letzter Beitrag: 15.09.2005, 14:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •