The INTEGRATOR block will lock up because the Output value of the integration eventually becomes too large for the controller to handle The controllers must have an upper limit as to how large and how many significant digits it can count.
To overcome this we suggest moving the INTEGRATOR output to a table of registers every X amount of time and then adding those values.
In the example below:
The controller has the time of day registers configured and running.
At the change of every hour the EQ_INT block compares the hour to the literal value of 23.
When they are equal the R2T block move the current value in Output to a table of registers.
The RS block will set the INTEGRATOR block in manual mode send the initialization value of 0.0 to the output,
The block can continue Integrating again from 0.0.
At the next 23rd hour the process will be begin again.
The real value in the table can be added together at the users convenience.
Note: The above is not a complete and working application, the user will have to:
Create additional logic to trigger the hour compare once an hour.
Create a Real_Array datatype
Ensure the R2T and INTEGRATOR blocks only get pulsed once per X hour period.
Determine a good time frame for their process to move the accumulated Integration.