Stern-Dreieck-Anlauf

Flutlicht

Level-1
Beiträge
97
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Kann mir jemand ein Programm (Step7) zur Stern-Dreieck-Ansteuerung aufzeigen?


Typenschild des Motors:

380V / 220V 2,3A / 4,0A 50Hz 1400U/min

Der Motor soll nach 2,5 Sekunden in Dreieck Umschalten! Und nach spätestens 15 Sekunden Abschalten!

Vielen Dank schonmal!
 
Hallo,

Kann mir jemand ein Programm (Step7) zur Stern-Dreieck-Ansteuerung aufzeigen?

für Stern-Dreieck

Code:
FUNCTION_BLOCK "_FB103_Stern_Dreieck"
TITLE =
//Dieser Baustein realisiert den Anlauf eines Motors in Stern-Dreieckschaltung.
//Stern- und Dreieckschütz müssen hardwaremäßig gegeneinander verriegelt sein.
//
//Die Umschaltzeit kann an <Zeit_Stern_Dreieck> vorgegeben werden.
//Zum Starten wird eine Flanke am Eingang <DT_Ein_NO> benötigt.
//
//22.11.07 Dotzauer
AUTHOR : Dotzauer
VERSION : 1.0
 
VAR_INPUT
  Freigabe : BOOL ; 
  Thermischer_Ausloeser_NC : BOOL ; 
  DT_Aus_NC : BOOL ; 
  DT_Ein_NO : BOOL ; 
  Zeit_Stern_Dreieck : TIME ; 
END_VAR
VAR_OUTPUT
  Netzschuetz : BOOL ; 
  Sternschuetz : BOOL ; 
  Dreieckschuetz : BOOL ; 
  Mldg_Betriebsbereit : BOOL ; 
  Mldg_Stern : BOOL ; 
  Mldg_Dreieck : BOOL ; 
END_VAR
VAR
  TON_1 : "TON"; 
  TON1_Q : BOOL ; 
  SR_1 : BOOL ; 
  SR_2 : BOOL ; 
  FM_1 : BOOL ; 
END_VAR
VAR_TEMP
  Freigabe_Motorstart : BOOL ; 
END_VAR
BEGIN
NETWORK
TITLE =Freigabe Motorstart
      U     #Freigabe; 
      U     #Thermischer_Ausloeser_NC; 
      =     L      1.0; 
      U     L      1.0; 
      BLD   102; 
      =     #Freigabe_Motorstart; 
      U     L      1.0; 
      UN    #SR_1; 
      UN    #SR_2; 
      =     #Mldg_Betriebsbereit; 
NETWORK
TITLE =Motorstart Stern
      U     #DT_Ein_NO; 
      FP    #FM_1; 
      U     #Freigabe_Motorstart; 
      S     #SR_1; 
      U(    ; 
      O     #SR_2; 
      ON    #DT_Aus_NC; 
      ON    #Thermischer_Ausloeser_NC; 
      ON    #Freigabe; 
      )     ; 
      R     #SR_1; 
      U     #SR_1; 
      =     #Sternschuetz; 
      =     #Mldg_Stern; 
NETWORK
TITLE =Umschaltung Dreieck
      U     #TON1_Q; 
      U     #Freigabe_Motorstart; 
      S     #SR_2; 
      U(    ; 
      ON    #DT_Aus_NC; 
      ON    #Thermischer_Ausloeser_NC; 
      ON    #Freigabe; 
      )     ; 
      R     #SR_2; 
      U     #SR_2; 
      =     #Dreieckschuetz; 
      =     #Mldg_Dreieck; 
NETWORK
TITLE =Netzschuetz einschalten
      O     #SR_1; 
      O     #SR_2; 
      =     #Netzschuetz; 
NETWORK
TITLE =Zeitstufe Stern->Dreieck
      U     #SR_1; 
      =     L      1.0; 
      BLD   103; 
      CALL #TON_1 (
           IN                       := L      1.0,
           PT                       := #Zeit_Stern_Dreieck,
           Q                        := #TON1_Q);
      NOP   0; 
END_FUNCTION_BLOCK

Gruß
 
Bitte Quelltext posten und dann kann weiter diskutiert werden.

Gruß

hier haste

Code:
*
FUNCTION_BLOCK FB 1125
TITLE =2 DIRECTION STAR TRIANGLE DRIVE
//this simple function_block realize the control of a two direction star 
//triangle drive.
//all functions of the drive are monitored and avaible at wRetVal.
//an error also will switch off the EN0 of the function_block.
//
//wRetVal - status
//----------------
//0000 - enable and ready to go
//0001 - start drive
//0003 - start drive and net and star contactor on
//0004 - start drive and net and triangle contactor on
//0007 - drive run and all functions ok
//
//wRetVal - error
//---------------
//8000 - no extern enable
//8001 - protectswitch off
//8002 - repairswitch off
//8003 - protectswitch and repairswitch off
//8004 - net contactor had not switched in time or is gone
//8005 - motioncontrol had not switched in time or is gone
//
//DATE:     27.10.2008
//AUTHOR:   4lagig
//VERSION:  V0.1 BasicVer
AUTHOR : '4lagig'
VERSION : 0.1


VAR_INPUT
  xPlcPulse : BOOL ;	//plug the Mx.0 with 10Hz here
  xEnable : BOOL ;	//extern enable input (1=ON)
  xProtectSwitch : BOOL ;	//(1=OK)
  xRepairSwitch : BOOL ;	//(1=OK)
  xNetContactorRight : BOOL ;	//(1=ON)
  xNetContactorLeft : BOOL ;	
  xStarContactor : BOOL ;	
  xTriangleContactor : BOOL ;	
  xMotionControl : BOOL ;	//(1=OK)
  xStartRight : BOOL ;	//(1=START)
  xStartLeft : BOOL ;	
  iSwitchTime : INT ;	
  iContactorTime : INT ;	//normally a small number, maybe 10 (mean 1s)
  iMotionControlTime : INT ;	//a little more than the time the drive needs to run fullspeed
END_VAR
VAR_OUTPUT
  xNetContactorRightOut : BOOL ;	//the output for the drive
  xNetContactorLeftOut : BOOL ;	
  xStarContactorOut : BOOL ;	
  xTriangleContactorOut : BOOL ;	
  wRetVal : WORD ;	//status/error information
END_VAR
VAR
  xHelpFlagEnable : BOOL ;	
  xHelpFlagPlcPulse : BOOL ;	
  xHelpFlagTriangel : BOOL ;	
  xTimeEnable : BOOL ;	
  xAllFine : BOOL ;	
  xTriangleMem : BOOL ;	
  iTimer : INT ;	
  iContactorTimer : INT ;	
END_VAR
BEGIN
NETWORK
TITLE =
// 
//enable and init the function_block
//
      UN    #xEnable; //if enable false then
      SPBN  nore; 
      L     W#16#8000; 
      T     #wRetVal; //write status information
      SPA   off; //and leave the function   
NETWORK
TITLE =

nore: UN    #xStartRight; //if start not and
      UN    #xStartLeft; 
      SPBN  ston; 
      R     #xTimeEnable; 
      L     W#16#0; //only enable and all switches on
      T     #wRetVal; //wRetVal = 0000     
NETWORK
TITLE =

ston: U     #xEnable; //enable true
      U(    ; 
      O     #xStartRight; //and start
      O     #xStartLeft; 
      )     ; 
      FP    #xHelpFlagEnable; //new
      SPBN  nonw; 
      L     W#16#1; //then
      T     #wRetVal; //write status information
      L     0; //initialize
      T     #iTimer; //timer with zero
      T     #iContactorTimer; 
      S     #xTimeEnable; //and make enable
      S     #xAllFine; //set the intern enable 
NETWORK
TITLE =
// 
//check the function
// 
nonw: UN    #xProtectSwitch; 
      SPBN  pok; 
      L     W#16#8001; //if protectswitch off
      UN    #xRepairSwitch; 
      SPBN  ron; 
      L     W#16#8003; //if protectswitch and repairswitch off
ron:  T     #wRetVal; //write error information
      SPA   off; //and leave the function
pok:  UN    #xRepairSwitch; 
      SPBN  rok; 
      L     W#16#8002; //if repairswitch off
      T     #wRetVal; //write error information
      SPA   off; //and leave the function  
NETWORK
TITLE =
//
//trigger the net and star contactor
//
rok:  U     #xStartRight; //if start on
      UN    #xStartLeft; 
      U     #xAllFine; //and intern enable also
      =     #xNetContactorRightOut; //do the net

      UN    #xStartRight; //if start on
      U     #xStartLeft; 
      U     #xAllFine; //and intern enable also
      =     #xNetContactorLeftOut; //do the net

      U(    ; 
      U     #xStartRight; //if start
      U     #xNetContactorRightOut; 
      O     ; 
      U     #xStartLeft; 
      U     #xNetContactorLeftOut; 
      )     ; 
      U     #xAllFine; 
      UN    #xTriangleContactor; //and not triangle
      UN    #xTriangleMem; //and not triangle enabled
      =     #xStarContactorOut; //do the star

      U(    ; 
      U     #xStartRight; //if start
      U     #xNetContactorRightOut; 
      O     ; 
      U     #xStartLeft; 
      U     #xNetContactorLeftOut; 
      )     ; 
      U     #xAllFine; 
      U     #xTriangleMem; //and triangle enable
      =     #xTriangleContactorOut; //do the triangle

      UN    #xStartRight; 
      UN    #xStartLeft; 
      ON    #xAllFine; 
      SPB   off; 
NETWORK
TITLE =
//
//start timer
//
      U     #xTimeEnable; 
      U     #xAllFine; //the intern enable
      U     #xPlcPulse; //do with the PlcPulse
      FP    #xHelpFlagPlcPulse; 
      SPBN  equ; 
      L     #iTimer; //a timer
      +     1; 
      T     #iTimer; 
      L     #iContactorTimer; 
      +     1; 
      T     #iContactorTimer; 
NETWORK
TITLE =
//
//trigger the triangle contactor
//
      U(    ; 
      L     #iTimer; 
      L     #iSwitchTime; 
      >=I   ; 
      )     ; 
      U(    ; 
      U     #xNetContactorRight; 
      U     #xStartRight; 
      O     ; 
      U     #xNetContactorLeft; 
      U     #xStartLeft; 
      )     ; 
      FP    #xHelpFlagTriangel; 
      SPBN  equ; 
      R     #xStarContactorOut; 
      S     #xTriangleMem; 
      L     0; 
      T     #iContactorTimer; 
NETWORK
TITLE =
//
//stop if neccessary - contactor
//
equ:  U(    ; 
      O(    ; 
      L     #iContactorTimer; 
      L     #iContactorTime; 
      <I    ; 
      )     ; 
      O(    ; 
      U(    ; 
      U     #xNetContactorRight; 
      U     #xStartRight; 
      UN    #xNetContactorLeft; 
      O     ; 
      U     #xNetContactorLeft; 
      U     #xStartLeft; 
      UN    #xNetContactorRight; 
      )     ; 
      U(    ; 
      U     #xStarContactorOut; 
      U     #xStarContactor; 
      UN    #xTriangleContactor; 
      O     ; 
      U     #xTriangleContactorOut; 
      U     #xTriangleContactor; 
      UN    #xStarContactor; 
      )     ; 
      )     ; 
      )     ; 
      SPB   cook; 
      UN    #xNetContactorRight; 
      U     #xStartRight; 
      O     ; 
      UN    #xNetContactorLeft; 
      U     #xStartLeft; 
      O     ; 
      U     #xNetContactorRight; 
      U     #xNetContactorLeft; 
      SPBN  star; 
      L     W#16#8004; //write wRetVal
      T     #wRetVal; 
star: U     #xStarContactorOut; 
      UN    #xStarContactor; 
      SPBN  tria; 
      L     W#16#8006; //write wRetVal
      T     #wRetVal; 
tria: U     #xTriangleContactorOut; 
      UN    #xTriangleContactor; 
      SPBN  sttr; 
      L     W#16#8007; //write wRetVal
      T     #wRetVal; 
sttr: U     #xStarContactorOut; 
      U     #xTriangleContactor; 
      O     ; 
      U     #xTriangleContactorOut; 
      U     #xStarContactor; 
      SPBN  cont; 
      L     W#16#8008; //write wRetVal
      T     #wRetVal; 
cont: SPA   off; 
NETWORK
TITLE =

cook: O(    ; 
      U     #xNetContactorRight; 
      U     #xNetContactorRightOut; 
      )     ; 
      O(    ; 
      U     #xNetContactorLeft; 
      U     #xStartLeft; 
      )     ; 
      O(    ; 
      U     #xStarContactor; 
      U     #xStarContactorOut; 
      )     ; 
      SPBN  tri; //contactor on
      L     W#16#3; //means 3
      T     #wRetVal; 
tri:  O(    ; 
      U     #xTriangleContactor; 
      U     #xTriangleContactorOut; 
      )     ; 
      SPBN  noco; 
      L     W#16#4; //means 3
      T     #wRetVal; 

NETWORK
TITLE =

noco: U(    ; 
      L     #iTimer; //if the time
      L     #iMotionControlTime; //bigger than the settime
      >=I   ; //for the motion control
      )     ; 
      UN    #xMotionControl; //and the motion control
      SPBN  mook; 
      L     W#16#8005; //write wRetVal
      T     #wRetVal; 
      SPA   off; 
NETWORK
TITLE =

mook: U     #xMotionControl; 
      U(    ; 
      O     #xStartRight; 
      O     #xStartLeft; 
      )     ; 
      SPBN  tim; //motion control on
      L     W#16#7; //means 7
      T     #wRetVal; 
NETWORK
TITLE =

tim:  L     #iMotionControlTime; //the big time
      L     100; //+100
      +I    ; 
      L     #iTimer; 
      <=I   ; 
      SPBN  end; 
      SET   ; 
      R     #xTimeEnable; //switch off the timer
      SPA   end; 
NETWORK
TITLE =
//
//EN0-handling
//
off:  R     #xAllFine; 
      R     #xNetContactorRightOut; //make sure contactor is off
      R     #xNetContactorLeftOut; 
      R     #xStarContactorOut; 
      R     #xTriangleContactorOut; 
      R     #xTriangleMem; 

end:  L     #wRetVal; //if the wRetVal
      L     W#16#8000; //bigger than 8000
      >D    ; //then is an error
      SPB   err; //and the EN0 are false
      SET   ; //else the EN0 are true
      SAVE  ; 
err:  NOP   0; 
END_FUNCTION_BLOCK
:ROFLMAO:
 
Sieht aus, als wäre das Flutlicht aus.
Da können wir das wohl intern ausdiskutieren...

Ich musste die Kinder noch von Omi und Opi abholen....

Jedenfalls machen wir das im Studium für Energie und Anlagentechnik 2. Semester falls es interessiert!

Und da ich ich vorher ETA gelernt hab fällt es mir auch nicht allzuleicht soetwas zu proggen, da wir das Thema oft nur angekratzt haben.

Ich kenne mich eig. mit dem Programm in sofern aus als das ich z.B. HW-Konfig selbstständig durchführen kann und einfache bis mäßig komplexe Steuerungen programmieren kann und die Sterndreieckumschaltung finde ich mäßig komplex.

Ich fände es freundlicher von euch wenn das Thema auch sachlich diskutiert wird und entweder Hilfestellungen/Lösungsvorschläge gemacht werden oder die User, die es wissen aber nicht helfen wollen es dann auch sein lassen und sich zynische Kommentare sparen. Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich fände es freundlicher von euch wenn das Thema auch sachlich diskutiert wird und entweder Hilfestellungen/Lösungsvorschläge gemacht werden oder die User, die es wissen aber nicht helfen wollen es dann auch sein lassen und sich zynische Kommentare sparen. Danke!

Für mich ist eine Hilfestellung gegeben worden.

Jetzt bist du wieder dran.

Zeig uns was du hast und dir wird sicherlich geholfen.


Gruß
 
Für mich ist eine Hilfestellung gegeben worden.

Jetzt bist du wieder dran.

Zeig uns was du hast und dir wird sicherlich geholfen.


Gruß

Kann ich euch morgen hier ins Forum posten muss eh zur FH. Da lad ich mir das Prog. dann auf den Stick und Poste es direkt ins Forum....

Ist mir nämlich zu aufwändig das jetzt vom FUP in AWL zu schreiben!
 
Zurück
Oben