How the cyclic load of PM864A CPU can be reduced???
Presently, one of my CPU total load is 95% & Cyclic Load 70%. What precautions to be taken further to avoid increase in Cyclic load. Downloading the Controller taking much time(almost 90secs) to come Online.
Thanks in advance,
P.Shiva Prasad
Voted best answer
Hello,
Cyclic Load can be reduced by increasing the Task Interval Time or by decreasing the Task Executuion time.
Cyclic Load = (Execution Time/Interval time)* 100
Please dont blindly increase it as it affects the running process. At very first you have to identify the least task (eg:Slow task) and increase the interval time in steps.
If you are in SV 5.1, you can enable the Task Tuning which automatically adjust the task interval time and won't allow the cyclic load to cross 70%
System load 95% also looks abnormal. If you still going to add/modify the applications/programs in your system then suggest you to go for higher version of PM's like PM 866 (or) PM891 controllers.
Avoid frequent dowlaods, logic modifications,etc...since Cyclic load and System Total load are already in the border limits to avoid controller crash/fault.
Answers
Hi Shiva
I would suggest you to read the manual "System 800xA Control AC 800M Planning:3BSE044222-511 93"
Section 3 Programming in Practice has several sections like Organizing code;code soring ;code optimization and task tuning which can be used to get the cyclic load down.
The simple answer is to increase the task interval and run the control program less often.
However, if your cyclic load is already at 70% then it is quite possible that the controller is already load limited and the firmware is already increasing the task interval for you. At some point you are not going to be able to run the program any slower. Usually this is around a 1 second task interval For PID loops and motors / valves but may be faster for any positioning logic.
How many tasks are used? What are your task intervals now ? What is the current memory usage ? How many applications are running in the controller ?
If you cannot run your code any slower then you will have to do some program changes.
- You can perform a code review and re-write inefficient code, move some modules and programs to slower tasks etc.
- If you have multiple applications you can move one application to another controller.
- If you have only one application you can split it into 2 or more to make better use of memory. This wont reduce the cyclic load directly but may make it faster to download changes to the controller. Or you can move one application to another controller.
edit : or you can just throw a bigger CPU at the problem which is probably the least risky solution.
Add new comment