Stammverzeichnis (BEISPIEL)

 

(* Beispiel wie CAA_FILE.library – Stammverzeichnis- oder Pfadfunk­tionsblöcke zu verwenden sind *)

PROGRAM ROOT_PRG

VAR

xRootInit:                 BOOL := FALSE;

uiRootState:            UINT := 0;

sStandarddir:          CAA.FILENAME:='C:/PLC_DIR';

sDirName:               CAA.FILENAME;

filsrt:                       FILE.SetRoot;

filgrt:                       FILE.GetRoot;

END_VAR

IF NOT xRootInit THEN

filsrt(xExecute:=FALSE);

filgrt(xExecute:=FALSE);

xRootInit:=TRUE;

uiRootState:=0;

ELSE

CASE uiRootState OF

0: (* Stammverzeichnis lesen *)

filgrt( xExecute:=TRUE);

IF filgrt.xDone THEN

sDirName:=filgrt.sFileName;

uiRootState:=1;

END_IF

IF filgrt.xError THEN

(* Fehlerbehandlung *)

;

END_IF

1:(* Stammverzeichnis vergleichen *)

IF sDirName <> sStandarddir THEN

uiRootState:=2;       (* neues Stammverzeichnis setzen *)

ELSE

uiRootState:=3;       (* standardmäßiges Stammverzeichnis bereits gesetzt *)

END_IF

2:(* neues Stammverzeichnis setzen *)

filsrt.sFileName:=sStandarddir;

filsrt( xExecute:=TRUE);

IF filsrt.xDone THEN

uiRootState:=3;

END_IF

IF filsrt.xError THEN

(* Fehlerbehandlung *)

;

END_IF

3:             (* Ende vom Beispiel *)

;

END_CASE

END_IF