「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
ソフテックの業務には大きく分けて、「マイコンを対象とした組込みソフト開発」「Windowsアプリケーション開発」「PLCソフト開発」の3つがあり、私は「PLCソフト開発」を担当しています。
更に「PLCソフト開発」と言ってもいろいろな案件があり、それぞれに特徴があります。
私は長らく「”装置”モノ」と呼ばれる案件を担当していましたが、2年ほど前から「”プラント”モノ」を担当するようになりました。
「PLCのソフトを製作する」というところは変わりませんが、どのようにプログラミングするか?どのような動きを求められているか?といった設計に関する部分はまったく異なり、当時は戸惑うことも多かったです。
今回は私が経験した「”装置”モノ」と「”プラント”モノ」の違いや試運転時の体験談などをご紹介したいと思います。
PLCで制御する対象物は多岐に渡ります。
今回ご紹介させていただく「”装置”モノ」、「”プラント”モノ」には以下のような案件があります。
「装置モノ」
「プラントモノ」
その他にも以下のような案件もあります。
基本的には工場の中で稼動することが多いのですが、意外なところで活躍していることもあります。
そのそれぞれで制御する対象が変わってくるので、おのずと制御方法も変わってきます。
「”装置”モノのソフトウェア開発」は私の経験がもっとも多い「搬送装置」を例にとってご紹介させていただきます。
位置決め制御(第7号「サーボモータ・位置決め制御とは?」)と呼ばれるサーボモータによる搬送やベルトコンベアによる搬送、ロボットなどの外部のコントローラとのシリアル通信によって指示を出しワークを搬送するものが多いです。
注意しなければならないことは、在荷センサー(ワークが目的の位置に在ることを確認するセンサー)の確認、ロボットハンドがどの場所に在るのかなどの位置情報、ワーク一つ一つに割り付けられた製品情報の管理です。
この位置情報と製品情報が不一致になると製造した製品が工場内で行方不明になってしまいます。
また、ワークにワークを重ねて壊してしまったり、装置自体を破損させたり、人身事故にまで及ぶこともあります。
このような事故を起こさないように気を使いながらもタクトタイム(※1)短縮のために「同時に動かせる箇所はないか」「途中まで移動速度を高速化してみてはどうか」といったことを考えながらソフトを製作します。
実際に装置を動かす段階では、センサー位置の調整、ロボットなどの動作機器の待機位置の調整、動作速度の調整に加えて、よりタクトタイムを短縮できないかを動きを見ながら検討することもあります。実際の動きを見ることでよりよい制御を思いつくことも有ります。
図1. 改善前の制御
図2. 改善後の制御
「”プラント”モノのソフトウェア開発」になると状況は一変します。ここでは「飲料”プラント”」を例にとってご紹介させていただきます。
基本的には「原料が入ったタンクの液を別のタンクに移す」という大変シンプルなもので、これに温度の制御(原料の液を移送しながら冷やしたり暖めたりする)や圧力制御が加わってきます。
液の移送方法も「タンク間の配管に取り付けられたバルブを開き、ポンプを運転させる」と難しそうなところは見当たりません。
しかし、一見同じように見えるバルブには開ける順番や閉める順番があります。
以下の場合は注意が必要です。
図3. 液移送
図3の場合にバルブ①〜④の開とポンプの起動を同時に開始すると、ポンプに負荷がかかってしまいます。
これは、PLCからバルブに対して開の信号を送ってから実際にバルブが開ききるまでに時間がかかるためです。
バルブが開ききっていない間(配管に液が満たされていない状態)にポンプを起動すると無負荷状態になってしまい故障の原因になります。
また、液移送を終了する場合もバルブ①〜④の閉とポンプの停止を同時に行うことも厳禁です。
インバータの設定にもよりますが、ポンプは停止の指示を出した後も数秒間は運転を継続しています(急には止められない)。
こうなると、バルブの方が先に閉まってしまい、今度はポンプが過負荷状態になってしまいこれも故障の原因になります。
図4. 熱交換
次の図4は熱交換器(※2)を使う場合の例です。
この場合もバルブ①の開とポンプの起動を同時に行うのはNGです。
スチームは100℃近くあるので、流量が小さいときにスチームを流すと熱交換器内の液体が蒸発してしまい、移送先に高温の水蒸気を送ってしまうことになってしまいます。
流量計で検出した流量が一定以上の場合のみバルブ①を開くというような制御が必要になります。
また、この例でも液移送を終了するときに注意が必要です。起動時と逆でバルブ①を閉めてからポンプを停止しなければなりません。
これらは初歩的な内容です。
状況に応じてバルブを開閉する順番は変わってきますし、異常時の処理、異常からの復帰の処理も同様に開閉の順番が重要になります。
動作を確認する段階では、バルブ開閉やポンプの運転/停止の確認はもちろんのこと、流量や温度を設定した値に保つための調整(PID制御の調整 第119号「三菱電機社製プロセスCPUを使用したPID制御開発」)も行います。
案件によって同じ「PLCソフト開発」といっても必要なノウハウや注意すべき点に違いがあることは判っていただけたと思います。
今まで何年も「”装置”モノ」を担当してきた私が初めて「”プラント”モノ」を担当したときには苦労が多かったです。
まず、動きをイメージできないと言うところから苦労しました。
バルブの急な切替えによるウォーターハンマー(※3)が頻発しました。ウォーターハンマーが発生すると、急激な圧力の上昇や流量の低下に繋がり、周りの安定していた流量制御が崩れてしまうなどの問題があります。
どのバルブをどのタイミングで開閉するか(実際にバルブが開ききるまでの時間を考慮するなど)が重要なのですが、そこまで意識が及んでいませんでした。
先輩社員からのアドバイスでソフトを修正し、タイミングをずらすことで大部分は改善できましたが、それでもウォーターハンマーが解決しないところもありました。さらにお客様の設備担当者からアドバイスをいただき、バルブ自体の動作速度を調整することで解決できました。
また、PIDの調整なども、事前に資料を読んで勉強していたつもりでしたが、まずどのような設定で調整をスタートすればよいのかが分からず、なかなか安定した制御を実現できなかったこともありました。
温度の急激な変化でタンク内の圧力が上昇/下降してしまうこともありました。
ただ、現場で苦労して調整したおかげで、今では「どのあたりからスタートするのが妥当か」「どのパラメータをどの程度変更すれば目的の制御に近づくか」ということが分かるようになってきました。
単純に目的の計器のPIDの調整だけではなく、周りの圧力差、流量、温度、ポンプの発熱、配管の長さなど、いろいろなことが関係していることが分かり調整のコツのようなものが分かってきたような気がします。
「”装置”モノ」は目に見えるワークとそれを搬送する動作機器が制御対象でしたが、今回ご紹介した「”プラント”モノ」では配管の中で目に見えない流体が制御の対象になっていて、経験がものを言う分野であると感じます。経験豊富な先輩社員やお客様のサポートのおかげでやってこられたと思います。
今回は「PLCソフト開発」における案件の違いに焦点を当ててご紹介させていただきましたが、極端な例では同じ分野でもお客様ごとに常識が異なる場合があります。どのような案件でも先入観や固定観念を無くして、その案件に向き合うことが重要だと思います。
違いによって苦労することもありますが、別の分野の常識を別の分野に持ち込むことで今までになかった使いやすさや効率の良さを生み出せることもあります。
そういったときの感動と達成感はひとしおです。
大変な面もありますが、他のソフテックだよりでも紹介されているとおり、オフィス内でデスクに向かっているソフト開発だけでは味わえない体験ができるのがPLCソフト開発です。
今後も経験を積み、いろいろな分野でよりよいソフト開発ができるように努めたいと思います。
つたない文章にもかかわらず、最後までご精読いただきありがとうございました。
(M.F.)
関連ページへのリンク
関連するソフテックだより