I recently encountered an issue with the down timer. The control system continuously sets the down timer to 60 seconds. After the 60 seconds expire, it performs an operation (turning on or off the outputs) and then resets the timer again to 60 seconds to count down.
However, with one customer, the down timer unexpectedly displayed a value of 8.119299e13, which appears to be an extremely large (possibly infinite) countdown. This occurred randomly and I haven’t been able to replicate the issue.
Has anyone else experienced a similar issue where the down timer enters an infinite or unusually large countdown?
Its in pac project. No any external code that writes the table.
Its a float table with timer second values. I did verify the table it didnt have any large number.
The system was running good for almost 5-6months then this randomly happened. The customer did some a power outage for around an hour. After that i assume this issue might have come in, but not sure.
I see 4 vars are used to calculate the timer value.
Are any of those 4 vars public?
That was my point, not so much the table, but any vars used to set the timer.
Also given the new information about the power cycle, I wonder if any of those 4 vars are persistent?
Hows the backup battery in that EPIC?
The table has 3 variables those are loop variables to identify the index. The table has the timer values used those loop variables I find the index of which value to set. The table is persistent, the variable are not. All the other variables, table did hold the values its just this one timer which went into infinite. This line of code can never excute with improper values, as there are tons of error checks before this. Those variables are used only in this chart no ever else in the program.
Could of been a bad value in that table - how are those values set?
Consider changing to an up timer and comparing the timer to the table (timer > setpoint). This helps not have a timer running forever if someone put in a too large value. The setpoints can be changed and immediately take affect. As a rule, I don’t use down timers for that reason.
From groov view with all the error checks. User can’t enter more than 500 seconds with max and min clamping in strategy also. Yes added the timer > setpoint it will reset the timer. But the issue is with the preset value of 60 seconds how can the value go to infinite or large value.