# Wert in Array schreiben/überschreiben und auslesen (FUP)



## frigidolf (17 März 2015)

Hallo,

ich bin neu hier (und auch was die SPS Programmierung angeht recht unerfahren) und habe eine Frage bzgl. dem Speichern/ Auslesen einzelner Werte - kann hier und im Netz leider nichts finden was mich entschieden weiterbringen würde.

Es geht um folgendes:
Ich möchte einen Wert eines Eingangs A (INT) zu einer bestimmten Zeit (in meinem Fall 'fallende Flanke' eines Eingangs B) speichern.
Dieser Wert soll als Referenz dienen (Eingang A +/- gespeicherter Wert) und entsprechende weitere Funktionen einleiten.
Erst wenn die Speicherbedingung ('fallende Flanke' Eingang B) wird auftritt soll der Wert überschrieben werden und als neue Referenz dienen.

Mein Problem:
Wie kann ich (wenn möglich in FUP) den Wert speichern und auch wieder zu beliebiger Zeit auslesen?

Ich hoffe ich habe mich verständlich ausgedrückt..

Vielen Dank!


----------



## weißnix_ (17 März 2015)

Das geht über den MOVE-Block. Gesteuert wird das über den EN-Eingang.
Also EN=True, Wert der Eingangsvariable auf Ausgangsvariable schreiben.

Achtung: In einigen Editoren (Beckhoff-FUP in TC2) hat der MOVE-Block keinen EN-Eingang. Da muß man sich was anderes schlaues ausdenken.


----------



## mac203 (18 März 2015)

Vielleicht ist die Frage ja zu einfach....aber warum nutzt du nicht einen F_TRIG und erkennst damit die fallende Flanke und leitest entsprechende Aktionen ein?


----------



## frigidolf (18 März 2015)

mac203 schrieb:


> Vielleicht ist die Frage ja zu einfach....aber warum nutzt du nicht einen F_TRIG und erkennst damit die fallende Flanke und leitest entsprechende Aktionen ein?



Das hab ich ja auch so geplant - ich wusste nur nicht, wie ich den Wert speichern kann.


----------



## mac203 (18 März 2015)

Das Ergebnis daraus einer Variable zuweisen?!


----------



## frigidolf (18 März 2015)

mac203 schrieb:


> Das Ergebnis daraus einer Variable zuweisen?!



F_TRIG von Eingang_A markiert quasi den Zeitpunkt, an dem der Wert aus Eingang_B einer Variablen_X zugewiesen wird.


----------



## Mr.Spok (18 März 2015)

sollte in FUP so funktionieren:






Grüße Jan


----------



## frigidolf (18 März 2015)

Vielen dank!

Versteh ich das richtig, dass das Netzwerk 2 immer übersprungen wird, es sei denn an Eingang_A wird die Flanke detektiert? Dann ist X = B. Das heißt ich kann B für weitere Operationen verwenden über den Zyklus hinaus? x_Dummy stellt einfach eine Variable dar,die nur dann 'False' wird wenn X gespeichert wird?

Das ist ja sehr cool wenn das so klappt 
Vielen dank!


----------



## Mr.Spok (19 März 2015)

Also x_Dummy ist nur un der Deklaration vorhanden, kannst Du weglassen.

Ja, Netzwerk 2 wird immer übersprungen, es sei denn der Ausgang der Flankenauswertung
auf fallende Flanke von x_A wird true. Dieser ist dann genau einen Zyklus true, und in
diesem wird dann das Netzwerk 2 nicht übersprungen und es erfolgt die Zuweisung von i_B
auf i_X.
 i_B kannst Du für weitere Operationen verwenden.


Grüße Jan


----------

