Post

Conversation

【リアルタイム制御の誤解】 よく誤解されるけど、リアルタイム制御の“リアルタイム”とは、「すぐに動く」ことではありません。「必ず間に合う」ことを指します。 「割り込みからのイベントドリブン制御」のほうが瞬間的な反応速度が上なため、「こちらのほうがリアルタイムなのでは?」と思う人が多いのですが、「最悪応答時間(デッドライン)を守れるか」がシステムとして保証されているのがリアルタイム制御・リアルタイムシステムです。 そして、定周期実行は、このデッドラインを設計・保証するための前提となる仕組みです。 定周期実行は、 ・実行タイミングが一定で ・時間のバラツキ(ジッタ)が抑えられる ので、出力が「いつ出るか」を設計できます。 遅延は位相遅れとして扱えますが、ジッタはノイズであり補償できません。なので、サーボ・同期・補間などの制御は、時間が保証された定周性なしには成立しません。 つまり、「時間を設計」できるのがリアルタイム制御です。 これに対し、上にあげたイベントドリブン制御は、入力変化に即座に反応できるため、「一見リアルタイムっぽく」見えます。しかし、イベントドリブンで保証されるのは「速く反応するかもしれない」ということだけです。 応答性が高いこととリアルタイムであることは別物です。 ようは、 ・定周期実行によるリアルタイム制御 ・瞬間応答を重視したイベントドリブン制御 ・ベストエフォートで動くフリーラン(引用ポスト参照) は、それぞれの用途ごとに使い分ける必要があります。
Quote
とき@engineer
@toki_engineer
【PLCの定周期実行とフリーランの本質的な違い】 この2つのタスク実行の違いや使い分けについて、明確に分かっていない人が多いんじゃないかな。 PLCのタスク実行には ・定周期実行(定周期タスク) ・フリーラン(処理が終わり次第、次のスキャン) の実行方法がある。
Show more