Eine Frage zu Flankenmerkern...

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ihr,

ich habe eine kurze Frage:

Wenn ich beispielsweise programmiere

Code:
U E 0.0
U E 0.1
U E 0.2
FP M0.0
= A 0.0

wird dann die Flanke aus allen drei Eingängen gebildet?

Wenn ich möchte, dass nur E 0.0 eine Flanke bilden soll, muss ich dann das Ganze wie folgt programmieren?

Code:
U E 0.0
FP M0.0
U E 0.1
U E 0.2
= A0.0

Lieben Dank!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Anne,

In Teil 1 wird die Flanke nur dann gebildet, wenn all 3 E "1" sind. wird nur einer zu "1" dann nicht.
In Teil 2 wird die Flanke immer gebildet, wenn E0.0 zu "1" wird.
Der A0.0 ist nur dann 1 , wenn E 0.1 und E0.2 "1"sind. und die Flanke von E0.0 kommt.
Gruß
Sailor
 
Und noch einer:
In Teil 1 kann E0.0 als Letztes "1" werden (oder E0.1/E0.2)
in Teil 2 muss E0.0 als Letztes "1" werden, damit A0.0 "1" wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Spezialanwendung?

Code:
U E 0.0
...
FP M0.0
...
= A 0.0
A0.0 ist hier nur beispielhaft? Bzw.: wofür macht es Sinn, einen Ausgang für nur 1 Zyklus einzuschalten?

Gruß
Harald
 
A0.0 ist hier nur beispielhaft? Bzw.: wofür macht es Sinn, einen Ausgang für nur 1 Zyklus einzuschalten?

Gruß
Harald

Ja Harald, A0.0 war nur beispielhaft!


Jetzt ist doch noch eine Verunsicherung bei mir aufgetreten:


"hucki" schreibt ja zu meinem Beispiel


U E 0.0
FP M0.0
U E 0.1
U E 0.2
= A0.0

in Teil 2 muss E0.0 als Letztes "1" werden, damit A0.0 "1" wird.


Warum gibt es hier eine zeitliche Abhängigkeit?
 
wegen des zyklus.
wenn die flanke positiv wird, ist sie das nur einen zyklus, wenn deine beiden eingänge später hi werden wird das nix. da nicht alle eingänge hi sind
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm, wie sonst könnte man das dann programmieren?

Die Aufgabe besteht darin, dass ein Zylinder nur dann startet, wenn

- eine LS über eine pos. Flanke einen Impuls abgibt
- ein anderer Zylinder in seiner GS steht
- ein vorhergehender Schritt (einer Schrittkette) gesetzt ist


Frage:

Wie kann ich da eine zeitliche Abhängigkeit berücksichtigen?

Vielen Dank!
 
Wie kann ich da eine zeitliche Abhängigkeit berücksichtigen?

a) die flankenauswertung wie in fall1 realisieren, wobei dann bei jeglichem signalwechsel (0->1) aller beteiligten operanden ausgelöst wird
b) die flankenauswertung mit einem hilfsmerker abschließen und diesen in der verknüpfung verwenden
 
Danke vierlagig,

aber was wäre nun in dem konkreten Beispiel

Code:
U  E0.0     // LS
FP M0.0     // positive Flanke
U  M10.1    // Schrittmerker Schritt_1
U  E0.2     // BS, Zylinder_1 (GS)
S  M10.2    // Schrittmerker Schritt_2


wenn z.B. zuerst M10.1 den Status 1 erhält, danach E0.2 und erst danach E0.0 - würde dann der Merker M10.2 nicht gesetzt werden?

Verstehe das grad irgendwie nicht... :confused:


Wie würde dein Vorschlag b) für mein Beispiel aussehen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke vierlagig,

aber was wäre nun in dem konkreten Beispiel

Code:
U  E0.0     // LS
FP M0.0     // positive Flanke
U  M10.1    // Schrittmerker Schritt_1
U  E0.2     // BS, Zylinder_1 (GS)
S  M10.2    // Schrittmerker Schritt_2


wenn z.B. zuerst M10.1 den Status 1 erhält, danach E0.2 und erst danach E0.0 - würde dann der Merker M10.2 nicht gesetzt werden?

Verstehe das grad irgendwie nicht... :confused:


Wie würde dein Vorschlag b) für mein Beispiel aussehen?
In dem Fall wird M10.2 gesetzt. M10.1 und E0.2 müssen 1-Signal haben bevor E0.0 hoch wird.
 
wenn z.B. zuerst M10.1 den Status 1 erhält, danach E0.2 und erst danach E0.0 - würde dann der Merker M10.2 nicht gesetzt werden?

doch, dann würde er gesetzt werden.
vielleicht kann es untenstehende tabelle (bezogen auf deinen code) ein wenig verdeutlichen:
Code:
*

E0.0	M10.1	E0.2    M10.2
0->1	0	0	0
0->1	1	1	1
0->1	0->1	1	1
1	0->1	1	0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, dann ist das aber ja eher eine sehr unvorhersehbare und unzuverlässige Programmierung! *unzufriedenmitmirbin* ;)

Wie könnte ich das Beispiel zuverlässiger programmieren, wenn eben nur E0.0 an der Flanke beteiligt sein soll und M10.2 immer gesetzt werden soll, unabhängig davon, wer zuerst den Status 1 erhält?
 
Ok, dann ist das aber ja eher eine sehr unvorhersehbare und unzuverlässige Programmierung! *unzufriedenmitmirbin* ;)

Wie könnte ich das Beispiel zuverlässiger programmieren, wenn eben nur E0.0 an der Flanke beteiligt sein soll und M10.2 immer gesetzt werden soll, unabhängig davon, wer zuerst den Status 1 erhält?

hi,
das geht halt eben nicht. wenn du mit einer Flanke arbeitest, muss der Rest schon den Zustand 1 haben, weil die gemerkte Flanke im nächsten Zyklus "weg ist". einzige Möglichkeit wäre bei der Flanke ein weiteres Bit zu setzen. dann musst du allerdings überlegen/aufpassen, wann dieses Bit wieder rückgesetzt wird...
 
Zurück
Oben