Flankenerkennung

Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das siehst Du falsch.
Mit dem Code von mega_ohm kann man beliebig oft im Programm das Signal E0.0 auf positive oder negative Flanke
abfragen und braucht dabei nur diesen einen Hilfsmerker M0.0.
FP und FN brauchen jeder einen eigenen Hilfsmerker, weil diese Befehle zusätzlich zur Flankenanzeige gleich den
aktuellen Zustand des Signals in den Hilfsmerker speichern.

Vielleicht wird es so deutlicher:
E0.0 = Signal Zustand jetzt
M0.0 = Merker Zustand des Signals im Zyklus vorher
Code:
U   E0.0    // Signal jetzt 1
UN  M0.0    // und vorher 0 -> pos. Flanke
// ... Programm
 
UN  E0.0    // Signal jetzt 0
U   M0.0    // und vorher 1 -> neg. Flanke
// ... Programm
 
U   E0.0    // Signal jetzt 1
UN  M0.0    // und vorher 0 -> pos. Flanke
// ... Programm
 
UN  E0.0    // Signal jetzt 0
U   M0.0    // und vorher 1 -> neg. Flanke
// ... Programm
 
// Letztes Netzwerk
U   E0.0    // Zustand jetzt
=   M0.0    // für nächsten Zyklus merken
Gruß
Harald
Naja...
Eigentlich hat der M0.0 (der Flankenmerker) auch den "Zustand"= JETZT.
Dadurch, daß ein Programm zyklisch "abgearbeitet" wird, der Merker aber erst nach seiner Abfrage gesetzt wird, funktioniert das Ganze wie beschrieben.
 
Viel wichtiger, als sich über so'nen Kleinkram zu streiten (ob nun FP-/FN oder ein Merker direkt gesetzt wird) ist eine gute Dokumentation (aussagekräftige Kommentare).
Die Programmier-Tools werden mit den Jahren immer ausgeklügelter... sind aber meist abwärtskompatibel. Wenn nach 15 Jahren mal ein Programm daher kommt, welchem man überhaupt nicht mehr folgen kann... und man hat es dann noch selbst geschrieben....
Dann bleibt nur der Spruch:
"Hat's geschrieben, kann's nicht lesen... ein dummer Esel gewesen." :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich benötige auch einen Merker und 2 Zeilen mehr... und kann mit dem Merker pos. oder neg. Flanken basteln, solange ich Lust dazu habe. :)

Mfg


Es ist in der heutigen Zeit wo solch wenige Merker verfügbar sind enorm wichtig Merker zu sparen. :confused:

Und ist es notwendig mehrmals Flanken zu basteln? Also einmal an einer Stelle Signale die global gültig sind zu bilden macht Sinn, so dass ein Außenstehender sich zurecht findet, Fehler finden und ggF. ändern kann.


bike
 
Es ist schon interessant wie lange man sich über einen Flankenmerker unterhalten kann. Aber es sind ja Feiertage und man hat etwas mehr Zeit über solche banalen Dinge zu debattieren. ;)
Es wird in FC's, FB's gemacht... niemals im OB1 !
Warum soll das nicht zusammen passen ?
(Fakt ist, es funktioniert IMMER !)
Aber ich bin auf Deine Begründung sehr gespannt, lasse mich gern eines Besseren belehren.
Zweitens passt folgendes nicht zusammen:
beliebig oft im Programm verwenden und Zustand im letzten Netzwerk schreiben.
Beispiel:
Du bildest Dir im FC1 NW1 einen Flanken Merker durch den Eingang E0.0.
Code:
// FC1 NW1
   U  E 0.0
   UN M 0.0
OK, das kannst Du so die ganze FC lang weiter schreiben.
Du schreibst am Ende von dem Baustein wird der Signalzustand nun auf den Merker übertragen.
Code:
//FC1 NW10
   U E 0.0
   = M 0.0
Jetzt kannst Du im FC2 nicht wieder
Code:
// FC2
   U  E 0.0
   UN M 0.0
abfragen. Darum meine Aussage: Beliebig oft im Programm passt nicht

Zweitens:
Wenn ich die Flanke nur einmal brauche reicht mit der FP/FN Methode ja auch ein Merker, da ein Flankensignal raus gegeben wird.
Code:
   U  E 0.0
   FP M 0.0  // Es wird nur ein Merker verwendet
   S  A 1.0  // Der Ausgang wird nur gesetzt bei einem Signalwechsel des Eingangs von 0 auf 1
Allerdings wurde das auch schon erwähnt.

Jetzt bist Du wieder dran. :D
 
Es ist in der heutigen Zeit wo solch wenige Merker verfügbar sind enorm wichtig Merker zu sparen. :confused:

Und ist es notwendig mehrmals Flanken zu basteln? Also einmal an einer Stelle Signale die global gültig sind zu bilden macht Sinn, so dass ein Außenstehender sich zurecht findet, Fehler finden und ggF. ändern kann.


bike
Hmmm...
Ich weiß g'rad nicht, ob Du mich auf den Arm nehmen willst... :confused:

Es geht nicht um's "Merker sparen"...
...sondern um die Lesbarkeit und Nachvollzieh-barkeit für das Wartungspersonal. ( <= das sind die Dropse, die sich mit nicht funktionierenden Progies in der Nachtschicht beschäftigen !... wie z.B. ich !)

______________________________________________________________
Für alle Kritiker: ( !! )
- ich klage nicht ! ( bin sehr erfüllt in meinem jetzigen Job)
- ich beschwere mich nicht über meinen "ach so harten Job !"
Es fordert mich, zeigt mir Wissenslücken auf, die ich gewillt bin, zu schließen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist schon interessant wie lange man sich über einen Flankenmerker unterhalten kann. Aber es sind ja Feiertage und man hat etwas mehr Zeit über solche banalen Dinge zu debattieren. ;)
Da hast Du ein paar wahre Wörter so einfach hingeschrieben.
Du bildest Dir im FC1 NW1 einen Flanken Merker durch den Eingang E0.0.
Code:
// FC1 NW1
   U  E 0.0
   UN M 0.0
OK, das kannst Du so die ganze FC lang weiter schreiben.
Du schreibst am Ende von dem Baustein wird der Signalzustand nun auf den Merker übertragen.
Code:
//FC1 NW10
   U E 0.0
   = M 0.0
Jetzt kannst Du im FC2 nicht wieder
Code:
// FC2
   U  E 0.0
   UN M 0.0
abfragen. Darum meine Aussage: Beliebig oft im Programm passt nicht
Ich bin zwar nicht der Programmierer, aber ich meine... wenn ich im OB1
einen FC 999 als Letztes aufrufe
z.B.:
Code:
// OB1
Call FC1 // dort "verwurste" ich meine Flankenmerker mit den Bedingungen
Call FC2 //  da wird was Anderes programmiert
....
Call FC999 // hier werden die FM gesetzt
daß nach meiner bisherigen Erfahrung (!) noch nie das Gegenteil eintrat !

Nun möchte ich mich aber auch nicht hinstellen und sagen: Nach meiner Erfahrung (!) trat noch nie ein Fehler auf, also ist meine Meinung = Gesetz !
Zweitens:
Wenn ich die Flanke nur einmal brauche reicht mit der FP/FN Methode ja auch ein Merker, da ein Flankensignal raus gegeben wird.
Code:
   U  E 0.0
   FP M 0.0  // Es wird nur ein Merker verwendet
   S  A 1.0  // Der Ausgang wird nur gesetzt bei einem Signalwechsel des Eingangs von 0 auf 1
Allerdings wurde das auch schon erwähnt.

Jetzt bist Du wieder dran. :D
Ich habe diesen Befehlen FN / FP ihren Sinn ja nie abgesprochen !
Sie vereinfachen in einem s7- Programm die Lesbarkeit erstmal.
Für Leute, die in mehreren SPS-'sen rumoren, ist ein einheitliches Script
sehr hilfreich.

Wird ( bleiben wir doch bei dem Bsp. E0.0 ) mehrfach eine Flanke innerhalb (!) eines Zyklus abgefragt, finde ich meine Version besser.
Ein weiterer Merker, der dann nur noch die Flanke bildet
Code:
u e 0.0 // z.B. Taster 1S1
un m 0.0 // FM von Taster 1S1
= m0.1 // pos. Flankenmerker von Taster 1S1
wäre eine Alternative, würde aber wieder nur eine Flanke ( pos. oder neg.)
nachbilden.

Egal:
Jeder proggt, wie er kann.
Ich finde es immer toll, wenn sich ein Sytem, eine "Handschrift" erkennen läßt.
Das erleichtert im Ernstfall viel Sucharbeit (<<< läßt übrigens auch die Programmierer in einem viel helleren Licht strahlen)
 
Hmmm...
Ich weiß g'rad nicht, ob Du mich auf den Arm nehmen willst... :confused:

Es geht nicht um's "Merker sparen"...
...sondern um die Lesbarkeit und Nachvollzieh-barkeit für das Wartungspersonal. ( <= das sind die Dropse, die sich mit nicht funktionierenden Progies in der Nachtschicht beschäftigen !... wie z.B. ich !)

Also da ich weder deine Größe noch dein Gewicht kenne, würde ich das einfach einmal nicht machen ;)

Also bei uns ist es so, dass wir für die Kunden programmieren und du darfst versichert sein, dass wir jede Menge zusätzliches schreiben, damit die Bediener und Instandhalter besser mit der Anlage und dem Programm zurecht kommen.

Zu beginn werden die E rangiert und auch die notwendigen Flanken und zusammengefassten Signale erzeugt. Im weiteren Verlauf wird nur mit den erzeugten Signalen gearbeitet, das ist doch logisch und gut lesbar, behaupte ich (z.B. M_PI_START)

bike
 
Es geht nicht um's "Merker sparen"...
...sondern um die Lesbarkeit und Nachvollzieh-barkeit für das Wartungspersonal. ( <= das sind die Dropse, die sich mit nicht funktionierenden Progies in der Nachtschicht beschäftigen !... wie z.B. ich !)

______________________________________________________________
Für alle Kritiker: ( !! )
- ich klage nicht ! ( bin sehr erfüllt in meinem jetzigen Job)
- ich beschwere mich nicht über meinen "ach so harten Job !"
Es fordert mich, zeigt mir Wissenslücken auf, die ich gewillt bin, zu schließen!

Hi,

vielleicht musst Du ja deswegen so oft an deine Anlagen um die Flankenmerker manuell wieder zurückzusetzen, damit diese wieder Funktionieren. ;)

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal so ganz nebenbei :
Ich löse die meißten Abläufe über Schrittketten. Eine SK arbeitet vom Grundsatz her sowieso mit Flanken. Wofür muss man sich also heutzutage noch im großen Stil Flnakenmerker in einem Programm bilden ? Ist OK, wenn man mal eine Berechnung nur einmal ereignisgesteuert machen will - aber sonst ?
 
Mal so ganz nebenbei :
Ich löse die meißten Abläufe über Schrittketten. Eine SK arbeitet vom Grundsatz her sowieso mit Flanken. Wofür muss man sich also heutzutage noch im großen Stil Flnakenmerker in einem Programm bilden ? Ist OK, wenn man mal eine Berechnung nur einmal ereignisgesteuert machen will - aber sonst ?

Es kann aber auch sein, dass nicht alle Programme und Anlagen mit Schrittketten realisieren lassen?
Flanken haben ihre Berechtigung.

Aber das ist nicht Thema dieses Threat


bike
 
Flanken haben ihre Berechtigung.

Das habe ich auch nicht anzweifeln wollen !
Jede Form einer Flankenbildung hat unter Berücksichtigung der jeweiligen Problematik ihre volle Berechtigung.

Es kann aber auch sein, dass nicht alle Programme und Anlagen mit Schrittketten realisieren lassen?

Diese Aussage allerdings liegt sehr im Auge des Betrachters. Natürlich läßt sich alles immer auch irgendwie anders machen - aber z.B. sogar ein einfaches Flip-Flop ist im Grunde genommen eine Schrittkette ...
Und beim Programmieren hat man immer irgendwelche sequentiellen Ablaufe - also Schrittketten ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und beim Programmieren hat man immer irgendwelche sequentiellen Ablaufe - also Schrittketten ...

Gut, dass du mir das erklärst.
Ich habe allerdings bis heute noch niemand gefunden, der Werkzeugmaschinen in Schrittketten programmieren kann.
Aber wir lassen uns das gern von dir zeigen.

bike
 
aber z.B. sogar ein einfaches Flip-Flop ist im Grunde genommen eine Schrittkette ...
Ich glaube wir kommen jetzt von Thema ab.

Aber Du willst aus einem FLIP-FLOP eine Schrittkette machen?
Code:
   U E 0.0
   FP M 1.0
   X M 0.0
   = M 0.0
Also das sind mal 4 Zeilen Code, lass mal Deine Lösung sehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das habe ich auch nicht anzweifeln wollen !
Jede Form einer Flankenbildung hat unter Berücksichtigung der jeweiligen Problematik ihre volle Berechtigung.



Diese Aussage allerdings liegt sehr im Auge des Betrachters. Natürlich läßt sich alles immer auch irgendwie anders machen - aber z.B. sogar ein einfaches Flip-Flop ist im Grunde genommen eine Schrittkette ...
Und beim Programmieren hat man immer irgendwelche sequentiellen Ablaufe - also Schrittketten ...

Hi,

ich bin da auch ganz der Meinung von Bike und Paule, alles ist eine Schrittkette, das ist absoluter Käse.

Gruss Daniel
 
Aber Du willst aus einem FLIP-FLOP eine Schrittkette machen?
Na ganz einfach - es ist eine 2-Schritte-Schrittkette. Der erste Step wäre, dass nach deinem Beispiel der M0.0 nicht da ist und der zweite Step, dass er da ist. Danach geht es automatisch wieder in den ersten Step. Das sieht allerdings am Beispiel der "ELTAKO"-Merkerschaltung nicht so schön aus ... aber im Grunde wäre der ELTAKO ja dafür auch genau das richtige Beispiel ...

Ich glaube wir kommen jetzt von Thema ab.
Den Gedanken hatte ich auch schon ... ;)
 
ich bin da auch ganz der Meinung von Bike und Paule, alles ist eine Schrittkette, das ist absoluter Käse.

Da wir jetzt ja dabei sind gehörig vom Ursprungs-Thema dieses Thread wegzugehen ... von mir aus.
Sag mir ein Beispiel aus deiner täglichen Praxis, das NICHT als Schrittkette zu machen geht oder wo vielleicht sogar die Schrittkette die schlechtere Lösung darstellt. Ich will gerne dazulernen aber mir ist da bis heute nichts begegnet.
Übrigens laufen eigentlich ALLE Hochsprachen-Programme sequentiell (also als Schrittkette) ab.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich weiss ja nicht in welcher Traumwelt du lebst. Programmier mal einen Kaskadenregelung mit Min. und Maxbegrenzung als Schrittkette.

Gruss Daniel
 
und ich weiß nicht von welchem Planeten du kommst ...

Eine Regelung ist sicherlich etwas, wo eine Schrittkette grenzwertig einzusetzen ist. Allerdings gibt es durchaus Regelungen, die einen Ablauf berücksichtigen - eine Positionierung z.B. oder prinzipiell auch eine sich anpassende Regelung wie z.B. PID.

Eine Schrittkette wird, wie ich schon geschrieben habe, natürlich für ABLÄUFE eingesetzt. Wenn du mir jetzt erzählst und glaubhaft machst, dass alle deine Steuerungen, die du so machst, nur die Aufgabe haben, eine Heizung oder so zu regeln, dann hast du Recht. Oder passiert da vielleicht noch etwas nebenbei ? Wird deine Regelung vielleicht sogar von irgend etwas Anderem überhaupt erst aktiviert ? Das im schlimmsten Fall sogar noch nachdem irgendwelche Vorbedingungen erfüllt gewesen sind ?
Geh da vielleicht noch mal in dich.
 
Ach ja - noch etwas :
Was macht euch übrigens Glauben, dass ich euch angreifen, blossstellen oder sonst etwas Böses will ?
 
Zurück
Oben