2 Hand Bedienung über 2 Taster

WOLKE

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits! :)

Ich bin Neuling und mit nachfolgender Aufgabenstellung konfrontiert aber tue mich mit Timern irgendwie schwer:

- Sprache: AWL
- 2 Pilztaster zum Auslösen
- Konzept: Erzwingen von 2-Hand Bedienung damit der Bediener nicht in bewegende Teile fasst. (Bitte keine Diskussion über das Konzept)

- Wenn beide Taster gleichzeitig gedrückt sind, soll sofort der Ausgang gesetzt werden - Aber folgende Bedingungen müssen erfüllt sein:

- wenn Signal von Taster 2 länger als 2 Sekunden nach Signal von Taster 1 kommt soll Ausgang nicht gesetzt werden (In umgekehrter Reihenfolge ebenso nicht - also für beide Reihenfolgen gleich)

- Wenn der 2s Timeout abgelaufen ist, darf es keine Kombinationsvariante geben den Ausgang doch noch Auszulösen (== Gesperrt)

- Um wieder Starten zu können nachdem der 2s Timeout abgelaufen ist, müssen beide Taster vorher wieder losgelassen worden sein.

- Wenn der Ausgang gesetzt wurde, muss er auch mindestens 5 Sekunden gesetzt bleiben - auch wenn beide oder einer von beiden Tastern losgelassen werden.

- Wenn beide Taster weiterhin gehalten werden - auch länger als die 5 Sekunden - soll der Ausgang auch gesetzt bleiben, bis beide Taster losgelassen werden.


Ich hab schon zig Varianten mit dem Impuls-Timer durchprobiert musste aber jedes Mal in PLCSIM feststellen das es nicht klappt wie gewünscht :(

Wer kann mir Helfen?

Viele Dank im Vorraus und freundliche Grüße!

Thomas
 
Zuletzt bearbeitet:
Keine Impuls-Timer nehmen.

Du willst die Momente erfassen, wenn die jeweiligen Taster von 0 auf 1 gehen - womit?
Dann hast Du 2 Sekunden Nachlauf auf diesen Moment - welcher Timer?
Beide Timer zusammen ergeben eine Kombination - welche?
Wieder den Moment erfassen, wenn der Ausgang von 0 auf 1 geht - womit?
Auf diesen Moment 5 Sekunden Nachlauf - welcher Timer?
Kombination aus diesem Nachlauf und den beiden Timern - welche?
 
Hallo hucki,

ich habe oben noch das Wort "sofort" eingefügt zum Präzisieren...

Leider komme ich noch nicht viel weiter mit deinen Tipps...
Währe Toll wenn du dein Konzept welches du im Kopf hast noch etwas verdeutlichen könntest.
SPS-Programmierung hatte ich zuletzt 2006 - ist also etwas eingerostet :|

Du willst die Momente erfassen, wenn die jeweiligen Taster von 0 auf 1 gehen - womit? --> Meinst du irgendwas mit Flanke-Positiv (FP)? Ich wollte mit dem Eingang eigentlich direkt auf den Timer...
Dann hast Du 2 Sekunden Nachlauf auf diesen Moment - welcher Timer? --> Ich hätte jetzt gesagt SI (Impuls) - kann dir noch nicht folgen :confused:

Habt bitte noch etwas Geduld mit mir :|

Wenn jemand Unterlagen kennt/hat die komplexere Timerverwendung (insbesondere solche Timerkombinationen) behandelt, währe ich sehr dankbar für Hinweise. In den Siemens/Christiani Unterlagen sind ja nur die Einfachstbeispiele angegeben ...
 
Du könntest den Timer Einschaltverzögert starten. Kein Impuls.

Du fragst die beiden Taster mit einem exclusiv oder ab und startest die Zeit.
Wen Zeit abgelaufen dann setze einen Zwischenmerker (aus der Instanz, Merker, DB etc.)

Zwischenmerker zurücksetzen wenn beide Tasten False

Und beide Taster True und nicht Zwischenmerker (also kein Taster alleine länger als die Schutzzeit gedrückt) gleich Ausgang.

Das dürfte in etwa das ergeben was du willst.

mfg René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... "sofort"
Du willst die Momente erfassen, wenn die jeweiligen Taster von 0 auf 1 gehen - womit? --> Meinst du irgendwas mit Flanke-Positiv (FP)? Ich wollte mit dem Eingang eigentlich direkt auf den Timer...
Dann hast Du 2 Sekunden Nachlauf auf diesen Moment - welcher Timer? --> Ich hätte jetzt gesagt SI (Impuls) - kann dir noch nicht folgen :confused: ...
Die Flanke ist schon mal richtig. Ein Impuls geht vlt. auch, ist aber kein normaler Nachlauf.
Wenn beide Eingänge und beide Nachläufe auf die Flanken der Eingänge high sind, kann der Ausgang aktiviert werden. Ist nur eins davon nicht (mehr) da, muss er aus bleiben.


PS: wie Du an den anderen Antworten siehst, gibt es sicher mehr als nur einen Weg.
 
Zuletzt bearbeitet:
Machts mal nicht so kompliziert:

Code:
U E0.0
X E0.1
L s5t#2s
SE T1

UN T1
U E0.0
U E0.1
L s5t#5s
//Hausaufgabe: den richtigen Timer hier einfügen

U T2
=A0.0

MfG
 
...
- Wenn beide Taster weiterhin gehalten werden - auch länger als die 5 Sekunden - soll der Ausgang auch gesetzt bleiben, bis beide Taster losgelassen werden.
...
...
Code:
...
UN T1
U E0.0
U E0.1
L s5t#5s
//Hausaufgabe: den richtigen Timer hier einfügen

[COLOR=#ff0000][B]U T2
=A0.0[/B][/COLOR]
...
Ich behaupte einfach mal, daß die beiden Quotes nicht zusammen passen.


Der 1. Teil ist aber in AWL eindeutig einfacher, als die Überlegungen eines normalerweise in KOP Programmierers. :TOOL:
PS: Hab' den 1. Teil wohl voreilig beurteilt, siehe nächsten Post.
:eek:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@Mäuseklavier,
...
Code:
U E0.0
X E0.1
L s5t#2s
SE T1

UN T1
...
...
Ich denke, das funktioniert auch/doch nicht.
Der Timer geht zwar an, wenn man innerhalb der 2 Sekunden nur einen Taster drückt, aber er geht auch sofort wieder aus, wenn danach der 2. Taster gedrückt wird, da dann das VKE auf 0 zurück geht. Eine (in meinen Augen aufwendige) Selbsthaltung würde das Problem lösen.



@WOLKE,
ich muss mich aber (leider mal wieder :() auch selbst korrigieren:
Keine Impuls-Timer nehmen.

Du willst die Momente erfassen, wenn die jeweiligen Taster von 0 auf 1 gehen - womit?
Dann hast Du 2 Sekunden Nachlauf auf diesen Moment - welcher Timer?
...
Beide Punkte zusammen sind natürlich genau die von Dir favorisierten Impuls-Timer, sogar mit einem kleinen Vorteil - sie fallen sofort ab, wenn der Eingang auf LOW zurück geht.
Also sorry für meine Aussage.:oops:


Letztendlich funktioniert es auf jeden Fall mit 3 Impuls-Timern (oder 3 Nachlauftimern auf die Flanken ;), bei kleineren SPSen hat man nichts anderes) und der anschließenden logischen Verknüpfung der 3 Timer mit den 2 Eingängen und dem Ausgang.
Wo die Timer dran müssen, hast Du vermutlich schon vorher herausbekommen. Bei der logischen Verknüpfung muss man halt überlegen, was bringt den Ausgang auf Ein, wie hält er sich selbst und wie wird die Selbsthaltung unterbrochen.

Poste doch bitte mal Deinen Ansatz, damit man sehen kann, wie weit Du mit Deinem Wissen bist und wo genau wir weiter helfen müssen.
Ein bloßes Vorsagen hilft Dir ja auch nicht wirklich weiter.
 
Hallo und vielen Dank an alle !!!!!!!!!!! Ihr seid super!!
Meine derzeitige Lösung sieht so aus und scheint alles zu erfüllen ?!?!
Vermutlich kann man Netzwerk 2 noch vereinfachen ?

Netzwerk: 1

U E0.0 -- Taster1 - Pilz1 - links
L S5T#2S
SI T 0

U E0.1 -- Taster2 - Pilz2 - rechts
L S5T#2S
SI T 1

U T 0
U T 1
= M0.1 -- Beide Pilztaster gedrückt mit Zeitlicher Differenz < 2s

Netzwerk: 2

U M0.1 -- Beide Pilztaster gedrückt mit Zeitlicher Differenz < 2s
L S5T#5S
SV T 2

U T 2
FP M 0.4

U M 0.4
S M 0.5

U M 0.5
UN M 0.4
UN E0.0 -- Taster1 - Pilz1 - links
UN E0.1 -- Taster2 - Pilz2 - rechts
R M 0.5

U M 0.5
= A0.2 -- Magnetventil1 -> Zylinder runter
 
@Mäuseklavier,
Ich denke, das funktioniert auch/doch nicht.
Der Timer geht zwar an, wenn man innerhalb der 2 Sekunden nur einen Taster drückt, aber er geht auch sofort wieder aus, wenn danach der 2. Taster gedrückt wird, da dann das VKE auf 0 zurück geht. Eine (in meinen Augen aufwendige) Selbsthaltung würde das Problem lösen.

Hi hucki,

da hast du aber sowas von Recht :oops:,also:
Code:
U E0.0 
X E0.1
O(
U E0.0
O E0.1
U T1
) 
L s5t#2s 
SE T1 

U E0.0
U E0.1
L s5t#5s
SV T2

UN T1
U E0.0
U E0.1
O T2
= A0.0

@Wolke, auf M0.1 kannst du verzichten, indem du T0 und T1 direkt an T2 verknüpfst.
Im vorletzen abschnitt muss es aber heissen:

Code:
U   M 0.5
[COLOR=#ff0000][B]UN  T2 [/B][/COLOR][B]//hier nicht M 0.4, da dieser nur eine Flanke ist![/B]
UN  E0.0 -- Taster1 - Pilz1 - links
UN  E0.1 -- Taster2 - Pilz2 - rechts
R   M 0.5


MfG MK
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur der Vollständigkeit halber meine Lösung:
Code:
[FONT=courier new]U     E      0.0
[/FONT][FONT=courier new]L     S5T#2S[/FONT]
[FONT=courier new]SI    T      1[/FONT]

[FONT=courier new]U     E      0.1[/FONT]
[FONT=courier new]L     S5T#2S[/FONT]
[FONT=courier new]SI    T      2[/FONT]
[FONT=courier new] 
U     A      0.2[/FONT]
[FONT=courier new]L     S5T#5S[/FONT]
[FONT=courier new]SI    T      3
[/FONT][FONT=courier new] 
U     T      1[/FONT]
[FONT=courier new]U     T      2[/FONT]
[FONT=courier new]O     A      0.2[/FONT]
[FONT=courier new]U(    [/FONT]
[FONT=courier new]U     E      0.0[/FONT]
[FONT=courier new]U     E      0.1[/FONT]
[FONT=courier new]O     T      3[/FONT]
[FONT=courier new])     [/FONT]
[FONT=courier new]=     A      0.2[/FONT]


@mäuseklavier,
Dein Programm ist leider immer noch nicht richtig! :shock:

[FONT=Verdana schrieb:
Mäuseklavier;394613[/FONT]]
Code:
[FONT=Verdana]U E0.0[/FONT]
[FONT=Verdana]U E0.1[/FONT]
[FONT=Verdana]L s5t#5s[/FONT]
[FONT=Verdana]SV T2[/FONT]

[FONT=Verdana]UN T1[/FONT]
[FONT=Verdana]U E0.0[/FONT]
[FONT=Verdana]U E0.1[/FONT]
[FONT=Verdana]O T2[/FONT]
[FONT=Verdana]= A0.0[/FONT]
Warum hast Du SV gewählt und warum hast Du T2 nicht durch T1 verriegelt?
Zum Einen kann man den Timer während der Impulsausgabe beliebig nachtriggern, was nicht gewünscht war. Viel schlimmer ist aber, das T2 auch gestartet wird, wenn die beiden Taster nicht innerhalb von 2 Sekunden gedrückt werden. Und T2 bringt den Ausgang auch allein auf HIGH, anstatt ihn nur zu halten!


PS: Was beide Lösungen momentan noch gemeinsam haben ist, das man die Taster während des Impuls loslassen kann und solange man sie noch innerhalb der 5 Sekunden wieder drückt, sie dann weiterhin den Ausgang auf HIGH halten. Wenn das nicht gewünscht ist, müsste man da noch nachbessern.
WOLKEs Programm muss ich mir dahingehend erst noch ansehen.
 
Zuletzt bearbeitet:
@Wolke, auf M0.1 kannst du verzichten, indem du T0 und T1 direkt an T2 verknüpfst.
Im vorletzen abschnitt muss es aber heissen:

Dabei gilt es aber zu beachten, das wenn die Timer mehr als einmal im Programm abgefragt werden, es vorkommen kann das Sie an den unterschiedlichen Stellen unterschiedliche Zustände haben! Von daher sollte man bei mehr als einer Verwendung die Timer immer Hilfsvariablen zuweisen!
 
...
U T 2
FP M 0.4

U M 0.4
S M 0.5

U M 0.5
UN M 0.4
UN E0.0 -- Taster1 - Pilz1 - links
UN E0.1 -- Taster2 - Pilz2 - rechts
R M 0.5
...
Hast Du das getestet?
Sehr ungewöhnlich, ich versuch mal zu übersetzen:
Code:
UND Timer T2
FLANKE Positiv? Aktuellen Zustand von T2 in M0.4 speichern.
UND M0.4 (aktueller Zustand von T2, also T2)
SETZE M0.5
Also wenn T2 von 0 auf 1 wechselt und in dem Moment T2 auch noch 1 ist (muss ja bei der Flanke), wird M0.5 gesetzt.

Code:
UND M0.5
UND NICHT M0.4 (also UND NICHT T2)
UND NICHT E0.0
UND NICHT E0.1
Rücksetzen M0.5
Das SR-Relais wird also nur zurückgesetzt, wenn der Timer aus ist und beide Taster losgelassen werden. Wird nur einer der Taster weiterhin festgehalten, bleibt es an.


PS: Auch hier kann man beide Taster loslassen, solange der Timer noch läuft und sie in der Zeit wieder drücken, ohne das diese Unterbrechung bemerkt wird. Allerdings steht dazu nichts explizit in der Aufgabenstellung - ist also Auslegungssache.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So wär's perfekt:
Code:
[FONT=courier new]      U     E      0.0
[/FONT][FONT=courier new]      L     S5T#2S[/FONT]
[FONT=courier new]      SI    T      1[/FONT]

[FONT=courier new]      U     E      0.1[/FONT]
[FONT=courier new]      L     S5T#2S[/FONT]
[FONT=courier new]      SI    T      2[/FONT]

[FONT=courier new]      U     T      1[/FONT]
[FONT=courier new]      U     T      2[/FONT]
[FONT=courier new]      UN    A      0.2[/FONT]
[FONT=courier new]      S     M      0.1[/FONT]

[FONT=courier new]      UN    E      0.0[/FONT]
[FONT=courier new]      ON    E      0.1[/FONT]
[FONT=courier new]      R     M      0.1[/FONT]

[FONT=courier new]      U     M      0.1[/FONT]
[FONT=courier new]      L     S5T#5S[/FONT]
[FONT=courier new]      SV    T      3[/FONT]

[FONT=courier new]      U     M      0.1[/FONT]
[FONT=courier new]      O     T      3[/FONT]
[FONT=courier new]      =     A      0.2[/FONT]
 
Zuletzt bearbeitet:
@mäuseklavier,
Dein Programm ist leider immer noch nicht richtig! :shock:

Warum hast Du SV gewählt und warum hast Du T2 nicht durch T1 verriegelt?

Hi, hast recht, da werd ich wohl nicht um die 2 Timer an den Eingängen drumherum kommen.
Dein Progie ist aber auch nicht 100%, da T3 beim Loslassen eines Tasters z.B. nach 3 Sekunden auch
auf low geht. Aus diesem Grund hatte ich den SV.

MfG
 
...
Dein Progie ist aber auch nicht 100%, da T3 beim Loslassen eines Tasters z.B. nach 3 Sekunden auch
auf low geht. Aus diesem Grund hatte ich den SV.
Hä?

Im letzten Programm war T3 von Anfang an SV (PS: kann hier aber auch nicht durch mehrmaliges Drücken der Taster nachgetriggert werden) und bei der ersten Version hält sich T3 selbst über den Ausgang und deswegen reicht SI.

Wie bereits gesagt, kann man halt bei der ersten Version die Tasten loslassen solange T3 läuft. Wenn man sie rechtzeitig wieder drückt, wird der Ausgang auch weiterhin gehalten. Das ist bei der 2. Version nicht mehr. Wenn die Tasten einmal losgelassen wurden, muss der Ausgang erst wieder aus sein, bevor ein nächster Tastendruck angenommen werden kann.



da werd ich wohl nicht um die 2 Timer an den Eingängen drumherum kommen.
Nö, mußt halt für den Start von T2 auch UN T1 mit reinnehmen, dann sollte es funktionieren. Oder halt zum Starten des T2 wie bei mir den Ausgang selbst nehmen, dann reicht auch SI.
 
Zuletzt bearbeitet:
... 1 zeit reicht.
Und was ist mit dem Nachlauf des Ausganges?
...
- Wenn der Ausgang gesetzt wurde, muss er auch mindestens 5 Sekunden gesetzt bleiben - auch wenn beide oder einer von beiden Tastern losgelassen werden.

- Wenn beide Taster weiterhin gehalten werden - auch länger als die 5 Sekunden - soll der Ausgang auch gesetzt bleiben, bis beide Taster losgelassen werden.
...

Das für den Zeitversatz zwischen den Tastendrücken auch ein XOR mit einer Zeit und eine entsprechende Selbsthaltung (bei Dir RS) reicht, hat ja schon Mäuseklavier gezeigt.


Ansonsten war AWL gefordert, also hab' ich's für WOLKE mal umgestellt und auf reines AWL vereinfacht:
Code:
      U     E      0.0
      X     E      0.1
      L     S5T#2S
      SE    T      1

      UN    E      0.0
      UN    E      0.1
      R     M      0.1

      U     T      1
      S     M      0.1

      U     E      0.0
      U     E      0.1
      UN    M      0.1
      =     A      0.2
Bin dann auf den Rest gespannt. ;)
 
... ein XOR mit einer Zeit und eine entsprechende Selbsthaltung ...
...
Code:
U E0.0 
X E0.1
O(
U E0.0
O E0.1
U T1
) 
L s5t#2s 
SE T1 
...
...
Code:
      U     E      0.0
      X     E      0.1
      L     S5T#2S
      SE    T      1

      UN    E      0.0
      UN    E      0.1
      R     M      0.1

      U     T      1
      S     M      0.1

...
Die Selbsthaltung des Timers für die Nicht-Synchronität der Taster funktioniert z.B. auch auf diese Weise:
Code:
[FONT=courier new]      U     E      0.0
[/FONT][FONT=courier new]      X     E      0.1[/FONT]
[FONT=courier new]      O     T      1[/FONT]
[FONT=courier new]      L     S5T#2S[/FONT]
[FONT=courier new]      SE    T      1[/FONT]

[FONT=courier new]      UN    E      0.0[/FONT]
[FONT=courier new]      UN    E      0.1[/FONT]
[FONT=courier new]      R     T      1[/FONT]
 
Zurück
Oben