发布于 2012-07-31 07:57:41
5楼
FUNCTION_BLOCK FB400
const
nVarNumber := 3;
END_CONST
VAR_INPUT
nID : INT;
bOpt : INT;
// Block Parameters
END_VAR
VAR_IN_OUT
// I/O Parameters
END_VAR
VAR
m_nOrder : ARRAY[1..nVarNumber] OF INT:=nVarNumber(0);
END_VAR
VAR_OUTPUT
nNumber : INT;
nIDlast : INT;
END_VAR
VAR_TEMP
// Temporary Variables
i : INT;
k : INT;
END_VAR
begin
// Statement Section
IF bOpt = 0 THEN
// Statement Section_IF
FOR i := 1 TO nVarNumber-1 BY 1 DO
// Statement Section
m_nOrder[i] := m_nOrder[i+1];
;
END_FOR;
m_nOrder[nVarNumber] := nID;
;
ELSE
// Statement Section_ELSE
FOR i := nVarNumber TO 1 BY -1 DO
// Statement Section
k := i;
IF m_nOrder[i] = nID THEN
EXIT;
END_IF
;
END_FOR;
FOR i := k TO 2 BY -1 DO
// Statement Section
m_nOrder[i] := m_nOrder[i-1];
END_FOR;
m_nOrder[1] := 0;
END_IF;
nIDlast := m_nOrder[nVarNumber];
nNumber := 0;
FOR i := nVarNumber TO 1 BY -1 DO
// Statement Section
IF m_nOrder[i] <= 0 THEN
EXIT;
END_IF;
nNumber := nNumber +1;
;
END_FOR;
END_FUNCTION_BLOCK
一起从头来过