norser2006 - 2010-01-28

Hallo

Ich benötioge hilfe in einem Funktionsbaustein.

VAR_INPUT

Reg_Parameter:Ergebnis;

Speichern : BOOL;

Loeschen:BOOL;

END_VAR

VAR_OUTPUT

ModulErgebnis:Ergebnis;

Messgroesse:REAL;

ModulEinheit:STRING;

Status: INT;

END_VAR

TYPE Ergebnis:

STRUCT

Messgroesse:REAL;

Einheit:STRING;

Status:INT;

END_STRUCT

END_TYPE

Im erste Schritt soll Am Ausgang des Funktionsbausteins:

Messgroesse:=0;

ModulEinheit:=Reg_Parameter.Einheit;

Status:=1;

Im Zweite Schritt , wenn eine steigende Flanke von Eingangsvariable

(Speichern ) kommt , dann sollen die Werte die am Eingang des Funktionsbaustein stehen zu Ausgangsvariable (ModulErgebnis) übertragen werden.

d.h.

ModulErgebnis:=Reg_Parameter;

Messgroesse:=Modulergebnis.Messgroesse;

ModulEinheit:=Modulergebnis.Einheit;

Status: :=Modulergebnis.Status;

Im dritten Schritt, und bei einer steigende Flanke am Eingangsvariable Speichern werden die neue Werte am Ausgang übertragen.Wenn aber eine steigende flanke am Eingangvariable Loeschen kommt dann müssen die Ausgangsvariable initialisiert werden.

Messgroesse:=0;

ModulEinheit:=Reg_Parameter.Einheit;

Status:=1;

WICHTIG : Wenn das Gerät ausgeschaltet wird und wieder neue eingeschaltet, dann sollen die letzte gespeicherte Werte zu Ausgang des Funktionsbaustein übergetragen werden.

D.h. Die letzte Werte sollen von RETAIN PERSISTENT TYP sein .

Prinzip dieses Funktionsblock ist sehr ähnlich zu SH funktionsbolck von OSCAT lib.

Vielen Dank