ILSLib hinzugefügt
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
FUNCTION "FC_TSHR_Shift" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
xInShiftBack : Bool;
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
arTSHR : Array[*] of "stCarrier";
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
tStatus : Int;
|
||||
tStatusSim : Int;
|
||||
tSrcIdx : DInt;
|
||||
tDestIdx : DInt;
|
||||
nArrayMax : DInt;
|
||||
stEmptyCarrier : "stCarrier"; // Carrier mit leeren Daten
|
||||
END_VAR
|
||||
|
||||
VAR CONSTANT
|
||||
Constant_1 {InstructionName := 'DTL'; LibVersion := '1.0'} : DTL;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
#nArrayMax := UPPER_BOUND(ARR := #arTSHR, DIM := 1); // get array size
|
||||
|
||||
IF #xInShiftBack THEN // move backward
|
||||
#tSrcIdx := 1;
|
||||
#tDestIdx := 0;
|
||||
ELSE // move forward
|
||||
#tSrcIdx := 0;
|
||||
#tDestIdx := 1;
|
||||
END_IF;
|
||||
|
||||
#tStatus := MOVE_BLK_VARIANT(SRC := #arTSHR,
|
||||
COUNT := DINT_TO_UDINT(#nArrayMax-1),
|
||||
SRC_INDEX := #tSrcIdx,
|
||||
DEST_INDEX := #tDestIdx,
|
||||
DEST => #arTSHR);
|
||||
|
||||
#arTSHR[#nArrayMax] := #stEmptyCarrier;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user