Flanken als Temp deklarieren?

S7_Mich

Well-known member
Beiträge
208
Punkte Reaktionen
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
 

plc_tippser

Well-known member
Beiträge
2.500
Punkte Reaktionen
297
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
 

MatMer

Well-known member
Beiträge
788
Punkte Reaktionen
66
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
 

Heinz

Well-known member
Beiträge
657
Punkte Reaktionen
11
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.
 

plc_tippser

Well-known member
Beiträge
2.500
Punkte Reaktionen
297
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
 
A

Anonymous

Guest
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.
 

Onkel Dagobert

Well-known member
Beiträge
4.823
Punkte Reaktionen
874
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
 

Heinz

Well-known member
Beiträge
657
Punkte Reaktionen
11
Hallo,
stimmt, das #Flanke kann wie jede andere Temp Variable nach verwendet werden.

Achtung: Erst zuweisen, dann verwenden.
 
Oben