TIA Flanken Programmieren

Löwenzahn

Level-1
Beiträge
39
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich benutze TIA und verstehe nicht genau wie Flankenoperatoren verwendet werden.

Beispielsweise soll in einer Schrittkette ein Taster immer wieder losgelassen werden, bevor der nächste Schritt startet. Also immer nur bei pos. Flanken soll weitergeschalten werden.

Wie würde man in diesem Fall den Flankenoperator verschalten (FUP)?
 
Zuletzt bearbeitet:
Wenn du einen Taster betätigst, hast du eine positive Flanke und beim loslassen eine negatives. Nimm also drn Baustein für die negative Flanke und verschalte diesen mit dem Operand des Tasters und z.B. Einem Ausgang oder SR Glied


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du musst die Flankenabfrage als einen UND verschalten.

Ich habe gerade keinen Plan wie das in FUP geht, aber in KOP ginge das in etwa so

---|I0.0|-------(n)---------(M0.0)---|

Edit: In Fup geht das genauso. Du fühst einen der Bausteine mit einem Fragezeichen innen ein und gibst N= ein. Dann ist das eine Abfrage auf negative Flanke.
 
Zuletzt bearbeitet:
Du mußt darüber nachdenken, ob Du die Flanke des Operanden (%Ix.y) oder die Flanke der gesamten Verknüpfungskette (VKE) bis zu der Stelle auswerten willst, dann sollte die Entscheidung einfach sein, welche Flankenoperation Du verwenden mußt.

Mir scheint aber, daß Du die Flanke des Tasters mehrfach verwenden willst, da wäre es Verschwendung, jedesmal eine weitere Flankenmerker-Variable zu benutzen. Da solltest Du in einem extra Netzwerk nur die Flanke des Tasters ermitteln und auf eine Variable legen, welche Du dann an den Verwendungsstellen abfragst.

@All
Das Problem des TE ist vermutlich, daß es in dem TIA nun ...zig verschiedene Flankenoperationen (für Dummies;)) gibt, anstatt den 2 Grundtypen in Step7 classic. Nun weiß er nicht, was ist der Unterschied der Operationen und wann verwendet man welche.

Harald
 
Zuletzt bearbeitet:
Hier habe ich mal ein Beispiel. So funktioniert es zwar, aber ich habe einfach einen Merker reingeschrieben, weiß aber nicht wie man es richtig macht. Das geht so meiner Meinung nach, weil der Merker logisch "0" ist und ich ja eine positive Flanke abfrage. Es wird also der Merker mit dem Taster verglichen und bei steigendem Signal am Taster gibt der Flankenoperator ein kurzen Impuls.
Doch wie macht man es richtig? (bestimmt nicht einfach nur einen freien Merker oder?)
Und wie realisiert man das mit einer negativen Flanke? Da müsste mein Merker ja "1"sein? Muss ich den dann extra in einem extra Netzwerk auf logisch "1" setzen?
 

Anhänge

  • Flanken.png
    Flanken.png
    62,8 KB · Aufrufe: 250
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast es genau richtig gemacht :D (*)
Vorausgesetzt, Du veränderst/beschreibst den Flankenmerker %M100.1 nicht noch woanders im Programm. Du darfst den selben Flankenmerker auch nicht nochmal für weitere P-Anweisung(en) benutzen. Jede Flankenerkennungs-Anweisung benötigt exklusiv ihren eigenen Flankenmerker.

Falls Du noch an anderer Stelle die positive Flanke des selben Tasters %I136.1 brauchst, und da auch wieder die P-Anweisung benutzt, dann mußt Du dort (bzw. bei jeder weiteren Verwendung) auch eine weitere bisher unbenutzte Variable für den Flanenmerker verwenden. Wie ich schon in #4 schrieb, ist es in dem Fall empfehlenswert, nur einmal eine Flankenerkennung zu programmieren und das Ergebnis auf eine (globale) Variable zu legen und an den Verwendungstellen diese Variable verwenden statt erneute Flankenerkennungen.

Für eine negative Flanke benutzt Du statt der P-Anweisung einfach die N-Anweisung.

(*) Du hättest auch (etwas umständlicher) eine P_TRIG-Box mit %I136.1 am Eingang CLK verwenden können. Doch auch da gilt: jede x_TRIG-Anweisung benötigt exklusiv ihre eigene Flankenmerker-Variable.

Harald
 
So funktioniert es zwar, aber ich habe einfach einen Merker reingeschrieben, weiß aber nicht wie man es richtig macht. [...]
Doch wie macht man es richtig? (bestimmt nicht einfach nur einen freien Merker oder?)
In die Entscheidung, wie man es "richtig" macht, spielt auch noch rein: Was soll bei einem CPU/Programm-Neustart passieren?

Ein Merker ist in der Regel als "nicht remanent" eingestellt und er wird bei Neustart mit 0 initialisiert. Eine Flankenerkennung mit so einem Merker wird bei einem schon bei Programmstart auf 1 liegendem Signal im ersten Programmzyklus eine Flanke melden.
Verwendet man statt dem nicht remanenten Merker eine remanente Variable (z.B. aus einem DB), dann kommt es bei Programm-Start darauf an, welchen Zustand das abzufragende Signal beim Ausschalten bzw. Programm-Stop hatte. Und ob womöglich ein Hardware/Firmware-Fehler "Remanenzverlust" aufgetreten ist.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

anbei sende ich euch eine Beispielprogrammierung zum Thema Positive Flanken.
Durch das Benutzen von positiven Flanken, ist es mir möglich, einen Ablauf in einer Anlage mit einem Taster ein und aus zu schalten.

Mit Flanken werden Signalveränderungen registriert. Das Flankensignal führt Signalzustand "1", wenn ein Signal (Taster) seinen Zustand ändert.
Dies tritt jeweils am Anfang oder Ende eines Signals ein.

Das Flankensignal dauert einen Programmzyklus lang.

Mit Flankensignalen können sämtliche Zustandsänderungen an der Maschine oder Anlage erfasst und ausgewertet werden.

LG

Mike und Hauke
 

Anhänge

  • Positive Flanken Beispiel4.PNG
    Positive Flanken Beispiel4.PNG
    438,9 KB · Aufrufe: 154
Mit Flanken werden Signalveränderungen registriert. Das Flankensignal führt Signalzustand "1", wenn ein Signal (Taster) seinen Zustand ändert.
Dies tritt jeweils am Anfang oder Ende eines Signals ein.
Das ist natürlich nicht richtig. Eine positive Flanke wird nur einen Zyklus TRUE, wenn das Signal von 0 auf 1 wechselt, von 1 auf 0 nicht mehr.
Eine negative Flanke wird nicht einen Zyklus TRUE, wenn ein Signal von 0 auf 1 wechselt sondern nur bei einem Wechsel von 1 auf 0.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Beitrag dient dazu, zukünftig offene Fragen zu klären. Wie in meinem Beitrag bereits markiert, beziehe ich mich im ersten Absatz auf ``positive Flanken``.

Dies gilt allerdings nicht für den 2. Absatz, indem ich allgemein über Flanken sprach.

Wer lesen kann ist klar im Vorteil!!!
 
Der Beitrag dient dazu, zukünftig offene Fragen zu klären. Wie in meinem Beitrag bereits markiert, beziehe ich mich im ersten Absatz auf ``positive Flanken``.

Dies gilt allerdings nicht für den 2. Absatz, indem ich allgemein über Flanken sprach.

Wer lesen kann ist klar im Vorteil!!!
Toller Einstand hier im Forum. Auf diese Art der Kommunikation kann man hier gerne verzichten.
 
Der Einstand hier im Forum ist völlig okay.
Ich werde hier blöd angemacht, weil ich einen Beitrag von 2016 kommentiere!

Gegen konstruktive Kritik ist auch nichts auszusetzen, allerdings nur, wenn es begründet ist.
Ich habe das Wort ``Positive Flanken`` nicht aus Spaß fett gedruckt geschrieben und der darauffolgende Absatz untermalt zusätzlich die thematische Trennung zwischen positiven Flanken und Flanken allgemein.

Der Beitrag dient lediglich dazu, den Leuten hier im Forum zu helfen. Er hat eine unterstützende Funktion und ist keine Lösung, denn das habe ich auch nirgends behauptet.
 
Selber kritisieren, aber im Umkehrschluss nicht mit Kritik umgehen können,
wenn man darauf hingewiesen wird, dass man nicht richtig gelesen hat.

Ich frage mich, wer hier der Grünschnabel ist.

Guten Tag noch...
 
Der Einstand hier im Forum ist völlig okay.
Ich werde hier blöd angemacht, weil ich einen Beitrag von 2016
kommentiere!
Also hier im Forum ist es normal, dass man darauf aufmerksam gemacht wird, wenn man alte Beiträge kommentiert.
Zudem wenn die Ursprungsfrage ausführlich beantwortet wurde.
 
Ich verstehe die Grundaussage, jedoch dient der Post (insbesondere der Screenshot) auch nachfolgenden Besuchern dieses Forums.
Und ich bleibe dabei, dass das Kommentar "natürlich nicht richtig" nicht angebracht ist.
 
Zurück
Oben