Future Tech Blog
フューチャー開発者ブログ

工場をハックするための基本知識 後編


はじめに

こんにちは、DXチームの栗田です。前回は工場をハックするための基礎知識 前編として、制御系システムがどのような構成になっていて、ハードウェア的に何を気にしなければならないかについて述べました。後編では、制御系としてどのような機器がどのような仕組みで動いているか、それらの機器とどのようなやり取りをする必要があるか、さらにどのようなことに気を付けて実装していかなければならないかについて述べます。

ただし、本記事で「実装する」とはソフトウェア的な作業を指し、ハードウェア的な作業を指しません。つまり、以下で「実装する」という言葉はプログラムコーディング等の行為を指し、電力線を埋設したりカメラを設置したりといった工事等の行為は指さないことにします。

制御系システムの各機器について

前編ではPLCやDCSといった名称だけをあげましたが、それらが具体的にどのような仕組みを持っているのか、どうしてそのようなシステムができてきたのかを理解することは非常に大切です。技術が生まれてきた背景を正しく知ることで、その技術をどのように扱うべきかを理解することができます。最初に、制御系システムの特性によって、2種類の分け方を紹介します。前者はそもそもの制御手法の分類として、後者はプラントにおける制御系システムの役割の分類としてです。

一般的に制御系システム(あるいは制御系)とは、他の機器やシステムを管理し制御するためのシステムを指します。制御系システムは論理制御(逐次制御)とフィードバック制御(線型制御)の2つに大まかに分類されます。細かく分類するとオン/オフ制御やファジ論理制御、さらにはPID制御や比例制御などがありますが、それらの詳細については触れません。

続いて、制御の特性として、電気系制御システムと計装系制御システムに分類されます。プラントにおいて必要な信号を送る動力源の役割を担うものを電気系制御システムといい、一方で各部の状態を検知し統括して制御する中枢の役割を担うのが計装制御系システムといいます。

以降では前者の具体的な制御手法の仕組みの話はせず、後者の各制御系システムについてどのようなものがあるかを紹介していきます。

電気系制御システム

工場内の電気系システムというと、

  1. エネルギーとしての電気を受電・変圧し、各設備に供給し
  2. 更にON/OFF信号によって電動機を動かす

を行います。前者について、工場内の電源供給は各設備取り付けを担う部隊が担当したり、適切な物理接点を設けて電源のやり取りしたり様々なケースがあります。電源供給については今回は触れず1、後者のON/OFF信号を生成する仕組みについて触れていきます。

リレー

リレー(継電器, relay)は、外部から電気信号を受け取り、電気回路のオン/オフや切り替えを行う部品およびその総称です。部品内部に物理的な接点を持つかでスイッチのような有接点リレー(メカニカルリレー)と無接点リレー(MOS FETリレーなど)に分けられますが、後者は半導体や電子部品で構成されます。工場では主に前者のメカニカルリレーが使われ、後者は電子機器等で用いられます。

メカニカルリレーの場合、物理的な接点があるためわかりやすいです。

メカニカルリレーにも複数の種類があり、例えば灯りを点けるスイッチもリレーの一種です。他にはマグネットコンダクタ(電磁継電器, Magnet Conductor; MC)などがあり、MCは内部にコイルと鉄心が入った構成になります。外部から電流が流れることにより内部のコイルが電磁石化し、鉄心が動いて電気回路の接点が開く or 閉まる動作を取ります。

メカニカルリレーは、物理的接点を持つため稼働時に音が鳴ります。工場の電気室など、カチャカチャ動作音が鳴っており、初めて入られた際は驚くかもしれません。なお、リレーはタイマー機能を持つものもあり、いくらか遅延時間を設けることもできます。

PLC

リレーは簡単に制御回路を組める一方で、動作の変更にはハードウェアの変更が伴います。その点、ソフトウェア的に動作の変更を行えるのがPLCです。PLCはProgrammable Logic Controllerのことで、リレー装置の代替として開発された制御装置です。一般的にシーケンサ2とも呼ばれ、工場の機器の制御などに使われる他、身近な設備の制御にも使われています。PLCはソフトウェア的な制御をしますが、IT技術者の領域ではなく、電気技術者の領域に属する制御装置です。いわゆる一般的なPCのように、CPUや電源やI/Oモジュールの組み合わせによって成り立ち、各種拡張モジュールを追加し、様々な機能を付与することができます。なお、IT技術者が最も気になるだろうことを最初に書きますが、PLCにはLANケーブル用のモジュールがあり3、TCP/IP通信を行うことができます4

PLCの入出力は基本デジタルであり、各種機器と通信を行います。リミットスイッチ(Limit Switch; LS)5のような1 or 0で表現されるものはわかりやすいですが、レベル計6などの数値情報は、例えば必要bit分のI/Oを確保して演算します。電流あるいは電圧入出力を行い、特定の閾値でON/OFFが判定されます7。また、PLCがアナログ入出力を扱う方法もあります。その際は、ADC/DAC8機能を持ったI/Oモジュールを使用します。

PLC自体は、ラダー言語というリレー回路を模した言語で実装します。ラダー言語はリレー回路を記号化した表記で実装でき、Xで示される入力とYで示される出力、そしてMで表現される内部リレーによって構築される論理回路です。ラダー言語の特徴は、スキャンという概念です。ラダー言語は記述された内容を反復的に実行しますが、「ラダーは記述した順にしか処理をしない」というような特徴があります。つまり、C言語などの多くのプログラム言語で見られれる「先に関数を定義してあとからその関数をコールする」という処理ができず、上から順番に処理を実行する9しかありません。そして上から順番に処理を実行するという特性上、ラダー言語の記述量や処理が重くなると、スキャンタイム10は大きくなるという特徴があります。

IT技術者からするとクセが強く見えるかも知れないラダー言語ですが、前述のようにリレー回路を図式化されており、かつ記述された順番でしか処理が実行されないというシーケンシャルな特徴があります。いくらか慣れが必要ですが、紙面上に印刷することによって比較的処理を追いやすいこともあります。

なぜPLCやリレー回路がなくならないか

物理的なIN/OUTを受け入れるだとか、ソフトウェア的な操作が可能化などの観点で使い分けることができます。以下に、大まかな特性をまとめます。

制御方法 長所 弱点 特徴
リレー スイッチ(MCなど)やタイマー ・規模が小さければ安価に構築可
・テスターで保守メンテ可
・物理的に電流を遮断可
・物理接点があるため開閉回数に寿命がある
・動作の変更にハード変更が伴い大変
ブレーカあるいはモーターの制御など大きな電流が流れるような回路を操作するときに使える
PLC ラダー言語 ・無接点なので接点による寿命がない
・メモリ上に実装される内部リレーをつかうため入出力点数が増えない
・タイミング管理が比較的簡易
・メンテナンスに専用ツールやソフトが必要
・大規模あるいは高度なアルゴリズムの実装には不向き
現場制御機器のON/OFFなどリアルタイム制御が求められる場面で使える
PC ソフトウェア ・OSと各種ライブラリによって複雑な制御が可能
・安価に高性能なハードを調達可能
・割り込みがありリアルタイム制御に難
・I/FがPLCほど豊富ではない
実績管理や制御指令を行い人間が直接操作をするような場所に使える

昨今のPCは非常に強力な演算能力と豊富な拡張モジュールを要していますが、特にリレーといったハードウェア的に制御が可能な機器が根絶されることは難しいと考えます。その際たる理由として、2つ挙げます。一つは、ソフトウェア的な処理は電気的なノイズに弱いことです。例えば、地球には宇宙から飛来した荷電粒子が大気圏に突入した際に生じるミューオンなどの荷電粒子が地上に降り注いでいますが、電荷を持った粒子がメモリなどの素子を通過するとそこにエネルギーを落とすことで、メモリを反転させるなど素子の状態に影響を与えます11。これが例えば発電所の主電源のON/OFF制御などで発生してしまうと、大変な事故に繋がります。なので、重要な設備などには極力シンプルなハードウェアが好まれます。もう一つは、重要な設備に対しては機械的な制御が不可欠なことです。例えば、工場内のモーターに大電力を供給するケーブルが短絡(ショート)したとすると、そこに大電流が流れ込みます。工場に引き込んでいる電力は決まっているので、突然一箇所で大量の電力が消費されてしまった場合、他の機器を動かす電力が足りなくなります。こういったときに確実かつ即座に短絡(ショート)した部分のブレーカーを操作して、切り離す必要があります。これも確実にハードウェアを動かす必要があります。

PLCについても、リアルタイム性や拡張性を考えるとPCに勝る部分は多くあります。そのため、これらの機器は今後も互いの領分を侵食するのではなく、補い合う形で制御系を支えていく必要があります。

計装系制御システム

計装とは「計測器を装備すること」を指します。工場の中では多くの機械が稼働しており、これらの機械が安全に動作しているかを確認するために各種計測器(センサ)を設置する必要があります。それらセンサから情報を取得し、監視あるいは適切な制御を行うことが計装制御の役割です。

工場における計装制御は、1970年頃までは監視盤にシングルループコントローラ12が並んだパネル計装制御が主でした。一方、1970年中頃から、計装メーカの開発したDCS(後述)が採用されるようになっていきました。。

DCS

DCS(Distributed Control System)は、監視・フィードバック制御・シーケンス制御などの機能を持つ計測制御用のシステムです。従来は個別のシングルループコントローラが横に並んだ構成だったのに対し、DCSはモニタによる監視と機能ごとに演算処理(CPU)を分割されました。つまり、DCSは何らかの特徴を持った機器を指すのではなく、計装制御という目的を達成するために複数の機器が組み合わさってできたシステムの総称を指します。

制御系開発と工場のIT化

Web系や基幹系あるいは情報系の開発をしてきた方だと、例えばエッジにあった制御機構をクラウドに移管し、遠隔であらゆる操作ができるようにしたいと考えるかも知れません。確かに、技術的には可能ではありますが、それ以外の理由で実施すべきではないケースがあります。ここでは、工場にIT化をする上で気にすべき要素をいくつか述べていきます。

機械安全

機械設備による労働災害は依然として存在し、特に製造業における死傷災害全体の約4割13とされます。これは機械のエネルギーが非常に大きいことから、挟まれ・巻き込まれなどによって身体の欠損や死亡災害が至りやすいためです。製造業用の機械であればその使用状況は予め想定可能なので、設計段階でリスクアセスメント14を実施し、使用者が極力安全に仕事ができるような取り組みを行うことができます。

機械安全の3原則

機械の安全化をすすめる上での大前提は、以下の3つです。

  1. 人はミスをする
  2. 機械は故障する
  3. 絶対安全は存在しない

この文言自体はIT技術者にも納得行くものだと考えますが、これと合わせて、機械災害を確実に防止するために、機械安全の原則があります。

  1. 本質安全の原則: 危険要素(危険源)を除去、あるいは人に危害を与えない程度にします。角を丸くしたり、機械のパワーを小さくしたりします。
  2. 隔離の原則: 人が機械の危険源に接触できないようにします。例えば、(人の指も通らないような網目の)柵でガードを設ける方法などがあります。
  3. 停止の原則: 機械が止まっていれば危険ではなくなるので、「隔離の原則」で隔離された機械の動作範囲に入る場合は、インターロックなどで機械を停止させてから入場を許可するようにします。このとき、ブレーカーに修理札15をかけるなどして動力源自体を確実に切るようにしますが、油圧を使っている設備の場合は注意が必要です。油圧の場合、動力源(実際は電力を供給するブレーカー)を落としたとしても、ゆっくりと油圧によって設備が動作することがあります。そのため、停止させたと思った設備が気づいたら迫っていて挟まれる、などということがあるため、注意が必要です。

上記の前提があるため、工場の制御系システムの開発者は、想定外の操作に対しては必ず安全な結果をもたらす(ex.インターロックにかかって動かない、など)システムを構築しようとします。こういったシステムを、新たにクラウドから操作することを考えます。

なお、余談ではありますが、運転中あるいは停止中を意味するランプの色ですが、これ一つとっても工場によっては意味が異なります。ある工場では「赤は危険を意味する色だから運転中、緑は安全を意味する色だから停止中」で使われますが、別の工場では「緑は安定動作を意味する色だから運転中、赤は異常を意味する色だから停止中」で使われていることもあるので注意が必要です。

セキュリティ

これまで何度か述べたように、従来の工場の制御系はセキュリティ的に非常に弱いケースがあります。特にNWを独立させることを前提にリアルタイム制御を目的としてウイルス対策ソフトやファイアウォールを犠牲にしていることもありますので、一度攻撃を受けると非常に弱い場合があります。そのため、工場IoTの名のもとに制御系のPCを他のNWと接続する場合、接続点に別途ファイアウォールを設けて特定の通信のみを許容するようにしたり、極端なことを言うと必要のないUSBポートをすべて埋めたりなどの対応が必要になります16。仮に制御系PCにウイルス対策ソフトを入れたとしても、今度は制御システムがアクセスしたいファイルが、ファイルスキャンによってロックされたままになりリアルタイム制御に影響が出るなどがあります。使用する目的と状況に応じて、ソフトウェア・ハードウェアの両面で対策をする必要があります。

まとめ

ここまで読んで頂いた皆様の中には、IT分野において豊富な知識と熟練のスキルを併せ持った方もいるかと思います。そんな方こそ、工場制御系にはこれまで相手にしてきたのとは異なるシステムが導入されており、それが電気系技術者たちによってどのように構築されてきたのかを知っていただきたいです。両者が融合することで、真の工場のIT化が行えると考えます。

参考


関連記事:

  • 第1回社内ロボコン開催記-ライントレーサー編-
  • ソフトとハードの垣根を越えろ - IoTハードウェアの開発をソフト屋視点で解説します
  • Future IoTのstackshareを公開しました
  • 3Dプリンタを使ってサービス開発やってみた

    1. 1.電源供給について詳細に記述すると、トランス(変圧器)の仕組みから、保護継電器(※後述)や遮断器、はたまた高電圧における送電ロスについて述べることができますが、ここでは触れません。ちなみに、保護継電器についてですが、電気系統上同じ電源を持つ設備のうち、一つが暴走あるいは地絡(ショート)などした場合、爆発的に電力が流れ込むことがあります。すると、本来他の電気設備に供給すべき電力まで吸い込んでしまい、結果として健全な設備を電気不足で止めてしまうことになります。これを避けるため、保護継電器という特殊な回路を使って、事故が置きた場所を適切に切り離します。
    2. 2.シーケンサというと三菱電機の製品名ですが、登録商標ではありません。
    3. 3.機器によります。
    4. 4.機器によります。
    5. 5.リミットスイッチは移動する機器などの位置を検出するセンサです。小さなスイッチを内部に持ち、機械操作を受けてオン/オフ情報を出力します。例えばラインの終端にボタンを置いておき、商品が流れてきたときにボタンを押すことで信号を出すような目的で使います。
    6. 6.レベル計は液面等の残量を測るための装置で、具体的には特定の位置から液面までの距離を測るなどの機能を有するセンサです。様々な方式があり、超音波を利用するタイプや、釣りで使われるような"浮き(フロート)"を利用するタイプもあります。
    7. 7.閾値でON/OFFといっても、例えば24VDC(※後述)の入出力を持つPLCの場合、きれいに12VDCでON/OFFが変化されるわけではありません。回路には当然ノイズが生じうるため、それでバタバタON/OFFが切り替わっては大変です。そのため、22VDC以上でON、2VDC以下でOFFとなるようなヒステリシス制御をするなどします。なお、VDCとは直流電圧のことで、工場内で動かすモータなどは三相交流電源などがあり、太い電源が3本まとまって引かれていることもままあります。
    8. 8.ADC = Analog Digital Converterは、アナログ信号をデジタル信号に変換する素子です。DAC = Digital Analog Converterは、デジタル信号をアナログ信号に変換する素子です。
    9. 9.プログラムの例であげると、mainループ内にすべての処理が書いてある形式です。
    10. 10.ラダー言語が一周するのに要する時間です。
    11. 11.回路によって不具合モードが異なり、それによって呼称が異なります。例えば高エネルギー粒子によりメモリやフリップフロップなどの記憶素子の記憶内容が反転すると「Single Event Upset(SEL)」と呼び、LSIに寄生するサイリスタが ON 状態となって大電流が流れ動作不良を起こすと「Single Event Latch up(SEL)」と呼びます。なお、SELとSEUを総称して、Single Event Effect(SEE)と呼ぶこともあります。ちなみに、アップセットとは、記憶あるいは伝達に使用する電荷を反転させることを指します。
    12. 12.工場をはじめ様々な産業施設で利用される、センサーからの測定値を取り込み、その値が指定した範囲内に維持するように制御信号を行うコントローラです。
    13. 13.JISHA機械安全に関するページより引用。
    14. 14.リスクアセスメントは、作業場所にある危険性や有害性を特定し、リスクを見積もり、優先度に応じてリスクの低減措置を行う一連の手順のことを指します。事業者はリスクアセスメントの結果に応じて、適切な労働災害防止対策を施す必要があります。
    15. 15.機械に立ち入る担当者が切断した動力源にかける札です。これは「今〇〇(名前あるいはチーム)が稼働エリアに立ち入って作業をしている」ことを示す札で、この札はかけた本人(あるいは運用次第ではそのチームの責任者)のみが外すことができ、この札が一枚でも動力源にかかっていたら、その動力源を投入してはいけません。
    16. 16.すでにPCが多くの会社で一般的に利用されていて、USBメモリを勝手に指すなどしていけないことは工場で働く方が熟知していたとしても、意外にされがちなのが「スマホを給電するためにパソコンのUSBポートに接続した」というケースです。本人は電源をとっているだけのつもりであっても、精密機械同士が接続されていることに変わりはありません。