「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
ソフテックでは、マイコンソフト開発・Windowsソフト開発・PLCソフト開発を業務の3本の柱としています。
マイコンは家電製品等に組み込まれているため日常生活で接する機会が多く、Windowsもパソコンをご存じであれば知らない方はいらっしゃらないでしょう。
しかし、「PLC」というと一般の方々に馴染みが無い物だと思います。
そんなPLCと、それを扱う仕事というのはどういうものか、簡単ですがご紹介します。
PLCは「プログラマブルロジックコントローラ(Programmable Logic Controller)」の略です。「PLC」をインターネットの検索サイトで検索すると「電力線通信(Power Line Communication)」というものも出てきますが全くの別物です。
PLCについて説明されているWebサイトや書籍は様々ありますが、全く知らない人に説明するのはとても難しいです。
そもそも一般的にソフトウェアその物が理解しにくいものだと思います。
画面への表示などでソフトの動作が見える部分はありますが、それはあくまで一面でしかなく、裏でひっそりと動いている部分はたくさんあります。
さらに、PLCは工場の生産ライン等で使われているため一般の人が目にすることはほとんどなく、ともすればその工場で働いている人ですら普段は気に留めることは無いほど奥ゆかしい存在です。
私自身、会社に入ってPLCの仕事をするまでは何のことかサッパリでした。
実際に物を見て触って動かして…を経てようやく理解しましたが、両親や親戚に「どんな仕事をしているの?」と聞かれてもうまく答えられませんでした。
結局、「どうやらパソコンを使う仕事らしい。何だか良くわからないが、元気でやってるんならまあいいよ」という非常にボンヤリとした認識を持たれて今に至っています。
確かにPLCソフトを作るときにはパソコンを使いますが、肝心のPLCのことは一切伝えられていません。
本題に戻って、とても簡単にPLCを言うと「色々な機械を決められた手順で自動的に動かすための装置」と言えます。
順序どおりに動かすことを「シーケンス(=Sequence:連続・順序)制御」と呼ぶため、PLCのことを「シーケンサー」と呼ぶこともあります。
制御というと難しいですが、例えば「スイッチを押したらポンプが動作する」というような単純な仕組みを考えてみます。
単にそれだけならPLCは要りません。
しかし、実際にポンプを動かすには色々な前提条件があります。
ポンプで送る元のタンクは液が入っているか?(空なのにポンプを動かすと壊れてしまう)、送る先のタンクはいっぱいになっていないか?(言うまでもなく溢れてしまう)、しかも毎回スイッチを押さなくても必要なとき・動いても問題が無いときに勝手に動いてくれれば・・・というところでPLCの出番となります。
PLCは、ソフトを実行するCPUユニットの他に、入力ユニット・出力ユニット・その他の高機能ユニットを用途や規模に応じて組み合わせて使います。
(それらが初めから一緒になった一体型もあります)
上記2-2.の例で言うと、空や満杯を検知するセンサの入力を受け取る入力ユニット、ポンプを動かす指令を出すための出力ユニットが必要・・・というように何をどのように制御するかによってユニットの種類や数を決めます。
PLCは「ラダー言語」と呼ばれる形式で記述します。
ラダー言語については色々と解説したWebサイトや、他のソフテックだより(第15号「はじめてのPLCソフト開発」)等をご覧いただくこととし、ここでは詳細は省きます。
PLCにラダー言語で記述したソフト(実体はアセンブラに変換されている)を転送すると、それを繰り返し実行し続けます。
図1. シーケンス制御対象の設備例
図2. シーケンスの実行イメージ
ここまで読んで「パソコンでもプログラムを組んで同じことができるんじゃないの?」と思った方もいらっしゃるでしょう。
もちろんパソコンでも実現可能ですが、PLCには以下のような利点があります。
図3. PLCの外観と設置例
だいぶ前置きが長くなりましたが、PLCがどんな物か何となく伝わったでしょうか?
それを踏まえた上で、ここからは技術的な話は置いておき、実際にPLCソフト作成を行うときの難しさや大変さを挙げてみたいと思います。
機械を動かす条件に間違いがあったり、条件が足りなかったりすることで、思わぬタイミングで動作して設備や装置を壊してしまったり、場合によっては人にケガを負わせてしまう可能性があります。
また、目的とは違うタンクのバルブを開けて誤って製品を廃棄してしまうなどお客様に多大な損害を与えてしまうことも考えられます。
その事を頭に置いて十分なシミュレーションを行い、安全を見越したソフト設計が必要になります。
シミュレーションを行っても、実際に現場で確認をして初めて問題がわかる場合もあります。
ひどい例では、実際の配管が図面と違っていた(古い設備では改造だけが行われて図面が更新されていない等)ということや、事前に考えていた制御では設備の構成上うまくいかなかったということは珍しくありません。
PLCのユニットだけを取っても何種類もあり、それぞれの機能や扱い方を知っておかなければなりません。
また、メーカーごとに違うPLCの操作方法やユニットの扱い方、機器を壊したりしないための最低限の電気的・機械的知識のほか、状態表示を行うためのタッチパネル式表示器やscada(=Supervisory Control And Data Acquisition)の画面・機能作成の方法、他PLCや装置との通信取り合いを行う手段・・・など様々な知識が必要になります。
もちろん、辛いことばかりではありません。
特に私自身が感じているPLCソフト作成に携わる魅力を挙げてみます。
自分の作ったソフトによって、一目で見渡せないような設備や大型機械が動くのは圧巻です。
まるで創造主になったよう・・・というのは言い過ぎですが、「この設備は俺が(作ったソフトで)動かしているんだ!」という感動があり、調整が終わった後の達成感もひとしおです。
PLCソフトの性質上、設備がある場所へ行って動作確認を行うのがほとんどです。
必然的に、工場に勤務されていてその設備を使うお客様と接する機会が生まれます。
市販ソフトではアンケート等で声を聞くこともあると思いますが、PLCソフト等の「産業用」と言われるようなソフトではお客様からダイレクトにご意見をうかがう事ができます。
もちろん、ソフトの調整がうまくいかなければ針のムシロになるわけですが、使い勝手を直接聞いて改善し喜ばれたり、無事に終わった時にお客様のホッとした顔を見るのはうれしいものです。
私が勤務しているのは八戸事業所ですが、青森近郊や東北地方に限らず日本全国どこでも出張します。
出張先によっては観光地の近くだったり、そうでなくても普段は行く機会が無い土地に足を踏み入れることもあります。
私自身の出張最南端記録は種子島です。
種子島と言えば宇宙センターを思い浮かべる人も多いかと思います。私の出張時は残念ながらロケットの打ち上げ時期ではありませんし1月の寒い時期でしたが、北国とは違う街並みや風景、食事など十分に楽しめました。
飲料工場や食品工場のソフトを手掛けた場合、製造立ち会い時にはラインを流れる製品から、一般的に缶の底や箱の裏に記載されている「製造所固有番号」を知ることができます。
そうすると、スーパーやコンビニに並んでいる製品が、自分の携わった工場やラインで製造された物かわかるようになり、悦に入ることができます。
こればかりはPLCソフトを実際に作ってみなければ味わえない楽しさだと思います。
いかがでしたでしょうか?
大変な面もありますが、単に机に向かってソフトを作っているだけでは味わえない体験ができるのがPLCソフト作成業務です。
特に学生の皆さんには少しでもPLCに興味を持ち、願わくはソフテックへ入社して一緒に楽しんでいただきたいと思います。
(S.T.)
関連ページへのリンク
関連するソフテックだより