Youtubeでも活動中チャンネルはこちら!

ラズパイ・Arduino・PLCの使い分けを、制御未経験者向けに説明してみる

raspberry-pi-arduino-plc-difference-control-eyecatch

[Sponsored]少量ロットでも基板は作れる!

JLCPCB-banner4

 電子工作やIoTの話題でよく登場するRaspberry Pi(ラズパイ)やArduino。
一方で、工場や設備の制御ではPLCが使われています。

 「ラズパイでPLCの代わりができるのでは?」または逆に、「PLCやマイコンがあればラズパイは不要では?」そう思ったことがある人も多いのではないでしょうか。

 結論から言うと、それぞれはまったく別物で、適材適所があります。しかも、この内容でわかりにくくなるのが、どの方法を使ってもとりあえず動作させることは可能な点です。ラズパイの代わりに普通のWindowsPCを使ってもいいですし、PLCの代わりにマイコンボードを使ってもいいのです。

 本記事では、制御の知識の少ない技術者向けに、その違いを整理します。

この記事を読むことでわかること

ラズパイ、Arduino、PLCの使い分けについて理解できる。

自己紹介

東証一部上場企業でサラリーマンしてます。

主に工場(生産現場)で使用する検査装置のアプリケーション開発してます。

ヒトの作業を自動化して簡略化するアプリケーションを日々開発中。

転職に成功して現在は超大手企業で、電気・制御の分野で装置の研究開発をしています。

_/_/_/_/_/Youtubeでも情報発信中!_/_/_/_/_/

本ブログはアフィリエイトを用いた広告を掲載している場合があります。

そもそも何が違うのか?一言で言うと

 まずはざっくり整理します。

それぞれのざっくりな違い
  • ラズパイ:Linuxで動く小型PC
  • Arduino(マイコンボード)決められた処理を正確なタイミングで繰り返す装置
  • PLC:産業用途向けに「止まらない・壊れない」ことを最優先した制御装置

 見た目やできることは似ていても、設計思想がまったく違います。電子工作でPLCがあまり出てこないのは、PLCが産業用途向けに開発されているためですね。

Raspberry Piは「GPIOが付いたPC」である

 ラズパイはLinuxベースで動作する、れっきとしたPCです。OSが一般的に普及しているWindowsやMacとは異なるというだけで、できることは普段お使いのパソコンと似ています。

  • マルチタスク
  • ファイルシステム
  • ネットワーク
  • GUIやPython環境

が使えるのは大きな強みです。

 さらに利点でもあり、ややこしい点でもあるのですが、ラズパイはPCでありながらGPIOピンを持っています。GPIOピンとは、文字通り物理的なピンで、そこの電圧をコントロールすることができます。

GPIOを使えば、

  • LEDの点灯
  • リレーのON/OFF
  • センサ値の取得

 など、電子機器を直接制御できてしまいます。このため、「電子機器を制御できるなら、マイコンやPLCと同じでは?」と感じる人が多いのも自然です。

 しかし重要なのは、【GPIOが使えることと、制御に向いていることは別】という点です。

GPIOは「触れる」だけで「保証」はない

 ラズパイのGPIOは、Linux上のソフトウェアから操作されます。つまり、

  • 他に処理の重いアプリが動いている。
  • OSの内部処理が走る。
  • ネットワークやファイル処理が実行される。

 といった影響を少なからず受けます。

 その結果、制御と直接関係ない要因によって、

  • GPIOからの出力が遅れる。
  • センサーの入力を取りこぼす。
  • タイミングが毎回微妙にズレる。

 といったことが普通に起こりえます。困るのが、必ず発生するとも限らないところです。制御と直接関係ない要因によって発生するためですね。

 LEDを光らせる程度であれば問題ありませんが、

  • 決まった周期で必ず制御する
  • タイミングのズレが不具合になる

 といった用途では、大きな問題になります。LinuxはリアルタイムOSではないため、処理タイミングは保証されないのです。

Arduino(マイコンボード)が得意なこと

 Arduinoなどのマイコンは、OSがないか非常に軽量です。

 そのため、

  • 処理のタイミングが予測できる
  • 割り込みに即座に反応できる
  • 電源ONですぐに動く

 という特徴があります。

 例えば、

  • 一定周期で正確に信号を出す
  • モーター制御を安定して行う
  • センサ入力を確実に処理する

 といった「時間にシビアな処理」は、ラズパイよりもはるかに得意です。

 ただし、

  • 電圧は3.3Vや5V
  • ノイズに弱い
  • 基本的に試作や組み込み用途

 という制約があります。後ほどPLCの特徴についてご説明しますが、上記の弱点を補ったのがPLCです。

PLCは「産業用としての完成形」

 PLCは産業用途専用に設計されています。

 特徴は以下の通りです。

  • 24V I/Oでノイズに強い
  • 高い耐環境性(温度・振動・電気ノイズ)
  • 決まった周期(スキャンタイム)で必ず実行される制御
  • 長期間止まらずに動く前提

 そして最も重要なのは、【止まったら困る、ではなく「止まってはいけない」世界で使われる】という点です。

 そのためPLCは、

  • 自由度よりも確実性
  • 処理速度よりも再現性
  • 開発効率よりも保守性

 が重視されます。

典型的な構成例:ラズパイは「操作画面」、制御は別に任せる

 ラズパイが最も力を発揮するのは、GUIで操作できる制御システムの入口として使う構成です。GUIとは、Graphical User Interfaceの略で、アプリの画面上のボタンや表示を使って、人間が操作できる仕組みのことです。

構成イメージ

[ 人 ]
  ↓ マウス・タッチ
[ Raspberry Pi ]
  ・GUI(ボタン、表示)
  ・処理ロジック
  ・通信(USB / UART / Ethernet)
        ↓
[ マイコン or PLC ]
  ・リアルタイム制御
  ・I/O制御(センサ、モーター、バルブなど)

ラズパイの役割

 ラズパイは、人が操作する部分を担当します。

  • GUIでボタンやスイッチを作る
  • 状態を画面で見やすく表示する
  • センサ値をグラフ化する
  • ネットワーク経由でデータを送る

 例えば、

  • 「スタート」ボタンを押す
  • 現在の状態を画面に表示する
  • エラー内容を表示する

 といった「人とシステムの接点」はラズパイが得意です。

制御はマイコン・PLCに任せる

 一方で、

  • モーター制御
  • タイミング制御
  • センサの確実な読み取り
  • 安全に関わる処理

 はマイコンやPLCに任せます。

 ラズパイは、

  • 「開始して」
  • 「この値で動いて」

 といった指示だけを送ります。

なぜこの構成が良いのか

 この分離には明確なメリットがあります。

  • ラズパイが止まっても制御は継続できる
  • GUIの不具合が事故につながりにくい
  • トラブルの切り分けがしやすい
  • システムが拡張しやすい

 つまり、「考える・見せるのがラズパイ。正確に動かすのがマイコンやPLC」という役割分担です。

ラズパイ単体制御との違い

 ラズパイ単体でGPIOを使って、

  • ボタン → GPIO ON
  • リレー制御

 といった構成も可能です。しかしこの方法は、

  • 実験
  • 学習
  • 小規模な用途

 には適していますが、

  • リアルタイム性の不足
  • 不具合の切り分けの難しさ
  • 将来拡張のしにくさ

 といった課題があります。つまり、先ほどの構成例のようにArduinoやPLCを使用せずとも、ラズパイ単体でも、形だけは動作可能なのです。

どう使い分けるべきか

用途別に整理すると次の通りです。

ラズパイ

  • GUI
  • データ処理
  • 可視化
  • 通信・連携

Arduino(マイコン)

  • センサ制御
  • モーター制御
  • タイミングが重要な処理
  • 組み込み用途

PLC

  • 工場設備
  • 安全が関わる制御
  • 長期安定稼働
  • 保守前提のシステム

重要なのは、何をどう制御するのか?止まったらどうなるのか?を考えることです。

今回のまとめ:適材適所が○

 ラズパイ、Arduino、PLCはどれが一番優れているかの議論はできません。それぞれが、違う前提と責任のもとで設計されています。やりたいシチュエーションによって、適材適所で選択することが重要です。もちろんラズパイとArduinoを組み合わせるなど、長所で短所を補う使い方もアリです。

 最も大事なのは、それぞれの特性を理解したうえで、適材適所で使用することです。

今回のまとめ
  • ラズパイはGUIやデータ処理に使う。
  • Arduinoは試作レベルのリアルタイム制御に使う。
  • PLCは産業用の安定性を重視するリアルタイム制御に使う。