1.3 KiB
1.3 KiB
// Block Type: FC
// Block Number: 61
// Original Network Languages: STL
FUNCTION "Block_compare" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
DB_source : Int;
DB_dest : Int;
Start_source : Int;
Start_dest : Int;
Nr_byte : Int;
END_VAR
VAR_OUTPUT
mDifference : Bool;
END_VAR
VAR_TEMP
DBNUM_Source : Word;
DBNUM_Dest : Word;
Pointer_Source : DWord;
Pointer_Dest : DWord;
Loop_Count : Int;
END_VAR
BEGIN
// Network 1: Byte Compare (Original Language: STL)
// --- BEGIN STL Network 1 ---
CLR
= "mDifference"
L "DB_source"
T "DBNUM_Source"
L "DB_dest"
T "DBNUM_Dest"
L P#0.0
L "Start_source"
SLD 3
ADD_D
T "Pointer_Source"
L P#0.0
L "Start_dest"
SLD 3
ADD_D
T "Pointer_Dest"
LAR1 "Pointer_Source"
LAR2 "Pointer_Dest"
L "Nr_byte"
m001: T "Loop_Count"
AUF DBB[AR?,P#0.0]
L DBB[AR1,P#0.0]
AUF DBB[AR?,P#0.0]
L DBB[AR2,P#0.0]
NE_I
ADDAR1 P#1.0
ADDAR2 P#1.0
JC diff
L "Loop_Count"
LOOP m001
JU end
diff: SET
= "mDifference"
end: NOP_0
// --- END STL Network 1 ---
END_FUNCTION