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