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

Seite 5 von 12 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 114

Thema: Problemlösung bei SEL Baustein

  1. #41
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wohin zurückspringen ? Auf null ? Ich habe es so verstanden er soll zu der Zeit X den Wert hochfahren und zu Y (EIN_Down) runter fahren. Heißt das du möchtest immer bei 0 starten und bei 10(Bsp) stoppen. Bei der anderen fahrt bei 10 starten und bei Null stoppen ?

  2. #42
    nexer ist offline Benutzer
    Themenstarter
    Registriert seit
    21.06.2015
    Beiträge
    60
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Dass er oben bleibt ist ja in Ordnung, er soll aber wieder von vorne anfangen, sobald das relay aus und wieder an geht.

    Hat den hintergrund, dass damit lampen gedimmt werden sollen, diese soll morgens langsam hochlaufen und abends langsam runter. und am nächsten morgen natürlich wieder langsam hoch

  3. #43
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Okay. Also das für den Fall das sie abends nicht runter gelaufen sind ? Wenn du sie runterfahren lässt wird der Wert ja kleiner. Sonst hättest du ja am Tag hochfahren. Jetzt kommt eine neuer Impuls (woher ist erstmal egal) und der Zirkus beginnt von vorne. Aber wenn du das wünscht ist das machbar.

  4. #44
    nexer ist offline Benutzer
    Themenstarter
    Registriert seit
    21.06.2015
    Beiträge
    60
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja wichtig ist ja grundlegend ab "Morgens" Baustein, dass dieser, sobald Relay auf FALSE steht, wieder auf den Anfangswert, also Minwert zurückspringt.

    Über den Abends Baustein machen wir uns danach Gedanken, denn dieser muss ja auch eine Zeitschaltung zum Start haben, da dort ja nur vor dem Ende des Relays dieser Wert ausgegeben werden muss.

  5. #45
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Möglichkeit 1, ein Reset Eingang ?
    Code:
    FUNCTION_BLOCK Sel_ersatz
    VAR_INPUT
        EIN, EIN_Down: BOOL;
        Faktor:REAL;
        Maxwert:REAL;
        Minwert:REAL;
        Impulszeit:WORD;
        Reset:BOOL;
    END_VAR
    VAR_OUTPUT
        Value:REAL;
    END_VAR
    VAR
        TP1, TP2: TP;
        TRIG, TRIG2:R_TRIG;
        MINv, MAXv:BOOL;
        ImpulsZeit_used:TIME;
    END_VAR
    und
    Code:
    ImpulsZeit_used:=WORD_TO_TIME(Impulszeit*1000);
    TP1(IN:=EIN AND NOT MAXv AND NOT TP1.Q , PT:=ImpulsZeit_used );
    TRIG(CLK:=TP1.Q);
    IF TRIG.Q THEN Value:=Value+Faktor;
        ELSE Value:=Value;
    END_IF;
    IF Reset AND Ein = TRUE THEN Value:=Minwert;
        ELSE Value:=Value;
            END_IF;
    IF Reset AND Ein_down = TRUE THEN Value:=Maxwert;
        ELSE Value:=Value;
            END_IF
    TP2(IN:=EIN_Down AND NOT MINv AND NOT TP2.Q , PT:=ImpulsZeit_used );
    TRIG2(CLK:=TP2.Q);
    IF TRIG2.Q THEN Value:=Value-Faktor;
        ELSE Value:=Value;
    END_IF;
    IF Value>=Maxwert THEN maxv := TRUE;
        ELSE maxv:=FALSE;
    END_IF
    IF Value<=Minwert THEN minv:=TRUE;
        ELSE minv:=FALSE;
    END_IF;
    Hierbei wird der Wert entweder auf Maxv (EIN und RESET = TRUE) oder auf MINv (EIN-Down und RESET = TRUE) gesetzt

    oder aber das er bei jedem Start bei MINv startet (EIN) bzw MAXv (Ein_Down)
    Code:
    FUNCTION_BLOCK Sel_ersatz
    VAR_INPUT
        EIN, EIN_Down: BOOL;
        Faktor:REAL;
        Maxwert:REAL;
        Minwert:REAL;
        Impulszeit:WORD;
    END_VAR
    VAR_OUTPUT
        Value:REAL;
    END_VAR
    VAR
        TP1, TP2: TP;
        TRIG, TRIG2:R_TRIG;
        MINv, MAXv:BOOL;
        ImpulsZeit_used:TIME;
        TRIG_Min, TRIG_Max:R_TRIG;
    END_VAR
    UND

    Code:
    TRIG_Min(CLK:=EIN);
    TRIG_Max(CLK:=EIN_Down);
    IF TRIG_Min.Q THEN Value:=Minwert;
        ELSE Value:=Value;
            END_IF;
    IF TRIG_Max.Q THEN Value:=Maxwert;
        ELSE Value:=Value;
            END_IF;
    ImpulsZeit_used:=WORD_TO_TIME(Impulszeit*1000);
    TP1(IN:=EIN AND NOT MAXv AND NOT TP1.Q , PT:=ImpulsZeit_used );
    TRIG(CLK:=TP1.Q);
    IF TRIG.Q THEN Value:=Value+Faktor;
        ELSE Value:=Value;
    END_IF;
    TP2(IN:=EIN_Down AND NOT MINv AND NOT TP2.Q , PT:=ImpulsZeit_used );
    TRIG2(CLK:=TP2.Q);
    IF TRIG2.Q THEN Value:=Value-Faktor;
        ELSE Value:=Value;
    END_IF;
    IF Value>=Maxwert THEN maxv := TRUE;
        ELSE maxv:=FALSE;
    END_IF
    IF Value<=Minwert THEN minv:=TRUE;
        ELSE minv:=FALSE;
    END_IF;

  6. #46
    nexer ist offline Benutzer
    Themenstarter
    Registriert seit
    21.06.2015
    Beiträge
    60
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Jetzt hab ich den Überblick verloren ^^......


    Woher kriegt der denn den Resetbefehl ?

  7. #47
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Das sind zwei verscheide Ansätze. Oben bekommt dein Baustein einen zusätzlichen Eingang Reset. Beim unteren macht startet er immer beim kleinsten bzw höchsten Wert. Je nachdem was dir mehr zusagt.

  8. #48
    nexer ist offline Benutzer
    Themenstarter
    Registriert seit
    21.06.2015
    Beiträge
    60
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja er soll nicht nachdem er fertg ist einfach auf 0 Springen, dann ist ja alles wieder quasi aus.

    dann ist Variante eins mit reset ok, aber wie spreche ich den an..... ggf. mit relay0 negieren ?

  9. #49
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Bei Version zwei beginnt der jedesmal bei Null bzw 10 (Bsp) wenn der Eingang EIN bzw Ein_Down true wird. Er zählt bis Max. Und erst beim nächsten Start wieder. Den Reset kann man besser über einen Impuls der auch vom Relay kommt. Aber das ist dann dasselbe wie Version 2

  10. #50
    nexer ist offline Benutzer
    Themenstarter
    Registriert seit
    21.06.2015
    Beiträge
    60
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich bekomme, nachdem ich Version 1 kopiert habe, folgende Fehlermeldung :



    ------ Übersetzungslauf gestartet: Applikation: Device.Application -------
    Code typisieren ...
    [WARNUNG] iodrvgpio, 1.0.0.0 (3s - smart software solutions gmbh): init [GPIO](Zeile 1 (Dekl)): C0351: Das Attribut libdoc_include ist unbekannt und wird vom Compiler ignoriert.
    [WARNUNG] iodrvgpio, 1.0.0.0 (3s - smart software solutions gmbh): Fb_exit [GPIO](Zeile 1 (Dekl)): C0351: Das Attribut libdoc_include ist unbekannt und wird vom Compiler ignoriert.
    [FEHLER] Terrarienschaltung: Timeclock [Device: SPS-Logik: Application: SystemTimePrg](Element 1): C0080: Funktionsblock 'AnalogOut' muss für den Zugriff instanziert werden
    [INFORMATION] Terrarienschaltung: AnalogOut [Device: SPS-Logik: Application]: C0181: Verwandte Position
    [FEHLER] Terrarienschaltung: Timeclock [Device: SPS-Logik: Application: SystemTimePrg]: C0080: Funktionsblock 'AnalogOut' muss für den Zugriff instanziert werden
    [INFORMATION] Terrarienschaltung: AnalogOut [Device: SPS-Logik: Application]: C0181: Verwandte Position
    [FEHLER] Terrarienschaltung: Timeclock [Device: SPS-Logik: Application: SystemTimePrg](Element 1): C0080: Funktionsblock 'AnalogOut' muss für den Zugriff instanziert werden
    [INFORMATION] Terrarienschaltung: AnalogOut [Device: SPS-Logik: Application]: C0181: Verwandte Position
    Kompilierung abgeschlossen -- 3 Fehler, 2 Warnungen

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 05.09.2012, 13:58
  2. Baustein SEL (Binäre Selektion)
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 10.06.2010, 10:54
  3. Problemlösung WinCC Bedienstationen
    Von Bender25 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 31.03.2010, 07:12
  4. Problemlösung mit NAIS FP0
    Von bORG im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 13.10.2008, 00:29
  5. Antworten: 0
    Letzter Beitrag: 30.09.2007, 14:13

Lesezeichen

Berechtigungen

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