~ IT 新人には参考に。FA 新人には理解を深めるために ~
PLC の世界は、IT の常識だけでは理解できない。
そして FA の新人にとっても、最初に必ずつまずくポイントがある。
この記事は、
• IT 新人には:FA の世界観を知るための参考に
• FA 新人には:誤学習を防ぎ、理解を深めるために
という二つの目的でまとめている。
① 論理だけでは制御できない世界
現場には IT には無い不確実性がある。
• センサは揺れる
• 接点はチャタる
• モノは慣性で止まらない
• 周囲には人がいる
だから 論理だけでは制御は成立しない。
ここが IT と FA の最初の文化差。
② 入力時定数とセンサ安定
■ 入力時定数(ON 遅延による安定判定)
センサの ON/OFF は瞬間的に揺れる。
だから PLC は、
「ON が一定時間続いたら本物とみなす」
という ON 遅延(安定時間フィルタ) を使う。
これが入力時定数。
■ スキャン先頭で入力を読む理由
スキャン中に入力値が変わるとロジックが破綻する。
(1行目でON、20行目でOFF など)
そのため PLC は、
• スキャン開始時に入力を読み込む
• スキャン中は値を固定する
という “世界を一枚の写真にする” 構造を持つ。
③ 質量を動かすという現実
IT の世界には質量が無い。
しかし現場では、
• 物体は急に止まらない
• 加減速が必要
• 衝突すれば壊れる
• 人に当たれば事故になる
物理法則が制御の前提になる。
④ リアルタイム性
PLC は “遅れたら事故になる” 世界。
• 1ms の遅れで位置ズレ
• 10ms の遅れで挟まれ
• 100ms の遅れで事故
だから 周期処理(リアルタイム性) が絶対条件。
そして、
できるだけ軽い処理で最大限の効果が出るコードを書く努力が必要になる。
重い処理はそのまま “遅れ=危険” に直結するから。
⑤ 安全性
PLC は 人の命がかかる。
だから “確実に・周期的に・決められた順序で” 処理する。
IT のように「遅れたらリトライ」では済まない。
⑥ そして中心にある「スキャン」と言う概念
IT と PLC の「待ち方」の違い
■ IT のコードは“本当に待つ”
IT のプログラムは、
• キー入力待ち
• ボタンクリック待ち
• イベント待ち
など、処理を止めて待つことが普通にある。
input() # 入力が来るまで止まる
await click() # クリックされるまで止まる
■ PLC は“絶えず回す”
PLC は コードを先頭から末尾まで、絶えず回し続ける。
止まらない。絶対に止まらない。待たない。
止まったら事故につながるから。
そして PLC には、
スキャンが遅れたり止まったりすると即座に異常を出す仕組み がある。
• スキャンタイムエラー(スキャンが決められた周期内に終わらない)
これは “止まらず回す” 機構を守るための安全装置。
この文化差が、
IT 新人がスキャンを理解しづらい最大の理由になる。
スキャンとは
• スキャン開始:入力を一括で読む(世界を固定)
• スキャン中:固定された世界でロジック実行
• スキャン終了:出力をまとめて反映
入出力はスキャン周期でしか変わらない。
これが PLC の基本的構造である。
(例外はあり:ダイレクト入出力 / 割り込み処理)
⑦ IT 新人にとって役に立つ場面
• イベント駆動との違いが理解できる
• “なぜ PLC はこういう作りなのか” が理解できる
IT 新人にとっては、FA の世界を理解するための地図になる。
⑧ FA 新人にとって役に立つ場面
• 時定数の動作目的を正しく理解できる
• スキャン構造の意味がわかり、誤学習を防げる
FA 新人にとっては、PLC 動作構造の基礎を固めるための土台になる。
技術者は破天荒であれ。
この記事が、
必要な人へ。困ってる人に、届きますように。
作者
圓空(えんくう)
https://yenqoo.com/spices/
https://yenqoo.com/monologue/
キーエンスPLCを中心に、
“技術 × 美学 × 遊び心” をテーマにした技術文化を発信しています。