neon
Level-1
- Beiträge
- 45
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo!
Ich muss als Projektaufgabe eine Schrittkette für eine Maschine programmieren.
Die Maschine muss Werkstücke umsetzen und hat dabei folgende Funktionen:
Heben, Senken, Vorfahren, Zurückfahren.
Ich habe die Transitionen in einen eigenen FC geschrieben (die gesamte Schrittkette besteht aus ca. 30 Schritten):
NW1
Transition 0 zu 5
U #Programm_starten
UN #Position_oben
U #Position_unten
UN #Vorfahren
UN #Rueckfahren
= #Tr0_5 ==> heben
NW2
Transition 5 zu 10
UN #Position_unten
U #Position_oben
UN #Rueckfahren
= #Tr5_10 ==>Vorfahren
NW3
Transition 10 zu 15
UN #Position_unten
U #Position_oben
UN #Vorfahren
UN #Rueckfahren
= #Tr10_15 ==>senken
NW4
Transition 15 zu 20
U #Position_unten
UN #Position_oben
UN #Vorfahren
= #Tr15_20 ==>rückfahren
.....
....
jetzt habe ich das Problem, dass u.U. die Bedingung für zwei Transitionen nacheinander zutreffen.
Und deswegen eine Transition garnicht abgearbeitet wird, weil das Programm gleich eine weiter springt.
Beispiel:
1. Greifer ist gesenkt (endschalter unten ein), Maschine steht (startposition).
2. Greifer heben (endschalter unten aus, endschalter oben ein).
3. Maschine soll vorfahren (endschalter oben aus).
==>da aber die Maschine noch nicht vorfährt ist auch die Bedingung im NW3 erfüllt, und der Greifer senkt wieder.
Gibt es eine Möglichkeit, das Programm dazu zu zwingen dass die Transitionen definiert nacheinander abgearbeitet werden?
Mit Graph kenne ich mich nicht aus, und in der Schule benutzen wir leider kein Graph.
Deswegen programmiere ich es mit Merkern und verschiedenen Bausteinen.
Ich benutze für die Schrittkette ein FB für die Aktionen einen FB und für die Transitionen einen FC.
mfg neon
Ich muss als Projektaufgabe eine Schrittkette für eine Maschine programmieren.
Die Maschine muss Werkstücke umsetzen und hat dabei folgende Funktionen:
Heben, Senken, Vorfahren, Zurückfahren.
Ich habe die Transitionen in einen eigenen FC geschrieben (die gesamte Schrittkette besteht aus ca. 30 Schritten):
NW1
Transition 0 zu 5
U #Programm_starten
UN #Position_oben
U #Position_unten
UN #Vorfahren
UN #Rueckfahren
= #Tr0_5 ==> heben
NW2
Transition 5 zu 10
UN #Position_unten
U #Position_oben
UN #Rueckfahren
= #Tr5_10 ==>Vorfahren
NW3
Transition 10 zu 15
UN #Position_unten
U #Position_oben
UN #Vorfahren
UN #Rueckfahren
= #Tr10_15 ==>senken
NW4
Transition 15 zu 20
U #Position_unten
UN #Position_oben
UN #Vorfahren
= #Tr15_20 ==>rückfahren
.....
....
jetzt habe ich das Problem, dass u.U. die Bedingung für zwei Transitionen nacheinander zutreffen.
Und deswegen eine Transition garnicht abgearbeitet wird, weil das Programm gleich eine weiter springt.
Beispiel:
1. Greifer ist gesenkt (endschalter unten ein), Maschine steht (startposition).
2. Greifer heben (endschalter unten aus, endschalter oben ein).
3. Maschine soll vorfahren (endschalter oben aus).
==>da aber die Maschine noch nicht vorfährt ist auch die Bedingung im NW3 erfüllt, und der Greifer senkt wieder.
Gibt es eine Möglichkeit, das Programm dazu zu zwingen dass die Transitionen definiert nacheinander abgearbeitet werden?
Mit Graph kenne ich mich nicht aus, und in der Schule benutzen wir leider kein Graph.
Deswegen programmiere ich es mit Merkern und verschiedenen Bausteinen.
Ich benutze für die Schrittkette ein FB für die Aktionen einen FB und für die Transitionen einen FC.
mfg neon