Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [SPS/AWL] Ausgang über einen Taster invertieren (https://www.delphipraxis.net/149158-%5Bsps-awl%5D-ausgang-ueber-einen-taster-invertieren.html)

Matze 15. Mär 2010 17:46


[SPS/AWL] Ausgang über einen Taster invertieren
 
Hi zusammen,

ich möchte über einen Taster einen Ausgang invertieren. D.h. ich muss die steigende Flanke auswerten.

Das habe ich mittels AWL (Anweisungsliste) nach langem Probieren umgesetzt und funktioniert auch. Aber mir kommt es sehr umständlich vor, da ich 3 Merkerbits brauche.
IM folgenden ein funktionierender Code. Wobei ich nicht weiß, ob sich hier jemand mit AWL auskennt. :gruebel:

Code:
// steigende Flanke des Tasters ermitteln
U   "Taster" // Eingang
FP  "Tastersignal" // Merker 1
=   "Taster_Pos_Flanke" // Merker 2

// Lampe ausschalten
U   "Taster_Pos_Flanke"
U   "Lampe" // Ausgang
R   "Lampe_Neu" // Merker 3

// Lampe einschalten
U   "Taster_Pos_Flanke"
UN  "Lampe"
S   "Lampe_Neu"

// Selbsthaltung, da positive Flanke im nächsten Zyklus nicht mehr gesetzt
U   "Lampe"
S   "Lampe"

// Neuen Status setzen
U   "Lampe_Neu"
=   "Lampe"
Kann man das vereinfachen?

Grüße, Matze

Helmi 15. Mär 2010 17:49

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Hallo,

bevor ich mir dein Merker-Gestrüb näher anschaue, was genau willst du machen?
Kannst du das mal etwas näher beschreiben?

Matze 15. Mär 2010 17:55

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Hallo Helmi,

ich kann's für dich auch anders formulieren ja. ;)

Gegeben sei ein Taster. D.h. solange man den Taster drückt, ist das Eingangssignal von diesem "high", lässt man ihn los, ist es "low".

Ausgangssituation:
- Eingang (Taster) = "low"
- Ausgang (Lampe) = "low"

Drückt man nun einmal auf den Taster, soll der Ausgang invertiert, d.h. die Lampe eingeschaltet werden: Ausgang (Lampe) = "high"
Drückt man den Taster ein weiteres Mal, dann soll der Ausgang erneut invertiert bzw. die Lampe ausgeschaltet werden: Ausgang (Lampe) = "low"
usw.

Ich hoffe, nun war's verständlicher.

Grüße, Matze

Helmi 15. Mär 2010 17:56

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Also nix anderes als einer Astabiler Multivibrator


Wie wärs mit diesem:

A0.0 = Lampe
E0.0 = Taster
M0.0 = Merker

Code:
U E0.0
UN A0.0
S M0.0

U E0.0
U A0.0
R M0.0

U M0.0
= A0.0

Matze 15. Mär 2010 17:58

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Hm joah, das kann man glaub so sagen.

Helmi 15. Mär 2010 18:01

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Ich hab oben mal schnell nen AWL-Code hingeschrieben
(wenn ich jetzt keinen Fehler gemacht habe, meine KOB-Zeichnung ins AWL umzuschreiben)

Matze 15. Mär 2010 18:38

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Hallo Helmi,

meinst du KOP mit "P" (Kontaktplan)? "KOB" sagt mir nichts.

Deine AWL funktioniert nicht. Die Lampe "flackert", solange man den Taster gedrückt hält und wenn man ihn los lässt, bleibt die Lampe an.

Die Flankenauswertung muss schon hinein, sonst geht es nicht. ;)

Grüße, Matze

Helmi 15. Mär 2010 18:46

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Zitat:

Zitat von Matze
Hallo Helmi,

meinst du KOP mit "P" (Kontaktplan)? "KOB" sagt mir nichts.

Deine AWL funktioniert nicht. Die Lampe "flackert", solange man den Taster gedrückt hält und wenn man ihn los lässt, bleibt die Lampe an.

Die Flankenauswertung muss schon hinein, sonst geht es nicht. ;)

Grüße, Matze

Ja, ich meinte KOP

Funktionieren tuts schon - du hast ja nen Schalter, keinen Taster - sprich - du bleibst (normalerweise) nicht ständig drauf
Das heisst, wenn du kurz drauf drückst, dann geht die LED an, wenn du danach wieder draufdrückst, dann geht die LED aus.
(habs grad bei meiner Test-S7-300 getestet)


Wenn du es aber auch willst, wenn du ständig auf dem Taster bleibst, dann so:

Code:
U E0.0 
FP M0.1
= M0.2
U M0.2
UN A0.0 
S M0.0 

U M0.2 
U A0.0 
R M0.0 

U M0.0 
= A0.0
Leider brauchst jetzt wieder 3 Merker, da die Flanke und auch der Zwischenmerker benötigt werden

Matze 15. Mär 2010 18:51

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Zitat:

Zitat von Helmi
Funktionieren tuts schon - du hast ja nen Schalter, keinen Taster - sprich - du bleibst (normalerweise) nicht ständig drauf

Jupp klar, aber du hältst ihn mehrere SPS-Zyklen gedrückt, bevor du ihn los lässt.

Zitat:

Zitat von Helmi
Wenn du es aber auch willst, wenn du ständig auf dem Taster bleibst, dann so [...]

Stimmt, das funktioniert!

Es ist etwas kürzer als meine erste Lösung. Vielleicht kommt man auch nicht um die 3 Merker herum, mir kommt's für die doch eher banale Aufgabe jedoch viel vor.
Aber vielen Dank! :thumb:

Die DP-Mitglieder überraschen mich immer wieder. E-Technik-Fragen werden beantwortet, SPS-Fragen, ... :)

Grüße, Matze

Edit: Ich muss für meine Bezeichnungen mal Präfixe nutzen (E_, A_, M_). Ohne ist es viel übersichtlicher, wie ich an deinem Code sehe. Das ist eigentlich auch nicht Sinn der Sache, es unübersichtlicher zu machen. *g*

Helmi 15. Mär 2010 18:56

Re: [SPS/AWL] Ausgang über einen Taster invertieren
 
Zitat:

Zitat von Matze
Zitat:

Zitat von Helmi
Funktionieren tuts schon - du hast ja nen Schalter, keinen Taster - sprich - du bleibst (normalerweise) nicht ständig drauf

Jupp klar, aber du hältst ihn mehrere SPS-Zyklen gedrückt, bevor du ihn los lässt.

Zitat:

Zitat von Helmi
Wenn du es aber auch willst, wenn du ständig auf dem Taster bleibst, dann so [...]

Stimmt, das funktioniert!

Es ist etwas kürzer als meine erste Lösung. Vielleicht kommt man auch nicht um die 3 Merker herum, mir kommt's für die doch eher banale Aufgabe jedoch viel vor.
Aber vielen Dank! :thumb:

Gerne doch! - Ich muss mal bei unseren Maschinen nachschauen, wie es da ist, mit dem längerem Drücken und dem flattern - jedenfalls achten wir nicht so auf die Flankenauswertung (nur wenns wirklich notwendig ist).


Zitat:

Zitat von Matze
Die DP-Mitglieder überraschen mich immer wieder. E-Technik-Fragen werden beantwortet, SPS-Fragen, ... :)

SPS ist Alltagsgeschäft bei mir! :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz