Beginning with version V2.3.56 the following error messages can occur when old projects are compiled.
Error: Not enough 'Counters hold' reserved for the compiler. Please change system registers 5 or 6. or Error: Not enough 'Counters non-hold' reserved for the compiler. Please change system registers 5 or 6.
The reason for this is that, beginning with version V2.3.56, you can assign function block instances to the holding or non-holding areas. Thereby the compiler assigns a system counter from the area for timer/counters from the upper limit up to the beginning of the holding area (system register 6) for each VAR_RETAIN instance of the function block CT_FB. For each instance of the class VAR the compiler assigns a system counter from the end of the non-holding area (value of system registers 6 - 1) up to beginning number for the counter (system register 5). If system registers 5 or 6 are set up such that the area to be assigned is not available, one of the error messages listed above occurs. System registers 5 or 6 must be adjusted accordingly or the class of the function block instance changed.
In a version earlier than V2.3.56, the counter was assigned the number 3071, which lies in the holding area. Beginning with version V2.3.56, the compiler tries to assign the counter to the non-holding area. However, it is blocked out in system registers 5 or 6.
Solution: Either change system registers 5 or 6 to open up non-holding areas for the counter
or
change the class in the program header to have the instance assigned to the holding area.