Flanken als Temp deklarieren?

S7_Mich

Level-2
Beiträge
214
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hab mal eine Frage zu Flanken. Kann man Flankenhilfsmerker und die Flanke auch als Temp in den Lokalvariablen deklarieren??

U E 0.0
FP #Flankenhilfsmerker
= #Flanke

Kann man das so schreiben bzw. funktioniert das auch?

Oder wäre es besser

U E0.0
FP DB10.DBX0.0
=DB10.DBX0.1

Muß doch nicht immer Merker sein oder?

Gruß
Michael
 
Hi,
als Temp wirst du Probleme bekommen, da die TempVars beim nächsten Bausteinaufruf überschrieben werden können. Da aber die Hilfvariable ihren Wert behalten muss, darf sie nicht temp deklariert werden.

Du kannst die Statischen, Merker und auch DBs nehmen.

pt
 
ja das ist richtig wenn man die im FC deklarieren will kann man lange auf die Flanken warten, ich meine aber im FB als statisch würde dann schon wieder gehen
wenn einem sowas keiner sagt kann man da auch lange nach suchen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
es liefert vorallem "sehr interessante" Effekte, wenn eine Temp Varialbe als Speicher verwendet wird.

Einige Flankenerkennungen "meinen" immer oder häufig eine Flanke erkannt zu haben, wo hingegen andere gar keine Flanke erkennen.

Die Tücke liegt außerdem darin, dass sich die Bausteine beeinflussen können.

Mit etwas Glück läuft es super und irgendwann (nach Änderung xy) nicht mehr.

Daher wie schon geschrieben never temp-Variablen verwenden, wenn ich das Ergebnis auch noch im nächsten SPS-Zyklus brauche.

Im FB eine Variable aus dem Stat Bereich verwenden und nicht eine "fest" im Baustein vergeben Adresse DBxy.DBXxy.z.
 
Einige Flankenerkennungen "meinen" immer oder häufig eine Flanke erkannt zu haben, wo hingegen andere gar keine Flanke erkennen.

Die Tücke liegt außerdem darin, dass sich die Bausteine beeinflussen können.

Mit etwas Glück läuft es super und irgendwann (nach Änderung xy) nicht mehr.
Das liegt daran, dass die Temp den Lokaldatenstack nutzen. Folgt nach dem Baustein mit den Tempvar kein weiterer Baustein der diesen Bereich überschreibt, hat man den Status wie im letzten Zyklus. Das kann natürlich zu Irtum und Hoffnung führen, aber mit dem üblichen Pech auch zur Verzweifelung

pt
 
Es geht auch ohne FB.

Ich nutze grundsetzlasch nur FC, für Instanzbereich (zustand für nächste Zyklus retten) nutze ich IN_OUT Schnittstelle.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Michael

S7_Mich schrieb:
U E 0.0
FP #Flankenhilfsmerker
= #Flanke

Das Bit "#Flanke" kann eine temporäre Variable sein, sofern sie im Baustein nur NACH der Zuweisung abgefragt wird. Der "#Flankenhilfsmerker" speichert den "Altzustand" und muss deswegen in den statischen Globaldaten eines FB oder global im Merkerbereich oder in einem DB gespeichert sein.

Gruß, Onkel
 
Hallo,
stimmt, das #Flanke kann wie jede andere Temp Variable nach verwendet werden.

Achtung: Erst zuweisen, dann verwenden.
 
Zurück
Oben