FUNCTION_BLOCK FB 2001
TITLE = KENNUNGEN LESEN
VERSION : 0.1
VAR
Retval_sfc51 : INT ;
sfc51_busy : BOOL ;
szl_HEADER : STRUCT
LENTHDR : WORD ;
N_DR : WORD ;
END_STRUCT ;
DR : ARRAY [1 .. 2 ] OF STRUCT
Index_1: byte; // 0=Standard-CPU
Index_2: byte; // CPU-Schutzstufe, Bedienschalterstellung, Prüfsummen
sch_schal: word; // Durch BA-Schalter eingestellte Schutzstufe (1,2,3)
sch_par: word; // Parametrierte SS (0,1,2,3; 0=kein PW vergeben / SS ungültig)
sch_rel: word; // Gültige Schutzstufe der CPU
bart_sch: word; // 1:RUN, 2:RUN-P, 3:STOP, 4:M-RES, 0=Undef.
anl_sch: word; // Stellung Anlaufschlater (1:CRST, 2:WRST, 0=undef.)
ken_f: word;
ken_rel: word; // Kennung der 4 folg. Prüfsummen (0=ungültig)
ken_ver1_hw: word; // Prüfsumme 1 der Hardarekonfiguration (Intel Format)
ken_ver2_hw: word; // Prüfsumme 2 der Hardarekonfiguration (Intel Format)
ken_ver1_awp: word; // Prüfsumme 1 des Anwednerprogramms (Intel Format)
ken_ver2_awp: word; // Prüfsumme 2 des Anwednerprogramms (Intel Format)
Res_01: word;
Res_02: word;
sfc_req: word;
sfc_act: word;
Res_11: word;
Res_12: word;
Res_13: word;
Res_14: word;
END_STRUCT;
Screen : STRUCT
Key_HS : ARRAY [0 .. 7 ] OF BOOL ;
Key_VS : ARRAY [0 .. 7 ] OF BOOL ;
END_STRUCT ;
Retval_sfc20 : INT ;
Flag : ARRAY [0 .. 16 ] OF BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Kennung lesen
CALL "RDSYSST"
(
REQ := #Screen.Key_HS[0],
SZL_ID := W#16#232,
INDEX := W#16#4,
RET_VAL := #Retval_sfc51,
BUSY := #sfc51_busy,
SZL_HEADER := #szl_HEADER,
DR := #DR
);
NETWORK
TITLE =Ergebniss umspeichern
U #Screen.Key_HS[1];
FP #Flag[0];
SPBN blke;
CALL "BLKMOV"
(
SRCBLK := P#DB2001.DBX10.0 BYTE 40,
RET_VAL := #Retval_sfc20,
DSTBLK := P#DB2001.DBX50.0 BYTE 40
);
R #Screen.Key_HS[1];
blke: NOP 0;
END_FUNCTION_BLOCK
DATA_BLOCK DB2001
TITLE = KENNUNGEN LESEN
VERSION : 0.1
FB2001
BEGIN
END_DATA_BLOCK