FAQ: How to troubleshoot and resolve High CEL Log volume

FAQ: How to troubleshoot and resolve High CEL Log volume

Diagnosis: Identify the offending variables

To address high Chronological Event List (CEL) log volume, first identify which variables are generating excessive events.
  1. Open the CEL screen in the zenon Service Engine (Runtime) (or in File Inspector).
  2. Apply an absolute time filter to load a manageable time slice.
  3. 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. 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.

  1.  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.

  1. 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.