FUNCTION FC_ResetDB : VOID
TITLE =Blocket nollar en DB
AUTHOR : HP
NAME : ResetDB
VERSION : 0.1
VAR_INPUT
DB_Nr : INT ;
END_VAR
VAR_TEMP
anyDest : ANY ;
iRetur : INT ;
wLength : WORD ;
bW_Prot : BOOL ;
iNoll : INT ;
wDB_num : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =
L #DB_Nr;
T #wDB_num;
NETWORK
TITLE =Check DB lenght
CALL SFC 24 (
DB_NUMBER := #wDB_num,
RET_VAL := #iRetur,
DB_Length := #wLength,
WRITE_PROT := #bW_Prot);
NOP 0;
NETWORK
TITLE =Check for errors (no db or write protected)
O( ;
L #iRetur;
L 0;
<>I ;
) ;
O #bW_Prot;
JC Fel;
NETWORK
TITLE =Make ANY pointer to DB
L B#16#10; // Alltid 10h vid Step7
T LB 0;
L B#16#2; // Byte
T LB 1;
L #wLength; // Length
T LW 2;
L #DB_Nr; // DB nummer
T LW 4;
L B#16#84; // DB
T LB 6;
L B#16#0; // Bit & Byte adress
T LB 7;
L W#16#0; // Bit & Byte adress
T LW 8;
NETWORK
TITLE =Create a zero to use with the fill instruction
L 0;
T #iNoll;
NOP 0;
NETWORK
TITLE =Reset the DB
CALL SFC 21 (
BVAL := #iNoll,
RET_VAL := #iRetur,
BLK := #anyDest);
NOP 0;
NETWORK
TITLE =
Fel: SET;
SAVE;
END_FUNCTION