I wrote a S7 block.There are two buttons for inputs(First for ONCE and the other for DECIMAL showing).When each Triggered I1.5 it will count step by step from 0 to 9,and When each triggered I1.4 it will be count Step by step from 0 to 4.But when I continuously pressed one of buttons then it is continuously count.I could not understant.Please can you examine this FC.Thanks in advance
FC parameter assignment:
FU01=I1.5
FU10=I1.4
MAX=4
MINU=M0.0 (always 0)
NR=MB20
------------------------
FUNCTION FC 16 : VOID
TITLE =
//FUNKT-NR
AUTHOR : _9509
NAME : FNR4_LCD
VERSION : 0.0
VAR_INPUT
FU01 : BOOL ; // FU01
FU10 : BOOL ; // FU10
MAX : INT ; // MAX
MINU : BOOL ; // MINU
END_VAR
VAR_OUTPUT
NR : BYTE ; // NR->
END_VAR
VAR_TEMP
TEMP1 : BOOL ;
TEMP2 : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
OPN DB 254;
A #FU01;
A #FU10;
JC M012;
A #FU01;
FP #TEMP1;
JCN M008;
JU M010;
M008: A #FU10;
FP #TEMP2;
JCN M006;
JU M005;
M012: BEU ;
M010: L DBW 30;
INC 1;
T DBW 30;
L 9;
<=I ;
JC M006;
L 0;
T DBW 30;
JU M006;
M005: L DBW 32;
INC 1;
T DBW 32;
L #MAX;
<=I ;
JC M006;
L 0;
T DBW 32;
M006: L DBW 32;
SLW 4;
L DBW 30;
OW ;
T #NR;
END_FUNCTION
FC parameter assignment:
FU01=I1.5
FU10=I1.4
MAX=4
MINU=M0.0 (always 0)
NR=MB20
------------------------
FUNCTION FC 16 : VOID
TITLE =
//FUNKT-NR
AUTHOR : _9509
NAME : FNR4_LCD
VERSION : 0.0
VAR_INPUT
FU01 : BOOL ; // FU01
FU10 : BOOL ; // FU10
MAX : INT ; // MAX
MINU : BOOL ; // MINU
END_VAR
VAR_OUTPUT
NR : BYTE ; // NR->
END_VAR
VAR_TEMP
TEMP1 : BOOL ;
TEMP2 : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
OPN DB 254;
A #FU01;
A #FU10;
JC M012;
A #FU01;
FP #TEMP1;
JCN M008;
JU M010;
M008: A #FU10;
FP #TEMP2;
JCN M006;
JU M005;
M012: BEU ;
M010: L DBW 30;
INC 1;
T DBW 30;
L 9;
<=I ;
JC M006;
L 0;
T DBW 30;
JU M006;
M005: L DBW 32;
INC 1;
T DBW 32;
L #MAX;
<=I ;
JC M006;
L 0;
T DBW 32;
M006: L DBW 32;
SLW 4;
L DBW 30;
OW ;
T #NR;
END_FUNCTION