Direkte Flankenauswertung eines Eingangs

Paule

Level-1
Beiträge
3.058
Reaktionspunkte
869
Zuviel Werbung?
-> Hier kostenlos registrieren
Heute in einem Programm folgenden Code gesehen:
Code:
   FN E 1.0  // Diese Anweisung ist eine "Erstabfrage" (Kommentar von mir)
   = M 10.0
   U M 10.0
   L S5 T#10S
   SV T 1
 
   U M 10.0
   ...
Dazu folgende Ergänzung:
- CPU 314
- Das Programm funktioniert
- Der Eingang E1.0 ist wirklich ein Eingang und nicht nur so symbolisch Bezeichnet.
- Der Eingang wird im Programm noch mehrmals (nur) lesend mit "U E 1.0" abgefragt
- Mit PLCSIM konnte ich diese Anweisung nur sporadisch nachstellen

Schon mal jemand so gemacht?
Man spart sich einen Merker ;) , aber ich weiß nicht. :confused:
 
Wär ja cool wenn das geht. Ich kann´s mir aber irgendwie nicht vorstellen, da ja der letzte Zustand des Eingangs irgendwo gespeichert werden muss.
 
Nochmal ein Auszug aus der Hilfe:
Während eines jeden Programmzyklus wird der Signalzustand des VKE-Bits mit dem Signalzustand des VKE-Bits des vorherigen Zyklus verglichen, um Änderungen des Zustands festzustellen. Um den Vergleich ausführen zu können, muß der Zustand des vorherigen VKE-Bits in der Adresse des Flankenmerkers (<Bit>) gespeichert werden. Unterscheidet sich der aktuelle Signalzustand des VKE-Bits vom vorherigen Zustand ("1") (Erkennung einer fallenden Flanke), ist das VKE-Bit nach dieser Operation "1".
 
Ich weiß ja nicht der Befehl 'FN' hat doch einen schreibenden Einfluß auf den
Eingang. Wie ist den der Zustand, wenn du diesen nach den Flankenbefehl
abfragst. Auf jedem Fall wird er doch mit dem nächsten Prozessabild einlesen
wieder überschrieben.

Wird den in naher Zukunft, bei Siemens am Speicherbereich gespart, also
fallen ein paar Merkerbytes oder Datenbausteine raus, das man so etwas
schreibt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Denke mal laut...

Bei Erstabfrage wird FN mit VKE =1 bearbeitet
wenn E1.0 = 1 passiert nichts
also wird der Zustand im PEB als "0" gespeichert

wenn während einer Zyklusdauer sich E1.0 auf "0" ändert, ist auch der gespeicherte Zustand = "0"

beim fölgenden Zyklus läuft das Prg. mit VKE=0 auf die Abfrage
der E1.0 ist nun "0" und damit ist der Unterschied der beiden Signalzustände gegeben...
M10.0 wird zugewiesen ...

... vielleicht so ... ?


Gruss
 
Ne,
natürlich so
beim fölgenden Zyklus läuft das Prg. mit VKE=1 auf die Abfrage, aber vorheriger Zustand im PEB ist "0"...
 
Denke mal laut...

Bei Erstabfrage wird FN mit VKE =1 bearbeitet
wenn E1.0 = 1 passiert nichts
also wird der Zustand im PEB als "0" gespeichert

wenn während einer Zyklusdauer sich E1.0 auf "0" ändert, ist auch der gespeicherte Zustand = "0"

beim fölgenden Zyklus läuft das Prg. mit VKE=0 auf die Abfrage
der E1.0 ist nun "0" und damit ist der Unterschied der beiden Signalzustände gegeben...
M10.0 wird zugewiesen ...

... vielleicht so ... ?


Gruss

Müsste das nicht 'EB' sein?
PEB bleibt wie es ist!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich weiß ja nicht der Befehl 'FN' hat doch einen schreibenden Einfluß auf den
Eingang. Wie ist den der Zustand, wenn du diesen nach den Flankenbefehl
abfragst.
*ACK*
Wie geschrieben, das Programm funktioniert, aber wenn ich es über PLCSIM nachbilde, nur sporadisch.
 
Nochmal meine Frage, weil es schon spät ist und ich es nicht verstehe.
Wie sieht den der Eingang nach der Flankenbildung aus, hat er dann vlt
für den Rest des Zyklus eine '1' obwohl er '0' haben sollte.
Wenn ja möchte ich solche Leichen nicht in meinen Programm haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe gerade nocheinmal nachgeschaut, der Eingang hat bis zum Ende des
Zyklus eine '1' wenn mann das Prozessabild nicht nochmal aktualisiert.
Im Beispiel könnte das so aussehen.

Code:
UN E 1.0
R A 0.0    //Hier setzt der Eingang ordnungsgemäß zurück


FN E 1.0
= M 10.0   //Paules Wunderwaffe macht den Eingang zu '1'

UN E 1.0
R A 0.1    //Hier wird der Ausgang nicht zurück gesetzt

Das ist irgendwie Käse, schmeiß das raus Paule.
 
Nochmal meine Frage, weil es schon spät ist und ich es nicht verstehe.
Mir geht es gerade genau so ;)
Wie sieht den der Eingang nach der Flankenbildung aus, hat er dann vlt
für den Rest des Zyklus eine '1' obwohl er '0' haben sollte.
Da das Programm läuft würde ich sagen, er hat den logischen Zustand den er haben soll, ist eine Endlage.
Wenn ja möchte ich solche Leichen nicht in meinen Programm haben.
Ich war auch schon in Versuchung, wie gewohnt, eine Hilfsmerker dazwischen zu schieben, allerdings muss man ja nicht in bei jeder Baustelle seine Finger mit drin haben.

@Edit:
Hallo RN, meine Antwort war 1 Min zu spät, ich glaube du hast vollkommen Recht!
 
Zuletzt bearbeitet:
Zurück
Oben