78 lines
2.0 KiB
Plaintext
78 lines
2.0 KiB
Plaintext
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
|
|
|