PLC(プログラマブルロジックコントローラ, シーケンサ)

PLC (プログラマブルロジックコントローラ, Programmable Logic Controller)は、生産設備などの大規模な設備を始め、エレベータ、自動ドア、遊園地のアトラクションなど身近な設備でも利用される制御装置です。特に制御装置としてみた場合、PLCは、複数の入出力装置(スイッチやセンサ、モーターやソレノイド、ランプなど)と接続し、意図通りの動作を実現するために利用される点に特徴があります。また、生産設備で利用される背景には、耐環境性、メンテナンス性、安定性、大量の入出力機器の接続への対応など、生産設備に必要な要件を満足することを前提に、開発された装置であることが挙げられます。近年、生産現場のデジタル化ニーズが拡大していますが、PLCはその一端としても重要な役割を担っています。

PLC (プログラマブルロジックコントローラー)

PLC (プログラマブルロジックコントローラー)

なぜPLCを使うのか

世の中には様々な制御装置があります。ここでは、まずPLCの歴史について解説を行い、次に、PLCとそれ以外の制御装置(マイコン、FPGA、産業用PC)を比較しながら、マイコン、FPGA、産業用PCの特徴を踏まえてPLC を使うメリットとデメリットについて解説いたします。

装置 特徴

マイコン

安価なCPUを搭載した用途特化型の制御装置

FPGA

ユーザが構成をプログラムできる集積回路

産業用PC

産業用装置への接続性や信頼性を兼ね備えたPC

PLC(シーケンサ)

多数I/Oや装置への接続インターフェスを兼ね備えた制御装置

表1. 各制御装置の特徴概要

PLCの歴史とリレーシーケンス

まず、リレーシーケンスとは

リレーシーケンスは、PLCと同様、従来生産設備等で利用されてきた制御方式の一つです。PLCは元々リレーシーケンス回路を代替する装置として開発され、現在ではそのほとんどがPLCに置き換えられています。リレーシーケンスは、メカニカルリレーと呼ばれる電磁コイルを使ったスイッチを複数組み合わせることで実現しますが、複雑なシーケンスの実現には多数のリレーが必要です。シーケンス制御用途でのメカニカルリレーはPLCに代替されましたが、メカニカルリレー自体は高絶縁、高耐圧などの特性が知られており、リレーシーケンス以外の用途では現在も幅広く利用されています。

リレーシーケンスから PLCへの移行:

メカニカルリレーを使ったリレーシーケンスは、複雑な制御を実現するために高度な設計知識を必要とするほか、制御を変更するためには配線の組み換えの手間も少なくありません。コンピュータが登場し普及するなか、プログラムを使った制御装置(PLCの始まり)への代替が検討され、代替装置として普及してきたのがPLCです。

PLCはソフトウェアを用いて制御を実現するため、1台で複雑な処理を一手に担うことができ、かつ組み換えが簡単である点がメリットと言えます。またメカに馴染みのあるエンジニアにとって、抵抗が少ないようにメカニカルリレーをつなげたようなグラフィカルなプログラミング言語(ラダー言語)を利用しているのにもこの代替の歴史が関係しています

メカニカルリレー

メカニカルリレー

PLCとマイコンの用途の比較:

マイコン(マイクロコントローラ)とその制御の特徴:

プログラムを搭載可能な制御装置としてよく知られているものに、マイコンがあります。マイコンはCPUや周辺回路などから構成され、一般にはマイコン単体ではなく、装置に組み込まれて利用されるため、組み込みマイコンと呼ばれるケースもあります。マイコンが担う制御の特徴としては、簡易な処理から、高度な処理まで、幅広い領域をカバーできるということがいえます。PLCと比較する場合、大きくソフトウェアの観点と、ハードウェアの観点があるため、それぞれ分けて見ていきます。

<ソフトウェア観点>
マイコンの特徴を踏まえたPLCを使うメリットとデメリット:

PLCのソフトウェア開発では、IEC61131-3に規定されたPLC言語が一般的に用いられます。国内ではその中でもラダー言語の利用が浸透しており、元々リレーシーケンスで実現されていた処理の記述は、ラダー言語ではそのままプログラミングが可能なため、プログラミングに馴染みのないエンジニアにとっても動作のイメージがしやすい特徴があります。これはメンテナンス上も一つのメリットであると考えられています。

一方で、PLC言語は大規模なプログラミングにはやや不向きな点はデメリットと言えます。また、PLC言語は大学や高専などで学習する言語に含まれないため、C言語などと比較すると習得しているエンジニアが少ない点で、開発上デメリットとなることがあります。最近ではC言語に対応したPLCも登場していますが、高性能な反面、価格帯はやや高めに設定されています。

<ハードウェア観点>
マイコンの特徴を踏まえたPLCを使うメリットとデメリット:

PLCは通常、ユニットとよばれる単位で、I/O(Input/Output、入出力)の選択・拡張が可能で、つなげたい周辺機器に応じてユニットを選択して利用します。またPLCは制御盤のキャビネット内に設置されるのが一般的です。このようにPLCはある程度想定された用途に特化して、周辺機器とのI/Oや耐環境性能などをあらかじめ備えている点がマイコンとの大きな違いであり、またメリットであるといえます。

マイコンは、耐環境性能などは個別に考慮が必要ですが、周辺回路と組み合わせて自由にスペースや配線を設計できる柔軟性に優れています。一方でPLCは形状や利用できるユニットに制約が生じる点がデメリットであると言えます。

マイコン

マイコン

PLCとFPGAの用途の比較:

FPGAとその制御の特徴:

FPGA (Field Programmable Gate Array)とは、設計者が論理回路の構成をプログラムできるゲート(論理回路)を集積したデバイスです。昨今の低価格化にともない、制御の用途でもマイコンと比較され、一部の高速制御ではマイコンの代替として利用されるケースも出てきています。このことからもわかるように、制御という観点でPLCと比較した場合のFPGAの特徴は、PLCと比較した場合のマイコンの特徴に類似しています。

FPGAの特徴を踏まえたPLC を使うメリットとデメリット:

制御用途では通常マイコンが幅広く利用されており、FPGAが利用されるケースは一部の高速処理に限定されています。PLCでは高速処理の必要なモーション制御において、モーション制御用の特殊ユニット等を提供している場合があり、ユニットの選定次第で、高速処理を含めた幅広いアプリケーションに対応できる点はPLCのメリットと言えるでしょう。

一方で、FPGAは高速処理に特化しているため、制御に関連する領域では、A/D変換や、PWM(特定の矩形波パルスを使用して電気機器への電力を効率よく制御するための一般的な技術)生成などの高速処理を柔軟に組み替えて利用したい場合に強みがあります。PLCの出力ユニットにもFPGA搭載のユニットが利用されるケースがありますので単純な比較はできませんが、PLC搭載のFPGAは通常FPGAの利用用途を限定して搭載されているため、柔軟性には制約があります。

FPGA

FPGA

PLCと産業用PCの用途の比較:

産業用PCとその制御の特徴:

産業用PCは民生用PCと区別して、特にPLC等と同様、生産設備向けに利用されるPCとして製造販売されています。産業用PCはPLC同様にFAのメーカーにて開発・販売されており、耐環境性、長期安定供給、などに特徴があります。名称の通りPCとして利用されますので、一般にはデータ収集・解析・可視化の用途が多く、制御向けに利用されるケースはあまり多くありません。

産業用PCの特徴を踏まえたPLC を使うメリットとデメリット:

生産設備などの、長期間の安定稼働が求められる環境で利用される点は産業用PCとPLCでおよそ共通していますが、アクチュエータやセンサなどの接続数では一般にPLCの方が優れており、PLCを使うメリットといえます。またPLCはPCとは異なり、OSを搭載していないため、一定周期で遅れなく実行したいリアルタイム処理に向いているという特徴があります。

逆にPLCはOSを搭載していないため、処理結果の画面上での表示や外部機器からの操作性などの柔軟性は産業用PCが優れています。また同様に、データ収集、解析用途が中心の場合、産業用PCにメリットがあるといえますが、価格面では産業用PCの方が高価である点には注意が必要です。

昨今では、産業用PCとPLCを兼ね備えた中間的な位置づけの製品ラインナップも見受けられます。

産業用PCのイメージ

産業用PCのイメージ

PLCの選定基準

PLCは各FA機器メーカーにて製造・販売されています。国内メーカーでは、三菱電機、オムロン、キーエンスの他複数企業が知られており、海外メーカーでは、Siemens、Rockwellなどが知られています。選定基準としては、メーカーを統一して保守部品を在庫として確保しやすくすることなどが重視される傾向にありますが、システム構成、予算によってさまざまです。ここではいくつかの基本的な選定の考え方について見ていきます。(各メーカーからPLC選定ツールも提供されています。)

用途に応じたPLCの選定

用途に応じたPLCの選定

PLCの設置形式:

設置する形式に応じて、コンパクト、モジュール、ラックマウント等のタイプを選択します。設置スペースが限られる場合のコンパクトタイプや、配線や設置の都合上、ラックマウントタイプが好ましい場合は、ラックマウントタイプの利用を検討します。

I/Oユニットの柔軟性:

接続可能な入出力機器、I/Oの最大数、接続方式などはPLCの選定においても重要な要素です。接続する機器との間で発生する、データのやり取りを想定し、接続方法や通信仕様を決定するほか、メーカーが異なる製品を接続する場合の相性についても考慮の上で、システム全体の設計をする必要があります。

特殊ユニットの柔軟性:ロボットやクラウドシステムなどの外部機器との接続性:

特に昨今トレンドであるデータ収集プラットフォームやロボットとの接続に関しては、特殊なユニットやプロトコルが要求されるケースがあり、注意が必要です。クラウドシステムとの接続にはOPC UAなどの一般的なプロトコルが使われるケースのほか、システム固有のプロトコルが使われるケースがあり、いずれも対応のユニットが必要です。また、ロボットとPLCの接続に関しては、従来は非常に簡単なデータのやり取りのみにとどまっておりましたが、関節角などの情報を受け渡すことが可能なメーカーや機種が登場している点にも違いがあります。

モーション制御ユニットの機能:

PLCの拡張ユニットで実現する制御の一つに、モーション制御と呼ばれる制御があります。一般にはモーターを利用して実現する位置制御や、速度制御を指します。制御する対象の特性に応じて、制御パラメータを適切に設定する必要があり、不適切なパラメータでは、機器が壊れたり、振動したりしてしまうことがあります。各社のモーション制御ユニットでは、これらのパラメータの自動調整機能や、振動抑制機能が搭載されており、制御性能が重視されるシステムでは、PLCの選定においても重要なユニットです。

処理性能(スキャンタイム・メモリ容量):

PLC以外の機器でも一般的に考慮される観点ですが、PLCでも同じようなことがいえます。処理性能は、とくにプログラムのステップ数が増えた場合に注意が必要で、記載したプログラムを一巡する時間であるスキャンタイム(サイクルタイム・演算周期)という指標が使われます。メモリ(デバイス)にはプログラムが書き込まれるほか、データやコメント情報、ユニットの設定情報などが書き込まれます。データのロギングには専用ユニットを利用するケースもあります。

保守・メンテナンス性:

機能面以外にも、PLCが利用される設備では、故障停止が大きなリスクとなること、10年以上の長期にわたっての利用も想定されますので、保守・メンテナンスを含めた経済性の考慮が重要です。また海外で生産設備を想定した場合、現地での調達可能性やサービスの提供状況にも注意が必要です。

PLCプログラミングの方法

ここではPLCプログラミングを始める前に必要な知識と、その方法について見ていきます。PLCプログラミングを行うため、MATLABを使われるケースがあります。

PLCプログラムの構成要素とMATLAB/Simulinkの関係:

PLCプログラムは主に3つの要素からなります。

  1. PLCユニットのコンフィギュレーションの設定
  2. PLCデバイスメモリの管理設定
  3. PLCプログラム

1)と2)についてはメーカ固有のIDEと呼ばれる専用のソフトウェア(統合開発環境)上での設定が必須であり、3)についてもメーカー固有のソフトウェアが利用されるケースが多く知られています。MATLAB/Simulinkでは3)のPLCプログラムの開発において利用可能な複数の機能を提供しています。

(プログラミングの仕様だけでなく、具体的なハードウェアの操作方法は、各メーカーサイトにて、e-learningやトレーニングが提供されております。MALAB/SimulinkはMathWorksが提供するe-learningやトレーニングがあります。)

PLCプログラミングの言語の比較

ここではPLCのプログラミング言語としてIEC61131-3に規定されるプログラミング言語からLD(ラダー言語)とST(ST言語)について触れ、C言語や、MATLAB/Simulinkとの違いについて紹介します。ラダー言語、ST言語ともに、IEC61131-3に準拠していたとしてもベンダー固有の利用制限がある点には注意が必要です。

ラダー言語:

リレーシーケンスの設計図に端を発する図的な表現が特徴で、上から下に順に処理を記述します。一部のまとまった処理はあらかじめFB(ファンクションブロック)として提供されています。

ラダー言語

ラダー言語

ST言語:

Structured Text(ST言語)では、変数宣言や算術演算子などを用いてC言語などの高級言語に似た記述方式で記載できるため、ソフトウェアエンジニアにも馴染みやすい言語と言われていますが、C言語のような高度な記述には制約も少なくありません。ラダー言語には、ST言語を使った処理を埋め込めるタイプもあります。

ST言語

ST言語

MATLAB:

MATLABは、数学的な数値計算を得意とした、インタープリタ型のプログラミング言語、およびその開発環境です。型宣言や変数宣言などの構文的制約が少ない点が特徴で、PC上ですぐに動作させ結果を確認することができます。作成したプログラムは特定のワークフローを利用することで、ST言語やC言語のコードに変換することが可能なため、ST言語やC言語に対応したPLCでプログラムとして利用できます。対応PLCについては表2.Supported for Third – Party IDEsを参照下さい。

Simulink:

Simulinkは一般的なソフトウェア設計に使われる設計図に近い、グラフィカルなプログラミング機能環境を一つの特徴としています。作成したプログラムは、コード生成機能を利用することで、ST言語やC言語に変換が可能で、PLCのプログラムとして利用することが可能です。

MATLAB/Simulink

MATLAB/Simulink

PLCプログラミングへのMATLAB/Simulinkの適用例:

PLCプログラミングにおいてMATLAB/Simulinkが利用されるシチュエーションについて具体的な用例と合わせて紹介します。

PLCプログラムのポータビリティのためのMATLAB/Simulinkの利用:

PLCプログラムは国際標準IEC61131-3に基づき、過度なベンダー依存をなくす標準化の取り組みも進んでいます。MathWorksが提供するプログラミング環境もベンダー依存の解消に貢献します。MATLAB言語を含むSimulinkモデルからは、Simulink PLC Coderを利用することで IEC61131-3準拠もしくは、対応メーカー仕様のST言語プログラムが生成可能です。こちらの機能を活用することでプログラムの部分的なポータビリティを実現しています。対応メーカーの詳細は後述の表2を参照ください。

Vendor

IDE

IEC 61131-3

C/C++

3S - Smart Software Solutions

CODESYS™

   

ABB / B&R Industrial Automation

Automation Studio™

   

Bachmann Electronic

SolutionCenter

   

Beckhoff Automation

TwinCAT

   

Bosch Rexroth

IndraWorks

   

Mitsubishi Electric

CW Workbench

   

Ingeteam

Ingesys IC3

   

Omron

Sysmac® Studio

   

Phoenix Contact

PC WORX™

   

Rockwell Automation

RSLogix™/Studio 5000

   

Siemens

TIA Portal/STEP® 7

   

表2. Supported for Third – Party IDEs

PLCプログラムの設計効率化に向けたMATLAB/Simulinkの活用:(H4)

MATLAB/Simulinkが提供する機能が、PLCプログラムの設計効率化に貢献します。可読性が高く、また設計図に近いグラフィカルなモデリング環境を利用することで、プログラムの設計効率を改善するだけでなく、ST言語、C言語など様々な言語へのコード生成(変換)機能を活用することで、人手作業に起因したヒューマンエラーの混入も低減することが可能です。また、コード生成機能は、C++言語、HDL、dll 、などの幅広い言語(形式)をサポートするため、PLCを超えたプログラムのポータビリティにも貢献します。

特にPLCプログラム開発におけるモデルベースデザインのワークフローを利用する場合、国内ではオムロン社の提供するSysmac StudioとMATLABの連携機能にて幅広い機能が提供されています。
Sysmacオートメーションプラットフォームによる制御システム開発

PLCを使った予知保全システム開発へのMATLAB/Simulinkの利用 (H4)

機器に取り付けたセンサーから取得したデータを基に故障や劣化を検知し、故障が発生する前の適切なタイミングでメンテナンスを行うことを、予知保全 (Predictive Maintenance) と呼びます。

メンテナンス費用の高騰化やメンテナンス技術者の不足などの背景から注目を集めている一方で、生産設備を始めとした大型設備では、故障によるリスクが大きいため、適切に予知保全システムを運用することで、リスクの低減やメンテナンスコストの削減につなげることができます。このような予知保全のシステムはPLCや、産業用PC、もしくはさらに上位のシステムに予測アルゴリズムを搭載することで実現されますが、アルゴリズム開発者がPLCへの実装技術を習得しているケースは多くありません。また開発者が様々な試行錯誤を経てしてもシステムの互換性の問題により結局実装できなかったということも多々あります。MATLAB/Simulinkは統合的な開発環境として、予測アルゴリズムの開発に対応するだけでなく、検討した機械学習などのアルゴリズムをPLCプログラムや、産業用PC、専用サーバーなど様々なプラットフォームに展開可能な機能を備えており、予知保全システムの開発に適したプラットフォームであるといえます。

PLCを含む高度な自律システムの開発へのMATLAB/Simulinkの利用:

労働力不足や、多品種少量生産のニーズから、ロボットを使った自律化が求められる生産現場が少なくありません。このようなシステムではPLCと、ディープラーニングを含む画像処理システム、ロボットコントローラの密な連携が重要です。主に画像処理システムが対象物を認識し、PLCが上位制御要素を、そしてロボットコントローラがローカルな制御を担います。それぞれMATLAB/Simulink上でアルゴリズムや連携を設計し、実機へと実装することによって効率的に開発を進めることが可能です。

PLC(シーケンサ)についてさらに詳しく知る

PLC(シーケンサ)関連トピック

PLC Simulation  英語 (18:31)

PLCシミュレーションは、アルゴリズムを設計・検証する手法です。エンジニアは、PLCシミュレーションソフトウェアを使用して、制御システムと制御ロジックを設計し、プラントのモデルを通してシステムの動作を評価します。

SimulinkとSysmac Studioの統合

Sysmac StudioはSimulinkのモデリング環境を統合し、PLCをターゲットとした制御システムの開発及び実装を可能にします。

PID制御

PID制御は、フィードバック制御の手法です。制御構造がシンプルであり、とても使いやすく、長年の経験の蓄積からも、実用化されているフィードバック制御方式の中で多くの部分を占めています。

状態遷移図

状態遷移図はリアクティブ システムのモデルです。モデルは有限の状態および振る舞いと、ある条件が真の場合にシステムがある状態から別の状態へどのように遷移するかを定義します。

デジタルツイン

デジタルツインは、実際に稼働している物理設備をモデルとして表現したものです。物理設備の情報をIoTなどを活用することでリアルタイムで収集、仮想空間に送り、仮想空間内に物理設備の環境を再現します。

管理図

管理図とは、主に製造工程の品質管理 (QC: Quality Control) で用いられる代表的な手段の一つで、工程が安定な状態かどうかを統計的に判断するために作成されます。

MATLAB および Simulink による設計最適化

設計最適化は、プロジェクトの要件を満たす最良の設計パラメーターを見つけるプロセスです。エンジニアは通常、実験計画法 (DOE)、統計、および