三菱電機社製プロセスCPU及び、ループ制御を構築するFBD言語について説明します。
2-1. 三菱電機社製プロセスCPUとは
三菱電機社製プロセスCPUには50種類以上のループ制御用命令が標準搭載されており、それらの命令を組み合わせるだけで様々なループ制御を実現することができます。
もちろんラダープログラムによるシーケンス制御も実装可能です。そのため『PLC(シーケンス制御)+ループコントローラ(ループ制御)』で実現していた制御を、PLC単体で実現することができます。
2-2. ループ制御のプログラミング
ループ制御のプログラミングは専用ツール『PX Developer』を用いてFBD言語
(※1)で行います。
FBD言語は視覚的に分かりやすいグラフィカルな言語であるため、比較的簡単にプログラミングが可能です。
FBD言語で作成されるプログラムの総称をFBDプログラムと呼びます。
|
|
図1. FBDプログラム
|
3-1. システム構成
図2に示すようなタンク内液の温調制御をする制御系について、プロセスCPUを使用してPID制御を行います。
タンク内液温をアナログ入力で取り込み、PID演算を行って、蒸気バルブの開閉を行うことで温調制御を実現します。
|

|
|
図2. システム構成
|
| ユニット名 |
型式 |
| プロセスCPU |
Q25PHCPU |
| アナログ入力ユニット |
Q64AD |
| アナログ出力ユニット |
Q62DA |
|
|
表1. PLCユニット構成
|
3-2. 開発フロー
開発の流れを図3に示します。
 |
|
図3. 開発フロー
|
(1). PID選定
プロセスCPUに標準搭載されているPIDループ命令の中から対象とする制御系の特性に合ったPIDを選定します。
・・・とは言うものの、実際に現場で動かしてみなければ制御系の特性が分からないというケースも多々あります。そのような場合は複数のPIDを実装し、現場で各PIDの動きを見ながらどれが一番適しているか判断できるようにします。
(2). プロジェクト作成
『PX Developer』からプロジェクト作成を行い、システムリソース(FBDプログラムで占有するデバイス範囲)の設定を行います。
次に、(1)で選定したPIDループをタグFBに登録します(※2)。
(3). FBDプログラム作成
(2)で登録したPIDループタグFBを配置し、PIDループ制御を実装します。
併せてPIDループタグデータの初期値を設定します(※3)。
プログラムの作成がひととおり完了したら、構成するプログラム毎に実行設定を行います。
実行種別にはタイマ実行(定周期実行)(※4)と割り込み実行が設定できます。
(4). ラダープログラム作成
ラダープログラムでは温調制御のインターロック処理を実装します。
インターロック状態により、PIDループ制御に対してモード切替指示や目標値(Set Variable)/操作量(Manipulative Variable)の書き込みを行います。
(5). シミュレーション
PIDループ命令のシミュレーション機能(※5)を用いてPIDループ制御のシミュレーションを行います。またラダープログラムとの連携動作についても動作確認を行います。
(6). 現場確認
現場での主な作業は、PIDループ制御のパラメータ決定です。
タンク内液温調制御では、液種や温度帯によって特性が変わってくるので、特性に応じて複数のPIDパラメータが必要な場合があり、それぞれに最適なパラメータを決定しなければなりません。
パラメータの決定にはプロセスCPUのオートチューニング機能を活用します。
前章でプロセスCPUを使用したPID制御開発の一連の流れを説明させていただきました。
最後に私が開発を通して気づいた点をまとめたいと思います。
4-1. プログラムを製作する上での注意点
FBDプログラムで占有するデバイスは、デバイスの先頭アドレスと点数を指定すると自動割付されます。当たり前ですがFBDプログラムで使用しているデバイスをラダープログラムで使用してはいけません。特にインデックスレジスタはFBDプログラム側で7つ占有してしまうので注意が必要です。
4-2. 汎用シーケンスCPUとの比較
ループ制御に関してのプロセスCPUとシーケンスCPUの比較を、スペックが同程度であるQ06PHCPUとQ06UDHCPUを例にして表2に示します。
| |
プロセスCPU(Q06PHCPU) |
シーケンスCPU(Q06UDHCPU) |
| プロセス制御用命令 |
52種類 |
1種類(速度型PIDループ) |
| 最大ループ数 |
制限なし
(但しデバイスメモリ容量と制御周期の組み合わせにより制限あり) |
最大32ループ |
| 制御周期 |
10ms〜/ループ
(ループ毎に可変設定可) |
10ms〜60000ms/ループ
(ループ毎に可変設定可) |
| 1ループあたりの処理速度 |
400μs(速度型PIDループ) |
35.8μs(速度型PIDループ) |
| 1ループあたりのパラメータ数 |
35(速度型PIDループ) |
11 |
| 構築言語 |
FBD言語 |
ラダー言語 |
| 定価 |
\330,000 |
\220,000 |
|
|
表2. ループ制御比較
|
表2よりプロセスCPUとシーケンスCPUの比較結果についてまとめます。
「プロセス制御用命令」
プロセスCPUは52種類のプロセス制御用命令を標準搭載しているため、それらを組み合わせるだけで様々なプロセス制御を構築できます。
シーケンスCPUに搭載されている命令は速度形PID命令のみであるため、ほぼ単ループ制御しか構築できません。
「最大ループ数」
設定できる制御周期で両者に違いはありません。
「制御周期」
プロセスCPUは52種類のプロセス制御用命令を標準搭載しているため、それらを組み合わせるだけで様々なプロセス制御を構築できます。
シーケンスCPUに搭載されている命令は速度形PID命令のみであるため、ほぼ単ループ制御しか構築できません。
「1ループの処理速度」
プロセスCPUはシーケンスCPUより処理速度が遅いです。
おそらくループ内の処理で単純なPID命令以外の命令処理も行っているためだと思います。
「1ループあたりのパラメータ数」
プロセスCPUは1ループあたりのパラメータ数が多くきめ細かいループ制御を実現できます。
その反面、1ループあたりのパラメータの数が多さから、シーケンスCPUと比べて立ち上げまでに時間がかかってしまうという側面もあります。私も開発当初はパラメータの多さに大変苦労しました。また現場でのパラメータ決定の際もオートチューニング機能で調整しきれない制御系であったことも手伝って、最適なパラメータにたどり着くまで大変時間がかかってしまいました。
「構築言語」
プロセスCPUでは可視性の高いFBD言語でループ制御を構築します
設計者でない人間が見ても容易に制御内容が分かるというメリットはあります。
「定価」
プロセスCPUの方が約1.5倍割高です。
ただしプロセスCPUは計装システムで必須であるマンマシンインターフェースの設計/製作において、『PX Developer』の機能としてGOT画面自動生成機能及びSCADA連携機能(※6)が搭載されているため、コストの削減が期待できます。
以上、プロセスCPUは、プロセス制御用命令の豊富さ、最大ループ数に制限がないこと、パラメータによりきめ細かなループ制御を実現できることから、シーケンスCPUでは規模・性能的に実現できない計装システムの構築が可能であることがわかります。
ただし、単ループ制御のみで32ループ以内に納まるような収まる中・小規模の計装システムでは、立ち上げまでにかかる時間、価格面、を考慮するとプロセスCPUを使用するメリットは少ないと言えます。シーケンスCPU、もしくは、シーケンスCPU+ループコントローラの組合せで代用できます。