Diagnosis: Identify the offending variables
To address high Chronological Event List (CEL) log volume, first identify which variables are generating excessive events.
- Open the CEL screen in the zenon Service Engine (Runtime) (or in File Inspector).
- Apply an absolute time filter to load a manageable time slice.
- Sort or export the list to identify variables with an abnormally high frequency of entries.
Once the offending variables are identified, investigate the following common causes:
- 1. Faulty Device or I/O Flutter (Digital Variables)
A hardware fault or loose connection can cause a digital input (e.g., a physical switch or sensor) to flutter, producing a continuous stream of rapid value changes.
Solution: Inspect and resolve the physical hardware fault at the field level, or implement a signal delay/debounce logic within the PLC to prevent rapid toggling from reaching zenon.
- 2. High-Frequency Noise on Numerical Variables (Analog Variables)
Analog values (such as temperature, pressure, or voltage) often fluctuate continuously within a microscopic, non-significant range (e.g., a temperature reading bouncing between 21.674 °C and 21.675 °C). If CEL logging is enabled for every change, this generates massive log volumes.
Solution: Define a Value Hysteresis to filter out insignificant changes. In zenon: Navigate to the variable's properties -> Value calculation -> set the Hysteresis value. Changes within this threshold will be ignored by the Service Engine.
Alternative: Implement a deadband or smoothing algorithm directly at the PLC level.
- 3. Continuous Variable Writes via API (VBA/VSTA/C#/Add-Ins)
Custom scripts or API applications often write to variables cyclically. The zenon API does not automatically pre-check if the new value matches the current value; an unconditional API write will execute and generate a CEL entry every time it is called, even if the value has not changed.
Solution A (Code Optimization): Modify the API user code to read the current value first and only execute the write operation if the value has actually changed.
Solution B (Property Configuration): If logging API writes is not required for the project's audit trail, disable it. Navigate to the variable's properties -> Write set value group -> uncheck Write set value via API. You can use multi-select to apply this to all relevant variables simultaneously.
Note: The same reasoning and troubleshooting process can be extended to some extend to alarms (AML) and archive/historian data.