61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
FUNCTION_BLOCK "FB_SSCCAI"
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
VAR_INPUT
|
|
udt_LetzteMessung : "udt_SSCCMeasurement";
|
|
END_VAR
|
|
|
|
VAR_IN_OUT
|
|
udt_SSCC : Array[0..9] of "udt_SSCCMeasurement";
|
|
xInOutClear : Bool;
|
|
END_VAR
|
|
|
|
VAR
|
|
Lrtrig_S_SchiebenUm1 {InstructionName := 'R_TRIG'; LibVersion := '1.0'; S7_SetPoint := 'False'} : R_TRIG;
|
|
Li_S_IndexSchieberegister { S7_SetPoint := 'True'} : Int;
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
udt_SSCC_leer : Array[0..9] of "udt_SSCCMeasurement";
|
|
END_VAR
|
|
|
|
|
|
BEGIN
|
|
REGION Info
|
|
(* ------------------------------------------------------------------------------------------------
|
|
Modulname : FB_LaengenmessungAI
|
|
Date : 20.10.2025
|
|
Author : Kannler Thomas / Automated-Intelligence
|
|
Info : FB für die Visualisierung der letzten 10 Messungen
|
|
|
|
ChangeLog: :
|
|
---------------------------------------------------------------------------------------------- *)
|
|
END_REGION
|
|
|
|
REGION Flankenauswertung
|
|
#Lrtrig_S_SchiebenUm1(CLK:=#udt_LetzteMessung <> #udt_SSCC[0]);
|
|
|
|
END_REGION
|
|
|
|
REGION Schieberegister
|
|
IF #Lrtrig_S_SchiebenUm1.Q THEN
|
|
// Von vorne nach hinten schieben: 8 -> 9, 7 -> 8, 6 -> 7, ..., 0 -> 1
|
|
FOR #Li_S_IndexSchieberegister := 9 TO 1 BY -1 DO
|
|
#udt_SSCC[#Li_S_IndexSchieberegister] := #udt_SSCC[#Li_S_IndexSchieberegister - 1];
|
|
END_FOR;
|
|
|
|
// Neuen Datensatz vorne an Index 0 speichern
|
|
#udt_SSCC[0] := #udt_LetzteMessung;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
REGION Liste leeren
|
|
IF #xInOutClear THEN
|
|
#xInOutClear := FALSE;
|
|
#udt_SSCC := #udt_SSCC_leer;
|
|
END_IF;
|
|
END_REGION
|
|
|
|
END_FUNCTION_BLOCK
|
|
|