# Problem mit Programmsteuerung & Verzögerungs- bzw. Fehlerzeiten / S7-200



## Andy082 (9 Dezember 2009)

Abend.


Bin gerade wieder mal dabei für die Arbeit mein Privatleben zu opfern und zimmere mir gerade einen Schrittablauf für meine zukünftigen Projekte.

Die Programmsteuerung der 200er macht mir grundlegend keine Probleme und ich denke ich kenne deren Grenzen und Möglichkeiten so gut, dass ich guten Gewissen behaupten kann, meine Abläufe funktionieren zuverlässig.

Was mich nun aber eben zum Grübeln bringt ist, dass ich für jedes "Segment" oder "Schritt" eine eigene Verzögerungszeit sowie eine eigene Zeit für meine Fehlerkennung benötige.

Ich hätte es nun bereits mal mit einem generellen Timer für alle Verzögerungen und einem generellen Timer für alle Fehler versucht und lade immer die benötigte Zeit in den jeweiligen Timer.
Nur startet mir dann der jeweilige Timer nicht mehr.

Ich hab hier mal auszugsweise etwas meines letzten Ablaufes reingestellt.


```
//set maschine in home position
LD     V450.2
UN     S0.0
S      S0.0, 1
R      S0.1, 255
 
//set maschine in automatic mode
LD     V1.4
O      V1.3
U      V451.2
=      S1.0
 
//home position - mark 0 --------------------------------------------
//initiate positioning on home.
LSCR   S0.0
MOVW   0, VW400
SCRT   S0.1
SCRE
 
//home position - mark 1 --------------------------------------------
//move "Keyence"-measurement sensor back to 0-pos. / expensive things first!
LSCR   S0.1
MOVW   1, VW400
TON    T104, 100                   //set sequencer-error 
LDN    A0.6                        //Q used instead of I, no sensores used!
O      A0.7
R      A0.7, 1
S      A0.6, 1
LD     A0.6
TON    T103, 20
LD     T103
U      E2.1                        //LO-signal of keyence sensor used to controll backward position
SCRT   S0.2
LD     T104
MOVW   10, VW2
=      V9904.6
SCRE
 
//home position - mark 2 --------------------------------------------
//move peening back to home-position
LSCR   S0.2
MOVW   2, VW400
TON    T106, 100
LDN    E0.4
R      A0.5, 1
S      A0.4, 1
LD     A0.4
TON    T105, 20
LD     T105
U      E0.4
SCRT   S0.3
LD     T106
MOVW   10, VW2
=      V9904.4
SCRE
 
//home position - mark 3 --------------------------------------------
//move testcylinder back to home-position
LSCR   S0.3
MOVW   3, VW400
TON    T108, 100
LDN    E0.0
R      A0.1, 1
S      A0.0, 1
LD     A0.0
TON    T107, 20
LD     T107
U      E0.0
SCRT   S0.4
LD     T108
MOVW   10, VW2
=      V9904.0
SCRE
```
 

Liegt's grundlegend an der Programmsteuerung der 200er, oder überseh ich hier mal wieder etwas....


mfg,
Andy


----------



## Andy082 (10 Dezember 2009)

Hallo.

Keiner ne' Idee oder nen' Ansatz hierzu?

Kann es denn sein, dass im Gegensatz zur Schrittkettensteuerung der 300er, die Ablaufsteuerung der 200er kleine Lücken aufweist?

zB:

```
LSCR   S0.0
 
LD E 0.0
U E0.1
SCRT   S0.1
 
NOT
= A0.0
SCRE
 
 
LSCR   S0.1
 
LD E 1.0
= A0.0
SCRT   S0.2
 
SCRE
 
...usw
```
 

Erstelle ich einen kleinen Testablauf wie oben, so kann ich niemals meinen Ausgang A0.0 ansteuern. Dieser bleibt immer 0.
Das selbe passiert eben auch im zuvor verfassten Beitrag mit meinen Timern.

Jemand ne' Ahnung warum das so ist?
Oder verwende ich die Ablaufsteuerung falsch?

Aus der kurzen Beschreibung der Ablaufsteuerung v. Siemens komm ich auch nicht auf den Fehler.


mfg,
Andy


----------



## mariob (20 Dezember 2009)

Hallo,
ich verwende die Schrittkettenbefehle der 200 nicht, ich baue mir die Schrittketten im allgemeinen komplett selbst. So aufwendig ist das ganze nicht, flexibler ist es außerdem. So als Anregung.

Gruß
Mario


----------



## hucki (21 Dezember 2009)

Hi Andy082,

ich benutze auch die Ablaufsteuerung der 200er, allerdings überwiegend in KOP und auch noch nicht allzu lange. Zum Starten der Timer muß bei mir immer noch ein High-Signal vor den Timer, damit sie anlaufen.

Setz' also mal vor den TON-Befehl jeweils ein LD SM0.0 damit das VKE=1 ist. So funktioniert es zumindest, wenn man KOP nach AWL wandelt.

Soweit ich weiß, setzt zwar der Befehl SCRT Sx.y die Netzwerke zw. LSCR Sx.y und SCRE aktiv, aber nicht das VKE automatisch auf 1.
Oder ist das unter reinem AWL anders?

So sieht's bei mir aus:


----------

