プログラマブルロジックコントローラ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラマブルロジックコントローラ(programmable logic controller、PLC)は、リレー回路の代替装置として開発された制御装置である。プログラマブルコントローラとも。 工場の機械の制御などに使われるほか、エレベータや自動ドア、テーマパークの各種アトラクションなど身近な機械にもごく普通に使われている。 一般的にシーケンサとも呼ばれるが、PLCの意味でいう「シーケンサ」という単語は三菱電機の登録商標である。
目次 |
[編集] 概要
プログラマブルコントローラは、リレー回路の代替装置として開発された制御装置である。工場などで使われる機械制御に使われるほか、エレベータや自動ドアなど身近な機械にもごく普通に使われている。照明やボイラーの制御にも使われるので、一般家庭にもあるだろう。 PLCは小型のコンピュータの一種で、中枢にはコンピュータと同じようにマイクロプロセッサが使われるが、PLCの動作の仕方は普通のコンピュータとは全く異なり、ステートマシンを動作モデルとしている。ソフトで動作するのはコンピュータと同じだが、原理的にバグが発生しにくく、どのようなインプットに対しても何らかのアウトプットが得られるようになっている。
PLCは巨大な機械装置や人を運ぶ装置を制御することが多いため、極めて高い安全性と安定性が求められる。そのためハードディスクや光ディスクなどはほとんど使われない。 PLCのデータの保存には通常メモリが使われている。以前はバッテリーバックアップされたメモリに格納されることが多かったが、最近では電源を必要としないフラッシュメモリが使われる。
またPLCの特徴に豊富な入出力があり、各種デバイスを簡単につなげることができる。PLCの取り扱いは情報技術の分野でなく、どちらかというと電気工事士などの電気技術者の領域である。
[編集] PLCのしくみ
PLCはステートマシン
PLCは小型のコンピュータの一種で、中枢にはコンピュータと同じようにマイクロプロセッサが使われるが、PLCの動作の仕方は普通のコンピュータとは全く異なる。 通常のコンピュータがチューリングマシンを原型とするノイマン型の動作モデルを採用しているのに対して、PLCはリレー回路を原型とするステートマシンを動作モデルとしている。 したがってPLCのプログラムは、リレー回路を記号化したプログラミング言語が使われる。そのプログラムはリレー回路を模した図に変換することが可能である。その図をラダー図と言う。 ソフトで動作する点はPLCもコンピュータも同じだが、PLCは原理的にバグが発生しにくく、どのようなインプットに対しても何らかのアウトプットが得られるようになっている。
PLCのプログラムは電気回路を記号化したものなので、通常のコンピュータプログラマが作成することはできない。PLCのプログラミングは特別な知識を持った電気技術者の分野となる。 PLCはきわめて高い安全性、安定性が求められるためハードディスクなどはほとんど使われない。 プログラムは最近ではバッテリーを使わないフラッシュメモリが使われる。以前はバッテリーバックアップされたメモリに格納されることが多かった。バブルメモリという電磁ノイズに強い特殊なメモリも使われる。 実際のリレー回路と異なる点としては、PLCは前回値と今回値を使用出来る事である。 リレー回路は電流が流れるだけなので前回値は存在しない。 この事からPLCにしかパルス(PLS)は発生しない。
豊富な入出力
PLCのもうひとつの大きな特徴として、豊富な入出力機能があげられる。入力側はリミットスイッチ(移動する装置や架台の位置を検出するセンサ)、センサ、温度計、複雑な位置決めシステムから得られる位置情報などを読み込む。場合によってはマシンビジョンも使用する。出力側はモーター、空気シリンダー、液圧シリンダー、振動版、リレー、ソレノイドを駆動する。入出力機構は内蔵されており、大規模な制御をする場合はPLC同士をネットワークでつなぎ、I/Oモジュールを接続して使用する。 拡張モジュールの使用に当たって、パソコンのようにドライバをインストールする必要は無い。電気ブロックのような感じで機能を付け加えることができる。
元々はリレー回路
PLC は、従来の自動化システムで使われていた数百・数千のリレーやカムタイマー(メカニカルタイマー)を置き換える安価な代替品として発明されたものである。PLCひとつで数千のリレーを置き換えるようプログラムすることができる。初めに登場した時期は主に自動車産業の工場で使われ、生産設備の制御盤の配線を変更する代わりにPLCのソフトウェアの変更でモデルチェンジに対応できるようにした。
ソフトはラダー
一般的なPLCはソフトウェアとしてラダー論理というものを使う。ラダー論理というものはリレー回路を記号化したもので、「ラダー図」という梯子のような図形で表す。電気技術者は回路図の問題を解くようにラダー論理を使い、PLCのプログラムを図面で扱うことができる。この方法が選ばれた理由は安全性を重視するためである。
現在では一般のコンピュータと差の少ないPLCも使われるようになった。IEC_61131-3 標準規格によれば、PLCを構造化プログラミング言語(ST言語)でプログラムすることもできるし、論理基本操作でプログラムすることもできる。シーケンシャル・ファンクション・チャート(SFC言語)と呼ばれるグラフィカルなプログラミング表記法を用いることができるプログラマブルコントローラもある。
しかしプログラムが複雑になると安全性が損なわれるため、一般的にはラダー図で組める程度のプログラムを使うのが普通である。
[編集] デジタル信号とアナログ信号
PLCで扱う信号はデジタル信号である。
デジタル(または離散)信号とは単純に ON と OFF (1 と 0、真と偽)の信号だけである。押しボタン、リミットスイッチ、光スイッチなどがデジタル信号を発生するデバイスである。デジタル信号は電圧か電流で判断され、ある閾値でONかOFFかが決定される。例えば 24VDC の入出力を持つPLCでは、22VDC以上をONと判断し、2VDC以下をOFFと判断する。電流入力の方が電圧入力よりも電気的ノイズに強い。
アナログ信号はボリューム制御のようなものであり、一般にゼロからある最大値までの値を示す。アナログ信号には電圧や電流が使われる。アナログ信号はADコンバータなど呼ばれるPLCのI/Oモジュールによって整数値に変換されPLCに取り込まれる。逆にデジタル信号をアナログ信号に変換するモジュールをDAコンバータなどという。
アナログ信号は連続した無限個の数値だが、デジタル信号は有限個の数値しか使えない。 そのため、アナログ信号の取込み範囲と精度は、デバイス側の精度とPLC側の信号線の割当てのバランスで決定される。 例えば、0~24VDCの範囲のアナログ信号があり、PLCで8本の信号線がこの入力に割り当てられたとすると、0Vはデジタルで0、24Vはデジタルで255となるだろう。精度は24/255となり約0.1V以下の変化は無視される。 25VDCの入力があった場合にどう解釈されるかはPLCに依存する(24Vのままだったり、エラーとして処理したりする)。
[編集] 例:デジタルとアナログ
例としてタンクに水を入れる装置を考えてみよう。タンク内の水は別のシステムが必要に応じてくみ上げて使用する。ここで注目するシステムはタンク内の水を一定量に保つシステムである。
デジタル信号だけを使った場合、PLCは、入力としてタンクが空かどうかを示すスイッチと満タンかどうかを示すスイッチを持つ。また、出力としてはタンクに水を入れるバルブを開閉する出力信号をひとつ必要とする。
どちらのスイッチもOFFか「タンクが空」のスイッチだけがONの場合、PLCはバルブを開けて水を入れる。「タンクが満タン」のスイッチだけがONになったらバルブを閉じる。両方のスイッチがONになったら、スイッチの少なくとも一方が故障したと判断できる。満タンかどうかのスイッチだけで判断しないのは、少しずつ水を使うような状況でスイッチがひとつだけだと頻繁にバルブの開閉が行われて機械が消耗するのを避けるためである(そのような状態をフラッターと呼ぶ)。
アナログシステムではタンクの重さを測定する重量計と流量を制御できるバルブを使う。PLCは PID フィードバックループ(後述)を使ってバルブを制御する。重量計はPLCのアナログ入力に接続され、バルブはPLCのアナログ出力に接続される。このシステムではタンク内の水量が少ないほどバルブを大きく開けて素早く水を満タンにしようとする。水量が素早く減っている場合、バルブも大きく開けられる。ほんの少しだけ水が使われている場合、バルブは少しだけ開けられ、ゆっくりとタンクに水を入れる。
このシステムでバルブのフラッター状態を防ぐために、こういった制御装置では不感帯(デッドバンド)が設けられる。つまり、水の減り具合の変化がある閾値より下ならバルブを開閉しないようにする。そうすることでバルブの動作が最適化され、消耗を防ぐことができる。
実際のシステムは両方を結合して使用するかもしれない。デジタル信号を水があふれるのを防ぐために使用し、水量をなるべく一定に保つためにアナログ信号を使う。さらにバックアップや保守状態を考慮することで実際のシステムは複雑化していく。
[編集] PLC の形態による I/O 能力:モジュール、ラック、P2P
モジュール型のPLCは組み込まれる入出力の数が限られている。一般に、基本モデルの入出力数で足りなければ拡張機構を使う。
ラック型のPLCはプロセッサモジュールと分離したI/Oモジュールになっていることが多い。場合によってはI/Oモジュールが多数のラックから構成されることもある。その場合、数千の(離散あるいはアナログの)入出力を持つ。プロセッサとI/Oモジュールの間は高速シリアルリンクで接続されるので、離れていてもよく、大規模工場で配線コストを低減させるのに役立つ。
さらに大規模な入出力システムが必要な場合、プロセッサ間をP2Pの通信システムで接続する。これにより、大きなシステムを分割して制御し、かつ全体として通信して協調動作させることができる。この通信リンクはマンマシンインターフェイス機器(キーパッドやPC)を接続するのにも使用可能である。
一般に入力数は出力数の三倍必要といわれている。センサーなどの故障に備えて入力を冗長化することが多いためである。
[編集] プログラミング
PLCのプログラムはパーソナルコンピュータ上の特別なアプリケーションで作成し、PLCにダウンロードする。単純なものは現場で作ることも多い。以前はプログラム専用のハードウェアを使用していたがノートパソコン等の発達によりほとんど見られなくなった。プログラムはPLC毎にバッテリーバックアップされたRAMや不揮発性のメモリ(フラッシュメモリ)に格納される。
初期のPLCは電気技術者が使うことを想定して設計され、彼らは業務で使用するうちにPLCのプログラミングを学んだ。それらのPLCはラダー論理でプログラムされ、ラダー論理とはリレー回路の配線に対応するようになっていた。最近のPLCはラダー論理だけでなくBASICやC言語を使ってプログラムすることもできる。また、状態遷移図に基づいてPLCのプログラミングをする方式もある。ただし、高級言語であまり複雑なプログラムを組むと、PLCと言えどもエラーを起こすことがあるので、ラダー図以外のプログラムが使われることは少ない。
最近では、国際標準規格 IEC 61131-3 が一般的になっている。それによると、5種類のプログラミング言語が定義されている。FBD(機能ブロック図)・LD(ラダー図)・ST(構造化テキスト、Pascal型の言語)・IL(命令リスト)そしてSFC(Sequential Function Chart;シーケンシャル・ファンクション・チャート)である。これらの技法は処理の論理構成を明確にするものである。
[編集] PID ループ
PLC には単一変数汎用工業フィードバックループ、つまりPIDコントローラ(比例(proportional), 積分(integral), 微分(derivative)ループ)が含まれることもある。 PIDループは工業プロセス制御では一般的な方式である。PIDループは水泳用プールのpH値の制御にも使われる。
[編集] ユーザーインターフェイス
PLC は場合によっては、設定変更や警報表示や定時制御のために人間とやりとりする必要がある。マンマシンインターフェイスがそのために使われる。単純なシステムではボタンとライトでやりとりする。テキスト表示やグラフィック表示の可能なタッチスクリーンも使われることが多い。最新のPLCではネットワーク経由で他のシステム(例えば、SCADAシステムやWebブラウザが動作しているコンピュータ)とやりとりすることができる。
[編集] 歴史
PLC はアメリカ自動車産業での必要性から開発されたものである。PLC が登場する以前、自動車製造における制御回路、シーケンス回路、連動回路はリレーやタイマーや独立した閉ループ・コントローラを使って構成されていた。そのような装置を毎年のようにあるモデルチェンジの度に変更・修正するのは非常に時間と手間のかかるプロセスである。というのもリレー回路の配線を変更するのは熟練した技術者でなければ出来なかったからである。1968年、ゼネラルモータースのオートマチックトランスミッション製造部門(Hydramatic)はリレーシステムを電子的に置換するための要求仕様を作成した。
契約を取り付けたのはマサチューセッツ州ベッドフォードのBedford Associates社である。最初のPLCは、Bedford Associates社の84番目のプロジェクトであったため、「084」と名づけられた。Bedford Associates社はPLCの開発・製造・販売・保守を行うModicon社を設立した。
[編集] 関連項目
- 論理回路
- シーケンス制御
- 組み込みシステム
- ファクトリーオートメーション FA
- 電気機器組立て技能士 - PLCのプログラミング技能等を証明する国家資格