I have an old project for v3.5.xx where a Task is controlled by a global variable. The task type is status.
This worked fine with the old version but now when I have v 3.5.SP7 and the device Codesys Control Win V3 3.5.7.0 I get this exception when the variable turns TRUE. EXCEPTION[ProcessorLoadWatchdog] occurred in: App=[all], Task=[all]
The code in the POU is a single ladder rung (no loops).
What can be wrong, is there anything that I could have forgotten?
/Hans
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2015-10-13
Originally created by: hm@pol.se
The device I am using is the built in Soft PLC; Codesys Control Win V3 3.5.7.0
The settings in my CODESYSControl.cfg are: [CmpSchedule]
;EnableLogger=1
;Timeslicing.Mode=Internal
;Timeslicing.PlcSlicePercent=80
;Timeslicing.PlcSliceUs=4000
;Timeslicing.StartOnProcessorLoad=1
;SchedulerPriority=5
;SchedulerInterval=1000
ProcessorLoad.Maximum=80
(I cant find ProcessorLoad.Enable)
and I have not changed them, but maybe the update to 3.5.SP7 did?
I tried to change to the values you suggested, but with no change (still exception)?
Forgot to mention that I have upgraded to windows 10.
/Hans
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
there are 3 posiible reasons for this:
- your application code really overloads the system (you need to check this by the Taskmonitoring in online mode)
- Windows 10 influences the priorities / scheduling on Control Win (sure Cntrol Win is no realtime system - if you need realtime - 'Control RTE' is the right choice )
- Bug in CODESYS, I see one entry which is solved for 3.5.SP7Patch2 but not really sure if this is exactly your problem (you could give it a try by updating to 3.5.7.20)
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2015-10-14
Originally created by: hm@pol.se
I have one task freewheeling (MainTask) and one activated with status of a GVL (t_manuell).
When status of the GVL is true the this task activates and runs faster than the freewheling task and causes an exception (ProcessorLoadWatchdog). How is this possible?
Can a task run faster than freeweehling?
Is there a way to change this behavior (setting in Codesys)?
/Hans
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2015-10-15
Originally created by: hm@pol.se
I just installed the latest patch 3.5.7.20, but the problem remains.
The task controlled via status of a global variable "gets in to spin" (runs more than 20.000 times faster than freewheeling) and causes the exception.
One solution is to let the task, controlled by status, reset the global variable. This turns of the task and it will be run again when the variable becomes TRUE. With this workaround I donΒ΄t get the exception, but I thought this should be handled by the task-scheduler (am I wrong).
Any ideas?
/Hans
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: hm@pol.se
I have an old project for v3.5.xx where a Task is controlled by a global variable. The task type is status.
This worked fine with the old version but now when I have v 3.5.SP7 and the device Codesys Control Win V3 3.5.7.0 I get this exception when the variable turns TRUE.
EXCEPTION [ProcessorLoadWatchdog] occurred in: App=[all], Task=[all]
The code in the POU is a single ladder rung (no loops).
What can be wrong, is there anything that I could have forgotten?
/Hans
Hi Hans,
hm, which plc are you using?
any changes in the CODESYSControl.cfg?
[CmpSchedule]
ProcessorLoad.Enable=1
ProcessorLoad.Maximum=95
BR
Edwin
Originally created by: hm@pol.se
The device I am using is the built in Soft PLC; Codesys Control Win V3 3.5.7.0
The settings in my CODESYSControl.cfg are:
[CmpSchedule]
;EnableLogger=1
;Timeslicing.Mode=Internal
;Timeslicing.PlcSlicePercent=80
;Timeslicing.PlcSliceUs=4000
;Timeslicing.StartOnProcessorLoad=1
;SchedulerPriority=5
;SchedulerInterval=1000
ProcessorLoad.Maximum=80
(I cant find ProcessorLoad.Enable)
and I have not changed them, but maybe the update to 3.5.SP7 did?
I tried to change to the values you suggested, but with no change (still exception)?
Forgot to mention that I have upgraded to windows 10.
/Hans
Hi Hans,
there are 3 posiible reasons for this:
- your application code really overloads the system (you need to check this by the Taskmonitoring in online mode)
- Windows 10 influences the priorities / scheduling on Control Win (sure Cntrol Win is no realtime system - if you need realtime - 'Control RTE' is the right choice )
- Bug in CODESYS, I see one entry which is solved for 3.5.SP7Patch2 but not really sure if this is exactly your problem (you could give it a try by updating to 3.5.7.20)
BR
Edwin
Originally created by: hm@pol.se
I have one task freewheeling (MainTask) and one activated with status of a GVL (t_manuell).
When status of the GVL is true the this task activates and runs faster than the freewheling task and causes an exception (ProcessorLoadWatchdog). How is this possible?
Can a task run faster than freeweehling?
Is there a way to change this behavior (setting in Codesys)?
/Hans
Originally created by: hm@pol.se
I just installed the latest patch 3.5.7.20, but the problem remains.
The task controlled via status of a global variable "gets in to spin" (runs more than 20.000 times faster than freewheeling) and causes the exception.
One solution is to let the task, controlled by status, reset the global variable. This turns of the task and it will be run again when the variable becomes TRUE. With this workaround I donΒ΄t get the exception, but I thought this should be handled by the task-scheduler (am I wrong).
Any ideas?
/Hans