Stern-Dreieck Schaltung

Dennish23
2008-10-10
2008-10-12
  • Dennish23 - 2008-10-10

    Hallo liebe Forumgemeinde

    Hat jemand von euch schonmal eine Stern-Dreieck Schaltung für die SPS programmiert mit gegenseitiger Verriegelung? Ich möchte dies in den Varianten für einen Automatic Betrieb und auch für einen Manuell Betrieb programmieren, nur leider fehlen mir da so ein wenig die Anfänge.

    Ich brauche dafür 3 Eingänge. Einen Schalter und 2 Taster. Der Schalter soll die Anlage einschalten und die Taster sind für den Automatic Betrieb sowie für den Manuell Betrieb vorgesehen, die natürlich gegenseitig auch verriegelt sein müssten.

    Vielleicht hat ja jemand ne Idee wie ich damit anfangen könnte.

    MFG Dennis

     
  • Rolf-Geisler - 2008-10-11

    Hallo,

    ich verstehe zwar nicht ganz, wie Du das mit dem Hand- und dem Automatikbetrieb meinst, aber eine allgemeine Antwort kann ich sicher geben.

    Ausprogrammieren würde ich die Aufgabe als Schrittkette. Anbei ein Beispiel:

    VAR_INPUT
      ixInit : BOOL;  (* TRUE = Initialisierung *)
      ixStart : BOOL;  (* TRUE = Einschalten *)
      ixStop : BOOL;  (* TRUE = Ausschalten *)
      itSternZeit : TIME;  (* Verweilzeit in Sternschaltung *)
      itUmschaltZeit : TIME;  (* Verweilzeit Umschaltung *)
    END_VAR
    VAR_OUTPUT
      qxNetz : BOOL;  (* Ntzschütz für alles *)
      qxStern : BOOL;  (* Stern-Schütz *)
      qxDreieck : BOOL;  (* Dreieck-Schütz *)
    END_VAR
    VAR
      Zustand : INT;  (* Aktiver Schritt *)
      Next : INT;  (* Weiterschalten *)
      tStern : TON;
      tUmschaltung : TON;
    END_VAR
    (* Initalisierung *)
    IF ixInit
    THEN Zustand := 0;
         qxNetz := FALSE;
         qxStern := FALSE;
         qxDreieck := FALSE;
    END_IF;
    (* Ablaufsteuerung *)
    Next := 0;
    (* ... Timers *)
    tStern (IN := (Zustand = 2),
            PT := itSternZeit);
    tUmschaltung (IN := (Zustand = 3),
                  PT := itUmschaltZeit);
    (* ... Schrittkette *)
    CASE Zustand OF
      0 : Next := 1;
      1 : (* Alles ist aus. Warte auf Einschalten *)
          qxNetz := FALSE;
          qxStern := FALSE;
          qxDreieck := FALSE;
          IF ixStart
          AND NOT ixStop
          THEN Next := 2;
          END_IF;
      2 : (* Stern-Anlauf *)
          qxNetz := TRUE;
          qxStern := TRUE;
          IF tStern.Q  (* Stern-Anlaufzeit abgelaufen *)
          THEN Next := 3;
          END_IF;
      3 : (* Umschaltzeit *)
          qxNetz := FALSE;
          qxStern := FALSE;
          IF tUmschaltung.Q  (* Umschaltzeit abgelaufen *)
          THEN Next := 4;
          END_IF;
      4 : (* Dreieckschaltung aktivieren ==> Antrien hochgelaufen *)
          qxNetz := TRUE;
          qxDreieck := TRUE;
          IF ixStop  (* Ausschalten *)
          THEN Next := 1;
          END_IF;
    END_CASE;
    (* Schritt weiterschalten *)
    IF (Next <> 0)
    THEN Zustand := Next;
    END_IF;
    

    Hier kannst Du den Hand- oder Automatikbetrieb sicher selbst einbauen.

    Viel Erfolg

    Rolf

     
  • Dennish23 - 2008-10-12

    Danke schön Rolf. Ich werd mich deiner Variante mal annehmen und schauen ob ich dort meine Variante mit unterbringen kann.

     

Log in to post a comment.