Impuls für mehrere Sekunden wiederkehrend

outbreak7

Level-1
Beiträge
43
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute

nachdem ich jetzt schon wieder ewig herumgebastelt habe frag ich euch mal. Ich möchte gern folgendes realisieren:

Wenn mein DB0.DBX0.0 manuell auf 1 gesetzt wird soll der A 1.0 für 3 sek lang high und dann für 5 sek lang low sein. Danach wieder 3 sek high ... und so weiter. Alles nur so lange bis ich das DB0.DBX0.0 wieder auf 0 setze.

Ich denke das sollte gar nicht so komplizert sein aber irgendwie wills bei meinen versuchen einfach nicht klappen.

Vielen dank schonb mal für eure Hilfe!

MfG
 
dann stell doch mal deine Versuche hier rein, dann ist es einfacher. außerdem ist es besser, Fehler in seinen Versuchen zu erkennen, als fertige Vorlagen zu verwenden...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hast du dich schon mal mit den Timern der SPS beschäftigt ? Vielleicht auch schon mal die Suchfunktion des Forums mit dem Stichwort "Taktgeber" oder ähnlich bemüht ?

Gruß
LL
 
Hallo Günni

also ich habs versucht über folgenden Code zu realisieren. Allerdings bekomme ich dann am Ausgang nur ein kurzes high und dann für drei sek ein low. Vielleicht hast du ja eine Idee. Bin für jede hilfe dankbar.

U "NotAus_Bits".Hilfsbit_Hupe
U "NotAus_Bits".Hilfsbit_Hupe1
L S5T#3S
SE T 4
U T 4
R "NotAus_Bits".Hilfsbit_Hupe1
= "Hupe_auslösen"

U "NotAus_Bits".Hilfsbit_Hupe
UN "NotAus_Bits".Hilfsbit_Hupe1
L S5T#3S
SE T 5
U T 5
S "NotAus_Bits".Hilfsbit_Hupe1
= "Hupe_auslösen"

..."NotAus_Bits".Hilfsbit_Hupe ist mein Bit was ich manuell auf 1 setzen will damit das ganze Prodzedere stattfindet.

MfG
 
Dann mach es doch mal so :
Code:
U "NotAus_Bits".Hilfsbit_Hupe
UN T5
L S5T#3S
SE T 4
U T 4
L S5T#3S
SE T 5
 
U T4
= "Hupe_auslösen"
Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
FUNCTION "PULSE_GENERATOR_VAR" : VOID
TITLE =PULSE_GENERATOR_VARI
//DATE:     03.04.2008
//AUTHOR:   4lagig
//VERSION:  V0.1 BasicVer
AUTHOR : '4lagig'
FAMILY : BoolGF
VERSION : 0.1


VAR_INPUT
  xPlcPulse : BOOL ;	
  xOn : BOOL ;	
  dOnTime : DINT ;	
  dOffTime : DINT ;	
END_VAR
VAR_IN_OUT
  dOnDelay : DINT ;	
  dOffDelay : DINT ;	
  xHelpFlag : BOOL ;	
  xOut : BOOL ;	
END_VAR
BEGIN
NETWORK
TITLE =

      U     #xOn; 
      U     #xPlcPulse; 
      FP    #xHelpFlag; 
      SPBN  end; 

      U     #xOut; 
      SPBN  off; 

      L     #dOnDelay; 
      L     1; 
      +I    ; 
      T     #dOnDelay; 

      L     #dOnDelay; 
      L     #dOnTime; 
      >=I   ; 
      SPBN  end; 
      R     #xOut; 

      L     0; 
      T     #dOnDelay; 
      SPA   end; 

off:  L     #dOffDelay; 
      L     1; 
      +I    ; 
      T     #dOffDelay; 

      L     #dOffDelay; 
      L     #dOffTime; 
      >=I   ; 
      SPBN  end; 
      S     #xOut; 

      L     0; 
      T     #dOffDelay; 


end:  SET   ; 
      SAVE  ; 
      BEA   ; 
END_FUNCTION
 
so ähnlich wie "Larry Laffer" mach ich es auch immer...

Code:
UN T1
L S5T#2s //Impulszeit
SA T2

U T2
L S5T#1S //Pausezeit
SA T1

U T1
= A0.0

zum sperren oder laufen lassen halt noch dein Bit verwenden
 
Besten Dank Leute für eure schnellen Antworten. Hatte mir gleich die erste variante von Larry rausgepickt und funktioniert bestens. Jetzt noch mal ne Frage in anderer Angelegenheit.

Ich habe in einem Netzwertk folgenden Quellcode:

CALL "Analogwerte_Normierung"
Analogwert :="TI030"
OGR :=1.372000e+003
UGR :=0.000000e+000
Analogwert_MAX:=1.372000e+004
Wert_normiert :=MD100
T "Durchfluss".Temperatur_B0
L 3.000000e+001
>=R
SPB A
R "NotAus_Bits".Hilfsbit_TI030
L "Durchfluss".Temperatur_B0
RND
L 3.000000e+001
T "Temperatur".TI030
BE
A: S "NotAus_Bits".Hilfsbit_TI030

...also wie ihr sehen könnt les ich mir am Anfang ne Temperatur analog ein und wandel diese. danach soll ein vergleich mit der Grenztemperatur 30 °C durchgeführt werden da diese ein Kriterium für mein "NOTAUS" ist. Also unter 30 °C alles ok das "NotAus_Bits".Hilfsbit_TI030 wird zurückgesetzt. Über 30°C wird "NotAus_Bits".Hilfsbit_TI030 gesetzt und somit direkt in einer weiteren Function meine Hupe ausgelöst. Funktioniert bestens bis auf eins:
Durch die Anweisung BE werden meine nachfolgenden Netzwerke nicht mehr angesprochen. lasse ich BE weg wird "NotAus_Bits".Hilfsbit_TI030 immer gestzt. Gibts denn da einen anderen Befehl den man für den reibungsosen Ablauf anwenden muss?

Besten Dank

MfG outbreak
 
besten dank vierlagig. werds gleich mal ausprobieren. leieder ists halt doch manchmal schwer grad wenn man so am anfang steht wie ich!

kurze Frage noch was sind denn bitte CODE Tags?

MfG
 
Zurück
Oben