Tagessicherung
This commit is contained in:
77
src/FSI Funktionen/Debug/DbgGenCpuLst.scl
Normal file
77
src/FSI Funktionen/Debug/DbgGenCpuLst.scl
Normal file
@@ -0,0 +1,77 @@
|
||||
FUNCTION_BLOCK "DbgGenCpuLst"
|
||||
{ S7_Optimized_Access := 'FALSE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
I_MinVal : Int; // min. Zykluszeit in ms
|
||||
I_MaxVal : Int; // max. Zykluszeit in ms
|
||||
END_VAR
|
||||
|
||||
VAR
|
||||
init : Bool;
|
||||
oldVal : "STIME"; // alter Zeitwert
|
||||
newVal : "STIME"; // aktueller Zeitwert
|
||||
rdm : Int; // Zufallszahl, die auf den alten Zeitwert addiert wird
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
(*#################################################################################################
|
||||
|
||||
Copyright (c) Fondium Singen GmbH
|
||||
|
||||
### Änderungshistorie ###
|
||||
|
||||
Datum: Version: Bearbeiter: Beschreibung:
|
||||
24.10.2019 0.0 St. Maier Neuerstellung
|
||||
03.02.2020 0.1 St. Maier Init-Funktion eingefügt um Fehler beim Neustart zu
|
||||
vermeiden.
|
||||
|
||||
#################################################################################################*)
|
||||
|
||||
(*################################### Baustein Beschreibung #######################################
|
||||
|
||||
Abhängigkeiten (von anderen Fuktionen und Quellen):
|
||||
- IN: EingangswerZufallszahl zwischen LOW und HIGHt
|
||||
|
||||
|
||||
Inputs:
|
||||
-
|
||||
|
||||
Outputs:
|
||||
-
|
||||
|
||||
In-\Outputs:
|
||||
-
|
||||
|
||||
Return-Value:
|
||||
- Nachkommateil von x
|
||||
|
||||
Funktionsbeschreibung:
|
||||
Dieser Baustein Simuliert eine CPU-Last bzw.verlängert die Zykluszeit über einen
|
||||
Zufallsgenerator. Über die Eingangsvariablen I_Min und I_Max können die Grenzen der Zyklus-
|
||||
zeit bestimmt werden.
|
||||
|
||||
#################################################################################################*)
|
||||
|
||||
IF NOT #init THEN
|
||||
#newVal();
|
||||
#init := true;
|
||||
END_IF;
|
||||
|
||||
#oldVal();
|
||||
|
||||
#rdm := "Rdm2"(
|
||||
I_OldVal := #rdm
|
||||
, I_MinVal := #I_MinVal
|
||||
, I_MaxVal := #I_MaxVal
|
||||
, "I_STIME.tx" := #oldVal.tx
|
||||
);
|
||||
|
||||
WHILE DWORD_TO_DINT(#newVal.tx) < DWORD_TO_DINT(#oldVal.tx) + #rdm DO
|
||||
|
||||
#newVal();
|
||||
|
||||
END_WHILE;
|
||||
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
Reference in New Issue
Block a user