DCSは化学プラントの頭脳と言える超重要設備。
運転員もDCSに特化する傾向で、時代はまさにDCS!
って時代も昔の話(笑)
今ではもうほぼ当たり前に近い技術でしょう。
DCSは機械屋が関わることがないわりに、工場としては非常に重要。
設備を統括的に知ろうとする機械屋にとっては、ずっと避けているのも問題です。
概要だけでも理解できていると、計装エンジニアと話をするときに理解しやすいかも知れませんよ。
ソフト面は難しいように見えますが、手動操作をイメージできると理解しやすいと思います。
現場の手動運転をイメージする方が早く理解できます。
シーケンス・フローチャート
シーケンスは設備の自動部分の動かし方を記載したものです。
自動化が進んだ工場ほど、設備をどう動かすかを知る資料になります。
機械屋が設備の動かし方を知るためにまず行うことは
製造部にヒアリング
確かにこれで概要を知ることはできます。
でも、製造部は時間を取られます。
メーカーの営業担当者が、何の気なしにヒアリングや訪問や電話するのと同じ構図。
製造部は非常に忙しく、機械屋の問い合わせだけに構っている暇がない
という当たり前のことすら理解していない機械屋が多いです。
機械屋は非常に忙しく、メーカーの営業担当者の大したことない電話での問い合わせに構っている暇がない
ということと同じ。
- メールで聞けるものはメールで聞く
- 設備の動かし方をシーケンスを見ればある程度理解できる
シーケンスの勉強をしなければ、設備の動かし方が分からず、設備の能力検証や故障解析に使えません。
化学プラントの機械屋にとってシーケンスの勉強は必須ですよ!
フロー
以下の例を使いましょう。
これくらいであればシーケンスを見なくても、動きは予想可能です。
- タンクに液を入れる場合:バルブBが閉じている状態で、液面がスイッチAより低い位置にあることを確認してから、バルブAを開き、タンクに液を入れる。スイッチAに液面が到達すれば、バルブAを閉じる。
- タンクから液を排出する場合:バルブAが閉じている状態で、液面がBより高い位置にあることを確認してから、バルブBを開き、タンクの液を排出する。スイッチBに液面が到達すれば、バルブBを閉じる。
バッチ的にはこういう発想でしょうか。
フローチャート
このフローに対応すフローチャートの例はこちらです。
左側がフローに対応するフローチャートです。
これをシーケンスと呼んでしまう場合もありますが、実際にはフローチャート。
ここでまず抑えておくべきは、常時どの状態にあるか。
右側が常時動いているルートです。
スタートボタン
このシーケンスを動かす条件を、押しボタンにしています。
スタートボタンを人間が押せば、運転が始まる。
ゲームやパソコンの世界と全く同じです。
スタートボタンを押せば、バルブAが開くようです。
この例は簡略化していますが、実際には受入タンク液面の状態や、送液元タンク液面の状態など、色々な条件確認をしています。
ここを人間に頼るのであれば、バルブAの開閉を人がせずに機械がするだけ、という省力化しかできません。
バルブAがすごく大きくて、人の力では回せない。などの場合ですね。
スイッチA
液面がスイッチAに到達すれば、バルブAを勝手に閉じようとします。
これは私が予想した動きと同一。
というより自動化する最大のポイントでしょう。
タンクに液が入っているのを人が監視して、一定値になればバルブを人が閉じるのであれば、自動化の意味は全くありませんので・・・。
テーブル
テーブルは、フローチャートの動きを、シーケンスに落とし込むために、機械にとって一般的な表現にするためのものです。
以下のような表記です。
上段に条件、下段に操作が書いてあります。
横軸にはステップ番号が書いてあります。
ステップ番号が1番から順番に開始します。
01番でスタートボタンをY、つまりスタートボタンを押すという条件が成立すれば、
バルブAをY、つまりバルブAを開けるという操作をします。
条件成立時、不成立時それぞれ、どのステップに進むかを記載することで、条件分岐をします。
今回の例では、スタートボタンを押しても押さなくても、次のステップに進みますので、次のステップ番号は記載しません。
そして、02番のステップを見に行きます。
02番でもスイッチAのYを見てから、バルブAをNとします。
この表現を使えば、シーケンスとして制御用の言語に変換するのが容易です。
シーケンスという場合、このテーブルを指す方が一般的でしょうか。
ただし、人間にとっては視覚的でないので、視覚的なフローチャートの方が、現場では好まれます。
PID
PIDというのは制御関数と考えればいいでしょう。
関数というと数学的な表現で、入力に対して関数を介して出力を出す。
y = f(x)
の考えを強調する意味があります。
専門的には制御動作と言います。
P・I・Dという3つの関数を組み合わせて使用します。
P・I・Dそれぞれを簡単に解説しますが、最初に制御動作の基本であるオンオフ動作から説明します。
オンオフ動作
オンオフ動作は制御の基本中の基本!
制御工学を学んだ人からは軽視されがちですが、
実運転ではこれが90%以上!
自動ボール弁がon-offだから、という意味だからですけどね。
オンオフ動作とは下記のようなパターンです。
- 温度が一定値以下ならON
- 温度が一定値以上ならOFF
一定の設定範囲を逸脱すれば、作動するという仕組みです。
温度制御の例として、例えば電気抵抗で水を温める電気ポットなどが分かりやすい例でしょう。
バッチ系化学プラントでは、オンオフ動作として、温度・圧力・流量・液面を判定条件とする例はあまりありません。
シーケンスに従って、所定の条件を満たせば弁が開閉するという例の方が圧倒的に多いです。
- 開始ボタンを押せば、一定時間待ち時間があり、その後に弁が開く。
- 現地ボタンを押してポンプを起動すれば、一定時間後に弁が開く。
連続工場とは大きく違う点です。
Pは比例動作
比例動作は、偏差に対して比例した値を返す動作です。
PV/MV/SVという制御量を使うと以下のように表現できます。
MV = α * (SV-PV)
SV-PVがあるタイミングで急にステップ上に上がった場合の、P動作の一般的な挙動を下に示します。
上のグラフは定性的には以下のように表現できるでしょう。
- ステップ上にSV-PVが上がった瞬間は、SV-PVが大きく変わるので、α * (SV-PV)も大きく変わる。
- PVは徐々にSVに近づいていくので、α * (SV-PV)は徐々に少なくなっていく。
- 一定の振れ幅で動いていきながら、一定値に落ち着こうとする。
- 最終的には初期値からオフセットした場所で落ち着く。これはα * (SV-PV)に関係する。
椅子に人が座る
身近な例では、椅子が良いでしょうか。
椅子に人が乗っていないときが初期値で、そこに人が勢いよく座り込むと
椅子のスプリングがはずんだあと、椅子は初期値から少し下がった場所で落ち着きます。
これと同じです。
椅子の場合はスプリングのばね力が
f = k(x)
という変位に比例するからであり、まさに比例動作。
オフセットと振れ幅
比例動作Pの感度を上げるということは、ばねの力を上げることと同じ考えですが、制御上は少し注意が必要。
- 比例動作の感度を上げるとオフセットは小さくなる
- 振れ幅が大きくなり、収束が遅くなる
オフセットがあるということは、SVとPVが常時ずれがあるということです。
60℃で系内を管理したいと思い、SV=60℃に設定しても、比例動作だけではPV=58℃で落ち着いてしまう。
ということが起こります。
このズレが系によって変わるため、SVをいくらに設定すればいいかということが、カンとコツの世界になってしまいます。
自動制御で、人の判断をなくそうとしながら、人のカンとコツが入ってしまう系になります。
これは好ましくありませんね。
また、感度を上げるということは、少しの変化でも大きな制御をかけてしまうということです。
少し触れただけ大きく騒いで振り回してしまいます。
これを数式で頑張って理解しようとするのが、大学で制御工学を学んだ人が陥るパターン。
比例帯や比例定数を頑張って理解しようとするのは、試験勉強を頑張ってしまった人。
Iは積分動作
積分動作は、SV-PVを時間で積分した値に比例した量を返す動作です。
SV-PVがステップ上に変化したパターンを例に、積分動作を考えましょう。
SV-PVがステップ上に増えているので、時間で積分すると積分動作量は増え続けるという意味を示しています。
実際にはこの挙動をする例はありません。
積分動作をかけた瞬間に、システムはSV-PVを緩和する方向に作用するからです。
それは比例動作の例でも同じです。
ステップ上の変化は、制御工学という学問的には数式で議論ができ、特性を理解しやすいのです。
しかし、そういう挙動を行う系は、化学プラントではほとんどないと思います。
積分動作はオフセットを除去する
比例動作の問題として上がるオフセットを解決することが、積分動作では可能です。
それは上のグラフを見ても明らかですね。
オフセットとして偏差SV-PVが残り続けようとしても、
時間に比例した動作を加えていくために、
時間がたてばたつほど系は落ち着いていこうとします。
そして、SV-PVが0になります。
これが狙いで、積分動作を無くすことはできません。
Dは微分動作
積分動作は、SV-PVの時間変化の値に比例した量を返す動作です。
偏差の変化量に比例した制御を与えるため、注意が必要です!
バッチ系化学プラントではよほどのことがない限り使いません!
- 連続工場のように系が安定するわけでない。安定している時間が短い
- 化学反応では反応時間と反応量が均一ではないため、振れが大きい
- 振れに対して敏感に制御した場合に、失敗したら大事故になる。
リスキーな微分動作は、化学プラントでは避ける方向です。
ブロック線図
調節計によるプロセス制御の全体像を示すのにはブロック線図を使います。
ブロック線図を模擬して下記のように示しましょう。
ブロック線図自身は制御工学における、制御ロジックを示すものなので、文字・数式で表現します。
これを機能別の要素を表現するツールとして流用したものです。
検出→調整→操作
上のブロック線図は要素がいくつもありますので、その中でもメイン部分だけを取り出してみましょう。
- プロセス対象を検出
- 検出値を使って調整
- 調整値をプロセス系に対して操作
この検出→調整→操作がメイン部分です。
調整の内部機能
この検出→調整→操作の機能のうち、調整の部分をさらに細かく見たものが、上のブロック線図です。
- 検出値PVを調整計に取り込む受信
- 目標値であるSVを設定
- 目標値SVと検出値PVの差を比較
- PV-SVの値を使って調整
- 操作部に発信
受信→設定→比較→調整→発信という流れになります。
ここでPV/MV/SVという値が出てきます。
制御部分は調整
実際のブロック線図における制御関数となる部分は、上のブロック線図上は調整という部分になります。
SV-MVを何らかの変換をしてPVにする
という要素になります。数学的には
PV = f(SV-MV)
という形になるでしょう。
比較の部分は、シーケンス制御を意識しています。
PVが一定範囲内であれば制御をする
というのが一般的だからです。
- 温度PVが一定範囲SVより高くなれば、冷却
- 温度PVが一定範囲SVより低くなれば、加熱
このような判定を行う部分が比較です。
略語
DCSの世界では、アルファベットの略語がいくつか登場します。
意味をよく知らないまま話を聞いていると、日本語を聞いているようには感じないでしょう。
機械屋でも最低限ここは知っておこうという範囲に限定して紹介します。
PID
PID制御は、大学の古典制御で出てくる有名な話です。
- P 比例制御 Proportional
- I 積分制御 Integral
- D 微分制御 Differrntial
大学の勉強では、学問的な面に視点が当たります。
PIDはバッチ系化学プラントでは温度制御や滴下制御や真空制御に使います。
実務上は、バッチ系化学プラントではPが9割、Iが1割、Dはそれ以下。
分かりやすさ、特に運転条件の振れに対する微調整のしやすさから、Pだけを変えることが推奨されます。
Iはともかく、Dは変えると一瞬で大きなトラブルになりえます。
この辺りのことは別の機会に記事にします。
PV/MV/SV
これはDCSの用語です。
- PV 現在値 Process Value
- MV 操作値 Manipulated Value
- SV 目標値 Setting Value
制御の限定的な話ではなく、運転指示値なども含むDCS制御の全般で必要な管理値です。
日常の運転管理上はとにかくPVを見ていれば十分です。
SVは設定変更しやすいパラメータ。
試作製造時にパラメータを調整すれば、基本的に固定します。
PIDのIとDは確実に固定しますが、SVは日々の運転変更時に変えるパラメータとして重宝します。
20℃で温度管理したいが、濃度が上がっていて流量は変更できないから、反応温度が上がってしまう。
そこで温度管理を19.5℃に変更して、温度制御を変える。
というパターンです。
MVは普通は見ません。
自動制御をしている時の実際の弁開度などのことです。
調整弁で、弁を強制的に閉めるためにMVを0%、強制的に開けるためにMVを100%にする
というシーンでよく見かけます。
RA/DA
これは自動弁のシリンダーの動きを示すと考えればいいです。
空気が供給されなくなったときに、どういう作動をするか、ということを示します。
- DA 正作動 Direct Action エアーが止まると閉じる
- RA 逆作動 Reverse Action エアーが止まると開く
計装屋にとっては、シリンダーの作動・弁の作動の組み合わせとして把握していますが、
運転する側からするとそんなことはどうでもいいです。
逆に迷惑です。
全体として、どちらに作用するかが重要。
エアーが止まるという緊急時に、シリンダーがDAで弁がRAだから、RA!
というような判断を迷わせる情報は不要です。
これと同じような話で、ゼロカットの問題があります。
いずれにしろ、現場を知らない計装屋の妄想が垣間見えるシーンです。
リレー・タイマー・カウンタ
シーケンスというと実物はほぼブラックボックスだと思います。
制御屋の専門家しか理解できないでしょう。
ところがその構成要素だけに限ると、色々な教科書に記載しています。
例えば、以下の構成要素がシーケンス回路に包含されます。
- リレー
- タイマー
- カウンタ
- コントローラ
これらの単語が実際の制御と結びつけることが難しいため、
そもそも教科書のこういう表記を見ようとしなくなります。
ですが、この中のリレー・タイマー・カウンタだけで
バッチ系化学プラントのかなりの制御ができてしまいます。
それをいかに紹介しましょう。
タイマーで窒素置換
窒素置換は生産を開始する時に必ず必要です。
これはバッチでも連続でも変わりません。
系内の空気を窒素雰囲気下に変えます。
酸素濃度が何%以下になるまで行うというのが基準ですが、
実際には窒素置換をどれだけの時間実施するかを運転管理値にしています。
ここでタイマーは大活躍。
1年に数回しか行わない作業なので、シーケンスとして作らなくて、単にストップウオッチでやったり、
何時からスタートするから、何時から窒素置換しっぱなしでおこうという感じでが実際です。
リレーは判定条件
リレーはかなりの種類の判定条件に使えます。
例えば、先ほどの窒素置換の例。
窒素弁を開ける前に、確認しておくべきことはなんでしょうか?
窒素置換を行う対象の、取り合いの弁が閉まっていること。
これが要求されます。
そうしないと十分に窒素置換できない可能性があります。
ここで取り合いの弁に自動弁がついていれば、
自動弁が閉まっているという判定条件をクリアしてから
窒素弁を開けるという作業ができます。
ここでリレーが使えます。
自動弁の開閉信号を電気信号に変えて、リレーに取り込み、
電気回路のスイッチ、つまり判定条件にすることができます。
リレーを制する者は、バッチ系化学プラントの制御を制する
と言ってもいいです。
カウンタは工程以降
これはあまり多くはありません。
でもカウンタを使えば、次の工程に写す作業ができます。
カウンタを使わずに、手動介入するパターンもあるでしょうか。
例えば、1日にある撹拌槽で行う工程が5つあったとしましょう。
ここで3つ目の途中でトラブルがありました。
そこから先は3つ目の工程の最後までは手動で進めました。
この後、4つ目の工程から再度自動で進めるにはどうしたらいいでしょうか?
一度そのプログラムを再起動して、カウンタを4つ目に合わせれば、良いという思想です。
これを手動でスキップさせる手もあります。
工程が多いとスキップ回数が多くなるので面倒と言うだけです。
そもそもトラブルが少なければ、こんなカウンタに頼る必要はありません。
スキャン時間
少し専門的な話ですがDCSのスキャン時間の考え方を紹介します。
1000点以上の計器情報を1秒に1回データ更新するという程度の情報ですが、場合によっては大事になります。
オーダーを知っているだけでも十分。
計器の点数は1000点以上
1つのプラントで使う計器の点数はどれくらいあるでしょうか?
簡単に1000点以上あります。
1つのタンクに対して30点くらいの入出力信号があります。
1つのタンクに10点くらいの自動弁、温度計・液面計・流量計が1点ずつ。
自動弁は自動弁の開閉状態の信号を入力、開閉作動の信号を出力で1つの弁に入出力2点あります。
温度計や液面計は状態信号を入力として使うだけで1点。
流量計は流量制御を行うので、流量状態の信号を入力、流量制御の信号を出力として、計2点。
10*2+2*1+1*2=26点。
この他にも電流・回転数などの情報を含めれば30点くらい。
タンクの数は20基強ありますので、30*20=600。
タンク以外にも、運転に必要な設備として冷凍機や集中除害装置などがあり、概算で
1000点以上の入出力があります。
DCSは制御を集合
DCSはこのアナログ計器の問題を解決するために、制御部分を集合させています。
1000点以上の点数を1つの制御装置で実践するのは無理です。
そこでいくつかの制御装置に分散させようと。
それが分散型制御システムだと認識しています。
分散をしているつもりが、実際には各計器の情報を集合させているのが実態で章。
DCSは一度に制御できない
DCSでは各計器の制御を集合させています。
集合させているという単語を使うと、1000点以上もの計器を同時に処理できる便利な機械のように見えます。
実際にはそうではありません。
周期的に各信号をスキャンしていきます。
- 1000点ある以上の信号を、1から順番にナンバリング。
- スキャン開始0.000秒目に1番目の計器をスキャン
- 0.001秒目に2番目の計器をスキャン
- 0.999秒目に1000番目の計器をスキャン
- 1.000秒目に1番目の計器を再スキャン
こうして、1.000秒周期でスキャンを繰り返します。
スキャンをするというのは、検出をイメージしやすいですが、
検出-制御-操作それぞれに対して1秒スキャンです。
スキャン時間外は監視していない
1.000秒ごとにスキャンをするということは、
0.001~0.999秒の間は、その計器の情報を何も監視していないことになります。
これを良しとするのが、DCS制御の思想です。
機械工学をマスター人から見ると、単位時間当たりの物理量を測定するために、
0.1秒のデータ変化を使うこともあるでしょう。
機械工学的には0.1秒で0.1℃温度変化するので、1℃/秒という考え方です。
これがDCS制御を行う化学プラントでは実現できません。
化学プラントでは2秒で2℃温度変化するので、1℃/秒という考え方をします。
それくらいの精度だということが分かるだけでも
化学プラントでのデータ処理の精度感が分かると思います。
HIS
DCSの操作画面は以下のような構成です。
必要なモニター数を考える
計器室にはDCSの画面がいっぱい並んだ以下のようなイメージが強いでしょう。
いっぱいのモニターが並んでいますね。
このモニター数が実際にどれくらいの数が必要でしょうか?
オペレータは最高2人
プラントを1つ動かすために、必要なDCS操作員は普通は1名です。
1名がDCS操作、1名が現場、残り1名はフリー。
この動きが基本です。
1日の1回の勤務中に上の役割をローテーションする会社もあれば、1日の勤務でローテーションを固定する会社もあるでしょう。
もしくは、役割をずっと固定化してしまっている会社もあるでしょう。
特にDCS操作を習得している人数によって左右されます。
いずれにしろ、プラント運転上は、DCS操作は最大2名で考えて良いと思います。
断り忘れていましたが、バッチ系化学プラントを前提としていますからね。
連続工場なら現地の割合が少ないので、モニターを関する人間が多くなります。
それでもモニター数はあまり変わらないと思いますが。
1枚目 グラフィック
現場を状況を確認するための基本ツールです。
バッチ系化学プラントでは1つのプラントで20枚くらいのグラフィック画面を準備します。
運転員は毎勤務の最初に、必ずこの画面群を一巡します。
どんな引継ぎよりも、簡単に状況を把握できるからです。
もともと決まった運転方法だと、引継ぎ時にどの工程に到達しているかは簡単に覚えられます。
そこからのズレを把握するだけですから、一巡するといっても数分の時間でOK。
このグラフィックが必ず1枚は表示しています。
2枚目 グラフィックorトレンドorオーバービュー
2枚目に使用する画面は、決まっていません。
フリーです。
フリーと言いつつ、必ず使います。
- 複数の工程を並行処理するときはグラフィック
- 重要な工程に集中したい場合はトレンド
- 引継ぎ時はオーバービュー
こういう使い分けをします。
パソコン画面を2台並べて、仕事する人も増えていますが、
これを昔から行っているのがDCS操作員です。
どうでもいいですが、化学プラントの設備エンジニア程度の仕事なら2枚のモニターを使う必要はありません。
あった方が便利ですが、必須ではない。
私は、ここにもいろいろな想いを持っています。
3枚目 予備
3枚目は予備です。
使いません。
もしくは3人目のフリー役が計器室に戻ってきたときに、監視操作するためでしょう。
4枚目 エンジニアリングステーション
4枚目はエンジニアリングステーションです。
これは、DCSの設備としては必須。
ただしDCS操作員が使う機会はほとんどないでしょう。
使う機会としては、主に新製品の生産時。
新製品の導入時は、最適なパラメータが決まっていないために、パラメータの変更を都度行います。
このステーションがないと、都度設定値の変更ができません。
最後に
機械エンジニアも知っておきたいDCSの概要を解説しました。
シーケンスとフロー・PID・ブロック線図・リレータイマーカウンタ・スキャン時間・HIS
具体的な運転操作はフローチャートやテーブルを見ながら、手動操作をイメージしないと理解できないでしょう。
今回の内容はDCSの体系についての話です。実務上は直接使えるとは限りません。
余裕があるときに、参考情報として理解を深めれば良いと思います。
化学プラントの設計・保全・運転などの悩みや疑問・質問などご自由にコメント欄に投稿してください。(コメント欄はこの記事の最下部です。)
*いただいたコメント全て拝見し、真剣に回答させていただきます。