Files
HundM_Fortna/=A01+UH01-KF00/Programmbausteine/970_Visu/FB_SSCCAI.scl
T

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