Skip to main content

フリーホイーリング IEC タスク

自由奔放なタスクは周期的に実行されますが、タスクサイクルは固定されません。これは PLC の古典的意味での繰り返しのタスクです。

実行はできるだけ頻繁に行われます。ただし、処理は決まったサイクルでは行われません。この種のタスクにはタスクサイクルタイムを定義できません。時間動作は自動的に選択され、システム全体にかかる負荷ができるだけ少なくなるように実行されます。

さらに、実行の終了後、タスクが再度実行されるまで、一定時間待機します。この期間は、最後のサイクル期間のパーセンテージです

重要

自由奔放なタスクでは、固定のタスクサイクルタイムや固定時間の動作は保証されません。

ウォッチドッグをフリーホイーリングタスク用に設定できます。

論理

すべての自由な IEC タスクの負荷は、設定された最大プロセッサ負荷の半分を超えないように、ランタイムシステムによって決定されます。

MaxCpuLoadFreewheeling = ((MIN( 100, MaxProcessorload) / 2) / NumOfFreeWheelingTasks);
SleeptimeAfterCycle = CycleTimeFreewheelingTask * ((100 - MaxCpuLoadFreewheeling) / 100)
if (SleeptimeAfterCycle < 1000) // Minimum sleeptime of 1ms is mandatory!   
SleeptimeAfterCycle = 1000;
26.

アプリケーションのランタイムシステムは次のように実行されます。

  • MaxProcessorload = 80

  • CycleTime = 20 ミリ秒

  • 1 自由奔放なタスク

エフェクト

  • MaxCpuLoadFreewheeling = 40%

  • SleeptimeAfterCycle = 30 ミリ秒

  • フリーホイールタスクの合計サイクルタイム = 50 ms

⇒ 残りのシステムでは、合計で 60% の CPU 負荷が達成されます。