Pumpe_A oder Pumpe_B mit Timer,HILFE :-(

hubert18

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum :)
ich hoffe ihr könnt mir ein paar tipps geben. wenn ich pumpe a einschalte und dann pumpe b einschalte, soll nach 3 sekunden die pumpe a ausgehen. wenn ich als erstes die pumpe b einschalten und dann die pumpe a soll nach 3 sekunden die pumpe b ausgehen. Ich weiß einfach nicht mehr weiter wie ich das machen soll.
So sieht mein Programm bis jetzt aus. Ich hoffe ihr könnt mir helfen :-(

U Wasserpumpe.EIN
SPB wp01
//;
U Wasserpumpe_B.EIN
SPB wp02
SPA ende
//;
wp01: U Wasserpumpe_B.EIN
FR T 1
L S5T#3S
SE T 1
U T 1
SPB wp03
SPA ende
wp03: L 0
T Wasserpumpe.STATUS

SPA ende

wp02: U Wasserpumpe.EIN
FR T 1
L S5T#3S
SE T 1
U T 1
SPB wp04
SPA ende
wp04: L 0
T Wasserpumpe_B.STATUS

ende: NOP 0
 
Nur beim Überfliegen fallen 2 Dinge ins Auge:

1. Das geht auch ohne Sprünge. Sprünge sollte man bei so etwas nicht einsetzen!
2. T1 wird mehrfach verwendet. Das geht schief...
 
????????
U Wasserpumpe.EIN
U Wasserpumpe_B.EIN
FR T 1
L S5T#3S
SE T 1
U T 1
SPB e
SPA ende
e: L 0
T Wasserpumpe.STATUS


U Wasserpumpe_B.EIN
U Wasserpumpe.EIN
FR T 5
L S5T#3S
SE T 5
U T 5
SPB z
SPA ende

z: L 0
T Wasserpumpe_B.STATUS
ende: NOP 0
 
U Wasserpumpe.EIN
U Wasserpumpe_B.EIN
FR T 1
L S5T#3S
SE T 1
U T 1
SPB e
SPA zwi
e: L 0
T Wasserpumpe.STATUS


zwi: U Wasserpumpe_B.EIN
U Wasserpumpe.EIN
FR T 5
L S5T#3S
SE T 5
U T 5
SPB z
SPA ende
z: L 0
T Wasserpumpe_B.STATUS

ende: NOP 0

wenn ich das so mache, gehen ja beide pumpen aus
 
Was Dir Tigerente sagen wollte ist, dass Du dafür an und für sich (zumindestens für den Ablauf) keine Sprünge benötigst.
Wenn Du etwas Verzögert abschalten willst, ist das ganze wahrscheinlich einfacher, wenn Du das Zeitglied mit genau dieser Funtkion verwendest.
 
mein problem sit doch, das ich sobald die pumpe b einscvhalte und dann pumpoe a immer der obere teil abläuft und nie der timer 5
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
FUNCTION_BLOCK FB 2
TITLE =
VERSION : 0.1


VAR_INPUT
  xInOne : BOOL ;	
  xInTwo : BOOL ;	
  xPLCPulse : BOOL ;	
  iOffTime : INT ;	
END_VAR
VAR_OUTPUT
  xOutOne : BOOL ;	
  xOutTwo : BOOL ;	
END_VAR
VAR
  xHFOne : BOOL ;	
  xHFTwo : BOOL ;	
  xHFOff : BOOL ;	
  xHFOffOne : BOOL ;	
  xHFOffTwo : BOOL ;	
  iTime : INT ;	
END_VAR
BEGIN
NETWORK
TITLE =

      U     #xInOne; 
      FP    #xHFOne; 
      X     #xOutOne; 
      =     #xOutOne; 

      U     #xInTwo; 
      FP    #xHFTwo; 
      X     #xOutTwo; 
      =     #xOutTwo; 

NETWORK
TITLE =

      U     #xInOne; 
      U     #xOutTwo; 
      S     #xHFOffTwo; 

      U     #xInTwo; 
      U     #xOutOne; 
      S     #xHFOffOne; 

NETWORK
TITLE =

      U     #xPLCPulse; 
      U(    ; 
      O     #xHFOffTwo; 
      O     #xHFOffOne; 
      )     ; 
      FP    #xHFOff; 
      SPBN  end; 
      L     #iTime; 
      +     1; 
      T     #iTime; 
      L     #iOffTime; 
      >=I   ; 
      SPBN  end; 
      U     #xHFOffOne; 
      R     #xOutOne; 
      U     #xHFOffTwo; 
      R     #xOutTwo; 
      SET   ; 
      R     #xHFOffTwo; 
      R     #xHFOffOne; 
      L     0; 
      T     #iTime; 
end:  SET; 
      SAVE;

END_FUNCTION_BLOCK
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ist das s7 programmierung ?

ja.
ist eine bausteinquelle.
quellcode in eine neue awl-quelle kopieren (* nicht mit kopieren)
übersetzen
und aufrufen und beschalten, z.b. so:

Code:
*
      CALL  FB     2 , DB2
       xInOne   :=E0.0
       xInTwo   :=E0.1
       xPLCPulse:=M2.5
       iOffTime :=3
       xOutOne  :=A0.0
       xOutTwo  :=A0.1
 
Zurück
Oben