Step 7 Positive Flankenerkennung in Funktion

Hans Werner

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
ich habe ein Problem mit der Erkennung positiver Flanken in einer Funktion (FC).
Also in meine Funktion geht das auzuwertende Signal als Input rein und wird dort via "POS" auf positive Flanke untersucht.
Mache das ganze im FUP.
Jetzt benötigt "POS" aber einen Speicher für den vorherigen Wert.
Wollte das mit einer temporären Variable (im FC unter temp deklariert) lösen, doch beim Ausführen der Funktion FC im OB mit verschieden Inputs spinnts komplett.
Wo liegt der Fehler?
Hier ein Bild:

flanke.jpg

Vielen, vielen Dank im Vorraus
lg
 
Weil du eine Temp Variable nimmst. Die ist nur im gleichen Aufruf gesichert. Temp Variablen bzw. deren Speichwerbereich werden von der Steuerung auch von anderen Temp-Variablen genutzt und können so willkürliche Ergebnisse liefern.
 
Am besten einen FB nutzen und dort in den STAT Variablen anlegen. Willst du den FC nur ein oder zweimal aufrufen (denke ich ja mal nicht) kannst du auch normale Merker nehmen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Willst du den FC nur ein oder zweimal aufrufen (denke ich ja mal nicht) kannst du auch normale Merker nehmen.

Wenn Merker im FC vorkommen kann man ihn nur EINMAL aufrufen, nicht zweimal.
Ansonsten muss man den Flankenspeicher am INOUT des FCs deklarieren und den Merker von aussen anhängen. Dann kann man den FC so oft aufrufen wie man will.

mfG René
 
Als Styleguide: Wenn ich Merker für Funktionen verwende versuche ich möglichst die Funktionsnr und die Merkerbytenr gleichzuwählen (also z. B. FC10 und MB10). Dann weiss man hinterher wo das MB verwendet wird, ohne in den Querverweisen wühlen zu müssen.
 
Zuletzt bearbeitet:
Zurück
Oben