# S5 Timer programmieren



## electricx (10 September 2009)

Hallo Forum.
Erstmal ein dickes Lob für dieses gelungene Forum.

Nun zu meiner Frage: Ich habe von der Geschäftsleitung den Auftrag erhalten, eine Stillstandsüberwachung in einer Anlage zu erweitern.
Istzusrand:
Und zwar wird hier eine Welle mit Nockenscheibe von (von einem Tambour ) per Initiator überwacht; erst wenn kein Signalwechsel mehr kommt, also Stillstand, können die Türen der Anlage geöffnet werden. Das Stillstands-Auswerterelais ( Schmersal )gibt ein Signal an eine S5-Steuerung, auf einen Eingang. 
Soll:
Jetzt soll es so sein, das dieses Signal, also wenn es länger keinen Signalwechsel mehr gibt, zusätzlich die Freigabe eines Frequensreglers eines anderen Antriebes ( Transportwalzen, die den Tambour mit Material versorgen ) wegnimmt. Also eine Art blockierschutz. Denn falls die Welle mit dem Nockenrad ( der Tambour ) mal festgeht, wegen Materialstau, schaffen die anderen Transportwalzen das Material nicht mehr weg und blockieren ebenfalls, wobei meistens Schäden entstehen.

Wie programmiere ich das jetzt am besten?

Hab´SPS technisch eher wenig Erfahrung, komme aber mit der Software und der Bedienung klar. Bin auch schon einige Zeit mit´m Field-PG unterwegs, zwecks Störungsbeseitigung. S5 und S7.


----------



## Ralle (10 September 2009)

Wie lang soll denn die Zeit sein, bis die Freigabe weggenommen wird?

Du könntest den Eingang vom Schmersal (der Eingang ist True bei Stillstand?) auf eine SE-Zeit legen, z.Bsp. 5 Sekunden. Wenn das Schmersalsignal länger als 5 Sekunden True ist, dann schaltet der Timer und du kannst das Freigabesignal vom FU abschalten. Evtl. mußt du dir aber noch was für das Anfahren ausdenken, vielleicht auch noch eine kurze Verzögerung?

Bsp. Freigabe verzögert abschalten: T1 und M0.0 müssen frei sein, sonst mußt du diese durch freie Timer/Merker ersetzen!!!

```
NW1:
U E0.0   //Schmersal meldet Stillstand, hier deinen Eingang einsetzen
L S5t#5s
SE T1    //T1 oder freien Timer
NOP 0    //die NOP sind nur da, damit das ganze auchin KOP/FUP darstellbar ist
NOP 0
NOP 0
U T1
= M0.0   //M0.0 oder freien Merker

NW2:
UN M0.0
.
.   //die anderen Freigaben
.
= #Freigabe_FU  //Das kann auch ein Merker sein, oder du machst UN M0.0 in den Freigabezweig des FU rein
```

Bsp. mit Anlaufverzögerung: T1 und M0.0 müssen frei sein, sonst mußt du diese durch freie Timer/Merker ersetzen!!!

```
NW1:
U(
U E0.0   //Schmersal meldet Stillstand, hier deinen Eingang einsetzen
L S5t#5s
SE T1    //T1 oder freien Timer
NOP 0    //die NOP sind nur da, damit das ganze auchin KOP/FUP darstellbar ist
NOP 0
NOP 0
U T1
)
L S5T#10s
SA T2    //T2 oder freien Timer  
Nop 0
Nop 0
Nop 0
U T2
= M0.0   //M0.0 oder freien Merker

NW2:
UN M0.0
.
.   //die anderen Freigaben
.
= #Freigabe_FU  //Das kann auch ein Merker sein, oder du machst UN M0.0 in den Freigabezweig des FU rein
```

PS: Ich hab das für S7 gezeigt, kommst du mit der Umsetzung in S5 klar? Hab gerade keinen S5-Editior zur Hand.

Ah ich habs, du mußt für S5 nur 

L S5t#5S durch L KT50.1 und
L S5t#10s durch L KT100.1 ersetzen

Der Rest sollte gleich sein.


----------



## peter(R) (10 September 2009)

d.h. du bekommst ein 1 Signal wenn die Anlage steht ??

das wäre dann:

UN  Anlage steht   // wenn die Anlage nicht steht
L KT 5.2
SA T1                 //  ist der Timer 1 und die Frequenzregler sind aktiv

U T1                  // muss in die Frequenzregler rein dieser T1 schaltet                 verzögert aus wenn die Anlage steht.

KT 5.2 bedeutet zB  5 sec.   Die .2  ist Sekunden. .1 wäre 0.1sec  .0 wäre 0.1 sec  .3 wäre 10 sec        dh. die Zahl vor derm Punkt ist die Zeit und die Zahl nach dem Punkt die Zeitbasis.

peter(R)

P.S.  Darüber, daß ihr ein normales Stillstandsrelais nehmt um Türen freizugeben reden wir jetzt lieber nicht.


----------



## electricx (10 September 2009)

Erstmal vielen dank soweit.

@ Ralle: 
ja, das sieht gut aus. Hab´s auch verstanden, werd´s morgen mal testen. Wie viel zeit ich brauche, sehe ich dann.

@ Peter(R)und Ralle:
Das mit dem Signal ist so´ne Sache, ich bekomme entweder 1 oder 0. je nach dem, wie die Nockenscheibe vor dem Ini stehen bleibt. Das ist ja auch mein größtes Problem, das umzusetzen. Wenn ich immer definiert entweder nur 1 oder nur 0 hätte, wär´s einfacher für mich. 

noch zum Stillstandsrelais und die Türenfreigabe: Es ist eine alte Anlage, die nicht von mir gebaut wurde. Ich "darf" jetzt nur etwas erweitern.
Aber was daran nicht richtig ist, wüßte ich gern; so für die Zukunft oder einen Neubau der / einer anderen Anlage.

Ach, jetzt hab ich´s gerafft. Ihr meint das Signal vom Schmersal-Stillstandswächter, richtig? also, er gibt ´ne 1, wenn die Welle dreht, ´ne 0, wenn die Welle steht. 
Find´ich aber auch seltsam, muß ich mir noch mal anschauen. Würde das genau anders herum machen, aber kommt wohl auch auf die Zuhaltung an. Meine, die verbaute gibt Spannungsfrei frei. Und wenn ich jetzt überlege, was passieren könnte, wenn einer den Anlagenhauptschalter in vollem Lauf abschaltet und dann gleich die Türen aufreisst; ei ei ei.......


----------



## Question_mark (10 September 2009)

*Es geht auch einfacher*

Hallo,



			
				electricx schrieb:
			
		

> ich bekomme entweder 1 oder 0. je nach dem, wie die Nockenscheibe vor dem Ini stehen bleibt. Das ist ja auch mein größtes Problem, das umzusetzen. Wenn ich immer definiert entweder nur 1 oder nur 0 hätte, wär´s einfacher für mich.



Du musst doch nur überwachen, ob sich das Signal von dem Ini in einem bestimmten Zeitraum ändert. Da ist es doch egal, ob bei Stillstand ein "0" oder "1" Signal ankommt ...

Zähl doch ganz einfach mit jedem Signal von Ini ein Datenwort hoch und überwache, ob sich der Wert im Datenwort innerhalb eines Zeitraumes verändert. Und fettisch iss ...

Oder habe ich Dein Problem nicht verstanden ?

Gruß

Question_mark


----------



## Ralle (10 September 2009)

Du kopierst  NW1 in ein neues NW, mit anderen Zeiten und Merkern und schreibst statt U E 0.0 --> UN E 0.0.

Dann läuft je eine Zeit ab, wenn der E0.0 länger als 5 Sekunden True ist, die andere Zeit, wenn er länger als 5 Sekunden False ist.

Auch mit Flanken und SA-Zeiten könnte man arbeiten.


```
U E 0.0
UN M 1.1
= M 1.0    //Flanke
U E 0.0
= M 1.1   //HM Flanke
```

M1.0 auf eine SA-Zeit


```
UM 1.0
L KT 50.1
SA T 3
NOP 0
NOP 0
NOP 0
= M 2.0  //Freigabemerker für FU
```


----------



## Sockenralf (11 September 2009)

electricx schrieb:


> Und wenn ich jetzt überlege, was passieren könnte, wenn einer den Anlagenhauptschalter in vollem Lauf abschaltet und dann gleich die Türen aufreisst; ei ei ei.......


 

Hallo,

war da nicht mal ein Gesetz, eine Verordnung oder sowas, daß die Arbeitsmittel grundsätzlich mal sicher sein müssen?

Wenn das beim Bau der Anlage rechtens war, könnt´s vielleicht noch durchgehen, aber ich behaupte jetzt mal, daß SOWAS (oder der Stillstandswächter auf einen DI) nie i. O. war




MfG


----------



## Blockmove (11 September 2009)

peter(R) schrieb:


> Darüber, daß ihr ein normales Stillstandsrelais nehmt um Türen freizugeben reden wir jetzt lieber nicht.



Warum nicht?
Kommt auf die geforderte Sicherheits-Kategorie der Anlage an.
Ausserdem weisst du ja nicht, was durch das Öffnen des Schutzgitters ausgelöst wird. Vielleicht gibts einen Schnellhalt oder eine elktr. Bremse?

In 90% unserer Anlagen wird die Zuhaltung auch über normale SPS E/A realisiert. 

Gruß
  Dieter


----------



## bike (11 September 2009)

Blockmove schrieb:


> In 90% unserer Anlagen wird die Zuhaltung auch über normale SPS E/A realisiert.
> 
> Gruß
> Dieter



Bei uns sind aus Kostengründen 90% ohne Zuhaltung gebaut.
Der Weg zu den beweglichen Teilen muss nur eben durch Hinternisse so lange behindert werden, bis alles steht.
Ist leider die Philosophie bei unseren Konstukteuren, nicht von mir


bike


----------



## electricx (11 September 2009)

Vielen dank für eure Hilfe.
Hab´das ganze jetzt noch einfacher realisiert, ohne Timer.

Nach dem ich mir das Programm angesehen habe, stellte ich fest, dass ich einfach nur den Signalzustand des Stillstandswächters, wenn die Welle dreht, in die Freigabebedingung des FU der Transportwalzen als und einbringen muss. Das war´s auch schon.


----------



## waldy (12 September 2009)

Hi,
Ralle, wenncih sehe deine erste Antwort,
du hast alles in FUP gemacht und dann in AWL umgewandelt - so kann ich auch machen , Dollar auf Euro in Bank wechseln , ohne Kurs zu wiesen 

gruß waldy


----------



## Question_mark (12 September 2009)

*Gggrrr ...*

Hallo,



			
				waldy schrieb:
			
		

> Ralle, wenncih sehe deine erste Antwort,
> du hast alles in FUP gemacht und dann in AWL umgewandelt - so kann ich auch machen , Dollar auf Euro in Bank wechseln , ohne Kurs zu wiesen



Ähemm, waldy darf ich Dich mal darauf hinweisen, das Ralle beide Beispiele in AWL geschrieben hat    

Nur so ganz nebenbei bemerkt ...

Um bei Deinem Beispiel mit der Bank zu bleiben, Du solltest Dich auch mal mit Wechselkursen beschäftigen.

@Ralle : kannst Du das bitte auch noch einmal in KOP schreiben *ROFL*

Und dann noch eine Variante für kaskadierende Logos, dann schlägt der KHD-Klaus ganz bestimmt wieder hier im Forum auf ...

Gruß

Question_mark


----------



## waldy (12 September 2009)

> Ähemm, waldy darf ich Dich mal darauf hinweisen, das Ralle beide Beispiele in AWL geschrieben hat


 ja, bitte , kein Problemm.
Nur sag mal, wer macht das, wenn er schreibt man Programm in AWL - schreiben dann drei mal  "NOP" dabei - bis jetzt habe ich noch das nicht geshen .
Na Gut - aber jetzt habe ich das gesehen .

gruß waldy


----------



## Ralle (12 September 2009)

waldy schrieb:


> Hi,
> Ralle, wenncih sehe deine erste Antwort,
> du hast alles in FUP gemacht und dann in AWL umgewandelt - so kann ich auch machen , Dollar auf Euro in Bank wechseln , ohne Kurs zu wiesen
> 
> gruß waldy



Ne Waldy, ich hab das in AWL geschrieben, aber so, daß man das auch in KOP und FUP wandeln kann. Bei einem Timer und ein wenig Bool-Variablen bekomm ich das auch im hohen Greisenalter gerade noch hin. 

@qm

Ne, in KOP bekomme ich das nicht ins Forum hochgeladen, ich kann das Screencopy-Program nicht bedienen.


----------



## Ralle (12 September 2009)

waldy schrieb:


> ja, bitte , kein Problemm.
> Nur sag mal, wer macht das, wenn er schreibt man Programm in AWL - schreiben dann drei mal  "NOP" dabei - bis jetzt habe ich noch das nicht geshen .
> Na Gut - aber jetzt habe ich das gesehen .
> 
> gruß waldy



Ich mach das automatisch, ist halt so drin.


----------



## Question_mark (12 September 2009)

*Wechselkurs*

Hallo,



			
				waldy schrieb:
			
		

> Na Gut - aber jetzt habe ich das gesehen .



Gesehen hast Du das bestimmt, aber nicht verstanden ...

Beide Beispiel von Ralle sind in AWL geschrieben, aber im zweiten Beispiel hat Ralle mit den NOP 0 Platzhalterfunktionen für die Darstellung in FUP/KOP eingefügt, damit AWL-Code auch in FUP/KOP dargestelt werden kann. Also gewissermassen ein Wechselkurs 

Gruß

Question_mark


----------



## Question_mark (12 September 2009)

*Wechselkurs*

Hallo,



			
				Ralle schrieb:
			
		

> Ne, in KOP bekomme ich das nicht ins Forum hochgeladen, ich kann das Screencopy-Program nicht bedienen.



Ja, was denn nun : KOP kannst Du nicht, in LOGO ist auch nichts drin ????

Dann bist Du ein guter Programmierer, aber ich schmunzele immer noch über die KOP und LOGO Diskussionen dereinst hier im Forum   

*Mal ein bißchen Spiritus in das Feuer giesse *

Gruß

Question_mark


----------



## waldy (12 September 2009)

@ralle


> Ich mach das automatisch, ist halt so drin.


 Ok Ralle, dann entschuldige mich. Nichts Schlechtes hatte ich damit nicht gemeint.

Nur ich möchte dann dich fragen, damit wiessen, wieviel "NOP"  bei jede Element schreiben man muss - benutzt du mit Handbucher oder hast du alles in Kopf?

Z.B. ich weiss das nicht , ich brauche dafür Buch , damit jede mal ich muss nachschauen, wieviel Eingänge und mit welche Funktion hat z.B. Teimer S5 .

gruß waldy


----------



## peter(R) (12 September 2009)

@ waldy
vergleiche das mal mit dem sprechen einer fremden Sprache. Erst lernt man die Wörter und die Grammatik und plagt sich bei jedem Satz wie man das ausspricht und nach einer Weile geht das ganz automatisch.
Genau so ist das beim Programmieren. Das "richtige" programmieren fängt erst an wenn man seine "Fingerübungen" ( wie schreibe ich was ) völlig automatisiert hat und nur noch über den Weg nachdenken braucht.
Wenn ich jedesmal bei einer Rechen- oder timerfunktion überlegen müsste wie man das schreibt würde ich nie fertig. Also alles reine Übung.

peter(R)


----------



## Ralle (12 September 2009)

Wenn ich mal gerade nicht weiß, wie das für KOP/FUP aussieht, dann setz ich das einzelne Element in KOP/FUP in ein extra Netzwerk, schalte um und hab die "Syntax" wieder parat. Allerdings ist das recht selten, da das ja fast nur Timer bei mit betrifft. Diese dusseligen Move-Orgien in FUP, um 3 Werte umzurechnen gibts bei mir eher nicht, das wird in AWL erledigt. Aber es gibt ja auch Kunden, die FUP vorschreiben, da wird das dann halt gleich in FUP erledigt. :-(


----------

