Step 7 Ein Problemchen beim Planen einer Schrittkette

Möglichkeit 1 braucht nur einen Flankenhilfsmerker und keine zusätzliche Variable für den Impulsmerker, die Flanke kann dafür aber nur einmal (sofort) verarbeitet werden.

Ich favorisiere Möglichkeit 2: erst die Flanke(n) bilden und auf zusätzliche Impulsmerker-Variable(n) legen. [/SIZE]

Harald

Ok, danke Harald.

Nur, lässt sich der Beispielcode 2 auch dann anwenden, wenn in der IF-Bedingung z.B. mehrere Optionen stehen?

Beispiel...

Code:
Pulse_pos := Taster_Start AND NOT FLM;
FLM := Taster_Start;

IF Pulse_pos AND LS12 AND NOT Motor THEN
   Ausgang := 1;
END_IF;

Ausgang soll also nur gesetzt werden, wenn der Start-Taster mit einer pos. Fl. beaufschlagt wird, die LS12 etwas sieht und der Motor aus ist?
 
... bedenke bitte :
gesetzt wird der Ausgang - fällt aber eins der Bits wieder weg so bleibt der Ausgang weiterhin gesetzt - soll er das ?

Gruß
Larry
 
Hi Larry,

im Grunde war es jetzt nur ein Beispiel, ob es theoretisch so funktionieren würde... aber bei einer Schrittkette wäre es ja ok, wenn der Ausgang dann gesetzt bliebe, so lange die Case-Anweisung erfüllt ist.

Lieben Dank!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Helferlein! ;)

Bin nun ein Stück weiter und hänge jetzt noch an folgenden zwei Punkten:


1) Rücksetzen bei aktiver Schrittnummer

2) Grundstellungsfahrt


Zu 1)
In einem Ausgabebaustein wird einer best. Schrittnummer ein Aktor zugewiesen. Das Ganze soll in FUP für Hand- u. Automatikbetrieb programmiert werden. Angenommen es ist Schritt7 aktiv und der Bediener drückt NotAus; muss dann hier irgendwie reagiert werden? Ich meine, dass der Aktor, der Schritt7 zugewiesen ist, dann nicht mehr angesteuert wird…


Zu2)
Ist es prinzipiell möglich, die GS-Fahrt auch mit in diesem Ausgabebaustein in FUP zu machen? Also z.B. Taster für GS-Fahrt gedrückt und alle Aktoren fahren in GS…

Lieben Dank!
 
Hallo Spirit,

zu 1.) wenn ich keine Steuerspannung mehr habe dann sind auch alle SPS-Ausgänge, die Steuerspannung bedingen, abgeschaltet.

zu 2.) eine GS-Fahrt ist normalerweise Teil deines Stations-Ablaufs. Falls nicht so ist sie aber dennoch m.E. immer eine Abfolge und nicht das gleichzeitige Umsteuern von Ausgängen in den gewünschten Zustand. Ich würde also eine GS-Fahrt immer als Schrittkette realisieren und zu einem funktionellen Teil deines Ablaufs machen - ggf. als alternativen Zweig.

zu Ausgabe-Baustein : was meinst du denn damit ?

Gruß
Larry
 
Hallo Spirit,

zu 1.) wenn ich keine Steuerspannung mehr habe dann sind auch alle SPS-Ausgänge, die Steuerspannung bedingen, abgeschaltet.

zu 2.) eine GS-Fahrt ist normalerweise Teil deines Stations-Ablaufs. Falls nicht so ist sie aber dennoch m.E. immer eine Abfolge und nicht das gleichzeitige Umsteuern von Ausgängen in den gewünschten Zustand. Ich würde also eine GS-Fahrt immer als Schrittkette realisieren und zu einem funktionellen Teil deines Ablaufs machen - ggf. als alternativen Zweig.

zu Ausgabe-Baustein : was meinst du denn damit ?

Gruß
Larry

Hi Larry,

tut mir ja echt leid, dass du dich schon wieder opfern musst... Ausgabe-Baustein soll einfach eine FC sein, in dem die Ausgänge im Hand- u. Automatikbetrieb zugewiesen werden. Und neben diesen beiden Betriebsarten war nun meine Vorstellung, auch die GS-Fahrt als dritte Variante in dieser FC ablaufen zu lassen. Ist aber nicht so dolle, oder? :confused:

Zu1)
Ok, bei NotAus würde man die Steuerspannung der SPS-Ausgänge mit abschalten; nicht aber bei einem Umschalten von Automatik- in Handbetrieb. Hier soll beispielsweise die SK einfach stehenbleiben; ähnlich wie bei NotAus. Ok, aber für diesen spez. Fall wäre es wohl aber auch kein Problem, wenn der Ausgang über die Case-Anweisung noch zugewiesen wäre... schlimmstenfalls würde halt dieser eine Aktor noch reagieren, oder?

Zu2)
Wo würde man denn dann so eine GS-SK programmieren. Am Anfang der eigentlichen Schrittketten? Kann mir das irgendwie grad überhaupt nicht vorstellen. Was gibt man da als Startbedingungen vor - nur Taster GS drücken?

Danke...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
aber, willst du wirklich, dass bei Handbetrieb wieder alles auf anfang geht?

also unsere Anlagen bleiben z.B. bei störung in den schritt stehen, könnte dann per hand korriegieren und wieder in automatik schalten und die kette läuft weiter...


... bin grad noch etwas am Ummodeln; und es stimmt - besser ist es, wenn nach Umschalten von Automatik in Handbetrieb einfach alles stehenbleibt.

Nur; was mache ich mit dem SchrittX, der beim Umschalten gerade aktiv ist (Case-Anweisung) - muss der explizit rückgesetzt werden? Dann besteht aber das Problem, wie erfasse ich den aktiven Schritt?

Wie macht man das am besten in der Praxis?

Sorry, irgendwie fehlt mir da jetzt die Erfahrung...
 
Hallo!
evtl. den Wert für den nächsten Schritt in einer zweiten Variable speichern und vor dem nächsten select-case-Aufruf prüfen ob Hand oder Auto. Wenn Auto dann die zweite Variable dem Schrittzähler zuordnen um in den nächsten Schritt zu springen (is jetz sehr allgemein...).
Gruß
 
Danke wolfi_by,

hört sich für mich erst mal recht kompliziert an. Was würde denn passieren, wenn man überhaupt nicht reagiert?

Angenommen Schritt7 ist über die Case-Anweisung aktiviert und nun wird von Auto in Handbetrieb geschaltet; dann macht der Aktor, der dem Schritt7 zugeordnet ist, noch seine Bewegung, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau... und der zweiten Variable würde der wert für Schritt8 zugewiesen, jedoch würde nicht dorthin gesprungen, da der Schrittzähler noch den Wert für Schritt7 hat. Erst wenn Auto aktiv wird der Wert der zweiten Variable dem Schrittzähler zugewiesen und der nächste Schritt wird aktiv.
 
Erst wenn Auto aktiv wird der Wert der zweiten Variable dem Schrittzähler zugewiesen und der nächste Schritt wird aktiv.

Ok, danke.

Aber das müsste ja auch vermieden werden, dass nach Umschaltung von Hand in Auto plötzlich mit Schritt8 weitergemacht wird, oder?

Dann wäre es vielleicht sinnvoll, eine Zeile außerhalb der Case-Anweisung zu programmieren, in der die Schrittmerker bei Umschaltung auf Hand gelöscht werden...

Aja, und was meinst du mit zweiter Variable?
 
Die zweite Variable ist sozusagen der Temporärspeicher des Schrittzählers und sollte somit vom gleichen Typ sein... Und ob die Anlage beim nächsten Schritt weitermach oder auf anfang gesetzt wird kommt auf die Anwendung an. Wie gesagt. Ist jetzt ganz allgemein gehalten... Beispiel:

if Notaus==true then
temp_Schritt=0
Schrittzähler=0
endif

if Auto==true then
Schrittzähler=temp_Schritt
endif

select Schrittzähler
case 0
if Startbedingung then
temp_Schritt=1
case 1
temp_Schritt=2

case 2
temp_Schritt=3
.
.
.
end select
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Helferlein! ;)

Bin nun ein Stück weiter und hänge jetzt noch an folgenden zwei Punkten:


1) Rücksetzen bei aktiver Schrittnummer

2) Grundstellungsfahrt


Zu 1)
In einem Ausgabebaustein wird einer best. Schrittnummer ein Aktor zugewiesen. Das Ganze soll in FUP für Hand- u. Automatikbetrieb programmiert werden. Angenommen es ist Schritt7 aktiv und der Bediener drückt NotAus; muss dann hier irgendwie reagiert werden? Ich meine, dass der Aktor, der Schritt7 zugewiesen ist, dann nicht mehr angesteuert wird…


Zu2)
Ist es prinzipiell möglich, die GS-Fahrt auch mit in diesem Ausgabebaustein in FUP zu machen? Also z.B. Taster für GS-Fahrt gedrückt und alle Aktoren fahren in GS…

Lieben Dank!

Zu 1) Sieh Dir noch mal meinen Beitrag #18 an
 
Ok, bei NotAus würde man die Steuerspannung der SPS-Ausgänge mit abschalten; nicht aber bei einem Umschalten von Automatik- in Handbetrieb. Hier soll beispielsweise die SK einfach stehenbleiben; ähnlich wie bei NotAus. Ok, aber für diesen spez. Fall wäre es wohl aber auch kein Problem, wenn der Ausgang über die Case-Anweisung noch zugewiesen wäre... schlimmstenfalls würde halt dieser eine Aktor noch reagieren, oder?

Das kann man noch ganz gut programmieren:

Code:
U #Automatik
U #Schritt XY
UN #Stoerung
= Auto_Ventil_A

U #Hand
U #Taste_AB
UN #Stoerung
= #Hand_Ventil_A

U #Auto_Ventil_A
O #Hand_Ventil_A
O #GS_Ventil_A
= Ventil_A

Allerdings finde ich es oft ziemlich kompliziert, wenn eine Schrittkette angehalten wurde und der Bediener darf die Situation durch Handbedienungen beeinflussen.
Ggf. wird dann bei Umschalten in Automatik eine Bewegung ausgelöst, die in der neuen, veränderten Stellung nicht möglich ist oder zum Crash führen könnte.

Einfacher ist es daher m.E. die Schrittkette abzulöschen und nach einer Handbedienung eine Grundstellungssequenz zu durchlaufen, ehe der Automatikbetrieb gestartet werden kann.
 
Wo würde man denn dann so eine GS-SK programmieren. Am Anfang der eigentlichen Schrittketten? Kann mir das irgendwie grad überhaupt nicht vorstellen. Was gibt man da als Startbedingungen vor - nur Taster GS drücken?

Nach meiner Erfahrung ist das am besten in einer eigenen Schrittkette aufgehoben. Manche schreiben den Ablauf so, dass die Aktoren nur bei gedrückter GS-Taste aktiv sind. Oft muss der "GS-Taster" aber auch nur kurz betätigt werden. Hängt immer ein bisschen von der Anlage ab.

Trotzdem solltest Du versuchen eigene Erfahrungen zu machen. Dabei lernt man sehr viel dazu, auch wenn man mal in die falsche Richtung losmarschiert ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Spirit,
vielleicht noch einmal zu den Grundsätzen :
eine "normale" Schrittkette steht, wenn sie "normal" durchlaufen wurde wieder so, dass sie bedenkenlos wieder gestartet werden könnte. Beispiel ein Handling nimmt ein Teil von Pos.1 und bringt es nach Pos.2. Wo hat es seine Grundstellung ? Nehmen wir an, die ist über Pos.1. Die Grundstellung wäre dann auch die Bedingung für einen neuen Start. Nun senkt das Handling, wenn unten dann greift es das Teil, wenn gegriffen hebt es, wenn oben fährt es nach Pos.2, wenn über Pos.2 dann senkt es wieder, (*) wenn unten dann öffnet der Greifer, wenn offen dann hebt der Greifer und wenn oben dann fährt es wieder zurück nach Pos.1.
Ab da im Text, wo ich das (*) stehen habe ist es eigentlich schon die Grundstellungsfahrt. Dort würde ich einspringen, wenn ich in Grundstellung wollte.
Jetzt könnte man diesen Ablauf mit ein paar Features würzen. Z.B. könnte man nach Verlassen des Initial- oder Ausgangsschrittes einen Timer starten. Ist Wert des Timers größer als xyz dann hat deine Schrittkette einen Timeout, den man melden könnte. Wechselts du nun die Betriebsart so kannst du davon ausgehen, dass die Schrittkette sehr wahrscheinlich nie fertig wird - du kannst diese Bedingung z.B. zum Löschen derselben hernehmen. Gleichzeitig könntest du die Tatsache, dass die Schrittkette nicht in Ausgangsstellung ist dafür gebrauchen, dass du erst gar keine Hand-Einzelfunktionen zuläßt.
To be continued ... 8)

Im Grunde steht hier aber schon der Gedanke einer Struktur für solche Ablaufbausteine im Vordergrund.
Wie sieht der Stand heute bei dir aus ?

Gruß
Larry
 
Das kann man noch ganz gut programmieren:

Code:
U #Automatik
U #Schritt XY
UN #Stoerung
= Auto_Ventil_A

U #Hand
U #Taste_AB
UN #Stoerung
= #Hand_Ventil_A

U #Auto_Ventil_A
O #Hand_Ventil_A
O #GS_Ventil_A
= Ventil_A

Also irgendwie sitze ich hier auf der Leitung...

Verstehe ich obigen Code richtig, dass das Ventil_A entweder über den Automatikbetrieb ("#Auto_Ventil_A") oder den Handbetrieb ("#Hand_Ventil_A") oder die Grundstellungsfahrt (#GS_Ventil_A) angesteuert werden kann? Falls dem so wäre, verstehe ich aber immer noch nicht, wodurch der Ausgang, also Ventil_A, rückgesetzt wird, wenn von Automatik auf Handbetrieb umgeschaltet wird? :confused:


Hallo Spirit,
vielleicht noch einmal zu den Grundsätzen :
eine "normale" Schrittkette steht, wenn sie "normal" durchlaufen wurde wieder so, dass sie bedenkenlos wieder gestartet werden könnte. Beispiel ein Handling nimmt ein Teil von Pos.1 und bringt es nach Pos.2. Wo hat es seine Grundstellung ? Nehmen wir an, die ist über Pos.1. Die Grundstellung wäre dann auch die Bedingung für einen neuen Start. Nun senkt das Handling, wenn unten dann greift es das Teil, wenn gegriffen hebt es, wenn oben fährt es nach Pos.2, wenn über Pos.2 dann senkt es wieder, (*) wenn unten dann öffnet der Greifer, wenn offen dann hebt der Greifer und wenn oben dann fährt es wieder zurück nach Pos.1. Ab da im Text, wo ich das (*) stehen habe ist es eigentlich schon die Grundstellungsfahrt. Dort würde ich einspringen, wenn ich in Grundstellung wollte.

Gruß
Larry

Ok, das verstehe ich soweit. Nur, mit der Grundstellungsfahrt - da hapert es noch. Würdest du, entspr. deiner Beschreibung, für eine Grundstellungsfahrt also ab (*) in die gleiche Schrittkette wie für den normalen Ablauf einspringen?

Momentan habe ich die ganzen Startbedingungen für die einzelnen Schrittketten festgelegt, sowie die Schrittketten auf Papier aufgezeichnet, um dann die einzelnen Schritte besser ausprogrammieren zu können. Soweit ist es ok!

- Bei NotAus soll die SK einfach stehen bleiben. Das gelingt mir dadurch, dass der Nachfolgeschritt nicht mehr erfüllt ist.
- Beim Ausschalten der SK soll diese den Zyklus zu Ende machen und dann stehenbleiben. Das sollte klappen, indem ich das in die erste Startbedingung der Kette mit reinnehme.

Problematisch noch:

- Grundstellungsfahrt
- Umschaltung von Automatik in Handbetrieb: Dann bleibt zwar die Kette stehen; aber wie schaffe ich es, dass der entspr. (aktive) Schrittmerker rückgesetzt wird? Wenn ich "Tigerente" richtig verstanden habe, dann sollte das doch sein Code machen...
 
... eigentlich ist das Beispiel von Tigerente doch ganz schön. Er arbeitet hier nicht mit S-R sondern mit = ... dadurch wird die Bedingung sofort aufgehoben.

Wenn meiner Ausführungen :
Ich bleibe mal bei dem schon genannten Beispiel ...
S0 := Init
S1 := Greifer senken
S2 := Greifer schliessen
S3 := Greifer heben
S4 := Handling vorfahren
S5 := Greifer senken
S6 := Greifer öffnen
S7 := Greifer heben
S8 := Handling zurückfahren
S9 := fertig

Ich schreibe das jetzt mal in AWL hin - das geht mir schneller von der Hand :
Code:
U -S0
U -alles OK
U -Zyklus fahren
S -S1
R -S0

U -S0
U -alles OK
U -Grundstellung fahren
S -S6
R -S0

... hier ist der restliche Ablauf

U -S9
UN -Zyklus fahren
UN -Grundstellung fahren
S -S0
R -S9

... nun die Zuweisung, wie sie aussehen auch könnte

U(
O -S1
O -S9
O
U -S0
U -Hand Greifer senken
)
U -Steuerspannung Ein
= -A Greifer senken
Das Ganze ist jetzt aber mehr ein grobes Beispiel - aber so schon umsetzbar.
Versuch dich mal, das in SCL zu coden ... (oder das von Tigerente) ...

Gruß
Larry

Nachsatz:
Die Schrittkette (ganz generell) vorher als Abfolge in Form eines Diagramms zu zeichnen mache ich grundsätzlich auch. Das erspart mir den einen oder anderen Fehler bei einer Inbetriebnahme. Außerdem ist auch im nachhinein (also nach längerer Zeit) immer noch schnell zu erkennen, was man sich bei einem Ablauf gedacht hat. Das setzt natürlich vorraus, dass der Ablaufplan und die SPS-Umsetzung deckungsgleich sind ...
 
Zuletzt bearbeitet:
Zurück
Oben