Stern-Dreieck Schaltung

dennish23

Level-1
Beiträge
53
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Worin soll sich denn innerhalb der Stern-Dreieck-Schaltung Automatikbetrieb und Manueller Betrieb unterscheiden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es soll sich durch Eingabe des jeweiligen Taster unterscheiden. Wenn ich den Taster für Automatic Betrieb gedrückt habe soll die Anlage selbstständig hochfahren und wenn ich den Taster für Manuell einmal gedrückt habe soll er in Stern anlaufen und wenn ich dann den Manuell Taster nochmal drücke soll er in Dreieck umschalten.
 
Würde es denn nicht sinnvoller sein zwei Schalter und einen Taster zu verwenden,

1. Schalter -> Anlage Aus/Ein
2. Schalter -> Wahl Hand/Automatik
3. Taster -> Anlage starten

Im Handbetrieb betätigst du dann den "Anlage starten"-Taster, und nachdem der Motor hochgelaufen ist eben dann nochmal den Taster um in Dreieck zu wechseln.

Im Automatikbetrieb betätigst du dann den Taster nur einmal, und das Umschalten geschieht zeitgesteuert in der SPS.

Das Verriegeln von Hand & Automatikbetrieb hast du durch den Wahlschalter bereits gegeben.

Schalter auf Hand -> Kein Signal auf SPS.
Schalter auf Automatik -> Signal auf SPS.

Das Verriegeln von Stern auf Dreieck sollte auf jeden Fall hardwaretechnisch über Schützverriegelung geschehen. Zusätzlich kannst du es softwaretechnisch auch auf die SPS überspielen. Doppelte Sicherheit :)

Das Wechseln von Stern in Dreieck machst du softwaretechnisch über ne Zeitverzögerung, also erst fällt das Sternschütz ab, und dann schaltest du das Dreieckschütz zu.

Have Fun.
 
Vielen Dank für deinen Vorschlag. Ich werd mal versuchen diesen in die Tat umzusetzen. Allerdings hab ich noch eine Frage. Ich muss den Taster Anlage Starten ja in eine IF Schleife setzen. Nun ist für mich noch unverständlich wie ich die IF schleife schreiben muss damit das programm es akzeptiert das ich einen Eingang 2 mal drücken kann. Vielleicht hast du ja mal ein Beispiel wie das möglich ist.

MFG Dennis
 
@Ralf_H

13 Schritte, ne ganze Menge. Also ich wär dafür nicht auf ne Schrittkette gegangen, aber wenn es gut funktioniert ist es ja ok.

PS: Mal aus Interesse. Wozu braucht man bei einem Stern-Dreieck-Anlauf einen Handbetrieb, bei dem man manuell von Stern auf Dreieck schaltet?
 
Ich kann dir da keine Antwort drauf geben Ralf. Es ist von meinem Lehrer einfach gefordert worden und ich muss das irgendwie umsetzen.

Wie hättest du es denn gemacht wenn die 13 Schritte zuviel sind.

MFg Dennis
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@dennish23

Oh Mann, da mußte ich erstmal nachgraben, wie wir das denn genau machen. Der Baustein ist uralt, funktioniert und daher hab ich da schon ewig nicht mehr reingeschaut. Würde ich heute vielleicht anders machen ;).

Code:
FUNCTION FC 5 : VOID
TITLE =Stern-Dreieck-Anlauf Hydraulik
AUTHOR : Ralle
FAMILY : SYSTEM
NAME : HYDRAUL
VERSION : 1.0


VAR_INPUT
  HYDR_EIN_ANFORDERUNG : BOOL ;	//auf 1 für Start
  HYDR_AUS_ANFORDERUNG : BOOL ;	//auf 0 für Stop, also bei Start auf 1 setzen
  HARDWARE_OK : BOOL ;	
  NETZLAUFZEIT : S5TIME ;	
  NETZLAUF_TIMER : TIMER ;	
  STERNLAUFZEIT : S5TIME ;	
  STERNLAUF_TIMER : TIMER ;	
  PAUSENZEIT : S5TIME ;	
  PAUSEN_TIMER : TIMER ;	
END_VAR
VAR_IN_OUT
  NETZSCHUETZ : BOOL ;	
  STERNSCHUETZ : BOOL ;	
  DREIECKSCHUETZ : BOOL ;	
  STERNDREIECK_IST_EIN : BOOL ;	        //ein Merker oder DBX
  STERN_WAR_EIN : BOOL ;	                //ein Merker oder DBX
END_VAR
BEGIN
NETWORK
TITLE =Einschaltzustand testen

      U(    ; 
      O     #HYDR_EIN_ANFORDERUNG; 
      O     #STERNDREIECK_IST_EIN; 
      )     ; 
      U     #HYDR_AUS_ANFORDERUNG; 
      U     #HARDWARE_OK; 
      =     #STERNDREIECK_IST_EIN; 
NETWORK
TITLE =
//Einschaltverzögerung
      U     #STERNDREIECK_IST_EIN; 
      L     #NETZLAUFZEIT; 
      SE    #NETZLAUF_TIMER; 

NETWORK
TITLE =Zeit für Sternschaltung ablaufen lassen
//Einschaltverzögerung
      U     #NETZLAUF_TIMER; 
      L     #STERNLAUFZEIT; 
      SE    #STERNLAUF_TIMER; 
NETWORK
TITLE =Sternschütz zuschalten

      U     #STERNDREIECK_IST_EIN; 
      UN    #STERN_WAR_EIN; 
      =     #STERNSCHUETZ; 
NETWORK
TITLE =

      U(    ; 
      O     #STERNLAUF_TIMER; 
      O     #STERN_WAR_EIN; 
      )     ; 
      U     #STERNDREIECK_IST_EIN; 
      =     #STERN_WAR_EIN; 
NETWORK
TITLE =Zeitverzögerung zum Dreieckumschalten laufen lassen
//Einschaltverzögerung
      U     #STERN_WAR_EIN; 
      L     #PAUSENZEIT; 
      SE    #PAUSEN_TIMER; 
NETWORK
TITLE =Dreieckschütz zuschalten

      U     #STERNDREIECK_IST_EIN; 
      U     #PAUSEN_TIMER; 
      UN    #STERNSCHUETZ; 
      =     #DREIECKSCHUETZ; 
NETWORK
TITLE =

      U     #STERNDREIECK_IST_EIN; 
      U     #NETZLAUF_TIMER; 
      =     #NETZSCHUETZ; 
END_FUNCTION

Außenbeschaltung etwa so:


Code:
NETWORK
TITLE =Vorbedingungen Hydraulik zuschalten

      U     "DB_PNOZ_NA".Recive.Zustand.Output_01; //Einschaltbefehl vom PNOZ
      U     "T20SA Nachlauf Hydraulik"; 
      U     "E_s47_MS_Hydraulik"; 
      UN    "E_s47_Hydr_maxlevel"; 
      U     "E_s47_Hydr_minlevel"; 
      U     "E_s47_Hydr_Temp_70°"; 
      U     "E_s47_Hydr_Temp_80°"; 
      U     "E_s47_Hydr_Feinfilter"; 
      UN    "STOERMELDUNGEN DB".SPS_SM_30; 
      UN    "STOERMELDUNGEN DB".SPS_SM_31; 
      UN    "STOERMELDUNGEN DB".SPS_SM_32; 
      UN    "STOERMELDUNGEN DB".SPS_SM_33; 
      UN    "STOERMELDUNGEN DB".SPS_SM_34; 
      UN    "STOERMELDUNGEN DB".SPS_SM_35; 
      =     "HYDR_HARDWARE"; 
NETWORK
TITLE =Zeit Zuschalten Hydraulikventile

      U     "HYDR_HARDWARE"; 
      U     "A_s47_HS_Hydraulik"; 
      U     "A_s47_DS_Hydraulik"; 
      UN    "M4.7 Hydr. STOP T>max"; 
      L     S5T#1S; 
      SE    "T5 Zeit Zuschalt.Ventile"; 
NETWORK
NETWORK
TITLE =Nachlaufzeit Hydraulikagg.

      U(    ; 
      O     "M0.4 HM VW Auto"; 
      O     "M3.1 IM FLP Reset"; 
      O     "M1.7 ACK"; 
      O     ; 
      U(    ; 
      O(    ; 
      L     "DATA_TP270_IFACE".Bildnummer_aktuell_2; 
      L     117; 
      ==I   ; 
      )     ; 
      O(    ; 
      L     "DATA_TP270_IFACE".Bildnummer_aktuell_2; 
      L     517; 
      ==I   ; 
      )     ; 
      O(    ; 
      L     "DATA_TP270_IFACE".Bildnummer_aktuell_2; 
      L     139; 
      ==I   ; 
      )     ; 
      O(    ; 
      L     "DATA_TP270_IFACE".Bildnummer_aktuell_2; 
      L     539; 
      ==I   ; 
      )     ; 
      )     ; 
      U     "M0.3 HM VW Hand"; 
      U     "M140.0 alle Türen zu"; 
      )     ; 
      L     S5T#20S; 
      SA    "T20SA Nachlauf Hydraulik"; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
NETWORK
TITLE =Hydraulikanforderung
      U     #Hydraulik_Ein; 
      U     "M0.1 Steuerung Ein"; 
      UN    "HYDR_ST/DR_EIN"; 
      =     "HYDR_ANF_EIN"; 
NETWORK
TITLE =Hydraulik nicht Aus

      SET   ; 
      =     "HYDR_ANF_AUS"; 
NETWORK
TITLE =Hydraulik Aus

      ON    #Hydraulik_Ein; 
      ON    "T20SA Nachlauf Hydraulik"; 
      R     "HYDR_ANF_AUS"; 
NETWORK
TITLE =Hydraulik aufrufen

//Aufruf
      CALL "TECHNO_HYDRAULIK_EIN" (
           HYDR_EIN_ANFORDERUNG     := "HYDR_ANF_EIN",
           HYDR_AUS_ANFORDERUNG     := "HYDR_ANF_AUS",
           HARDWARE_OK              := "HYDR_HARDWARE",
           NETZLAUFZEIT             := S5T#500MS,
           NETZLAUF_TIMER           := "T12 Netz Stern-Dreieck",
           STERNLAUFZEIT            := S5T#2S,
           STERNLAUF_TIMER          := "T13 Sternlaufzeit",
           PAUSENZEIT               := S5T#200MS,
           PAUSEN_TIMER             := "T14 Pause Stern-Dreieck",
           NETZSCHUETZ              := "A_s47_HS_Hydraulik",
           STERNSCHUETZ             := "A_s47_SS_Hydraulik",
           DREIECKSCHUETZ           := "A_s47_DS_Hydraulik",
           STERNDREIECK_IST_EIN     := "HYDR_ST/DR_EIN",
           STERN_WAR_EIN            := "HYDR_ST_WAR_EIN");

NETWORK
TITLE =Start_Anforderung rücksetzen

      U     "HYDR_ST/DR_EIN"; 
      R     "HYDR_ANF_EIN";

Da fehlt natürlich die "Handsteuerung", die benutze ich dafür nicht, aber bei wirklich großen Motoren ist das vielleicht nicht schlecht, so kann man die Drehrichtung länger in Sternschaltung testen. Die Netzlaufzeit ist eigentlich nur dazu da um mehrere große Motore zeitversetzt starten zu können.

PS: Stern-Dreieck-Schütze sind natürlich Hardwareseitig über Hilfskontakte gegeneinander verriegelt!
 
Zuletzt bearbeitet:
Meine Erfahrung ist, dass man mit Schrittketten immer auf der sicheren Seite ist, was Verriegelungen angeht.
Hier mein Lösungsvorschlag:
http://www.family-heller.de/Steuerungstechnik/Module/Stern-Dreieck.txt

Nur mal so als Vorschlag, weil du für die Schritte direkt Zahlen eingesetzt hast. Ich mache das immer mit einer Variablen vom Typ Enumeration:
Code:
VAR
   iStep: (S_POWERUP:=0, S_IDLE, usw. )
END_VAR
Dann kann man das so schreiben:

Code:
CASE iStep OF
  S_POWERUP:
       .....;

  S_IDLE: 
     .....;

 END_CASE
Man sieht dann auch im Debugger die Variablen mit ihren symbolischen Werten.
 
Zurück
Oben