HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > ソフテックだより > 第100号(2009年10月21日発行) 現場の声編「装置モノのソフトウェア開発の難しさ」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより(技術分野別)のページへ
ソフテックだより(シーン別)のページへ


ソフテックだより 第100号(2009年10月21日発行)

現場の声編

「装置モノのソフトウェア開発の難しさ」

1. はじめに

ソフテックでは今までPLCを使用したさまざまな機械制御を手がけてきました。
今回は機械制御のソフトウェア開発を行うにあたり、私が以前に担当したプロジェクトを元に難しさや苦労する点についてご紹介したいと思います。

2. 担当したプロジェクトについて

私が以前に担当した搬送装置のソフトウェアは、ユーザーインターフェースにタッチパネルを使用して、制御はPLCにて行います。
稼動部は、サーボモーター、パルスモーター、エアシリンダなどを制御することによって搬送動作を行います。
また、モーター制御はPLCで行い、サーボモーターの制御はモーションコントローラ(※1)、パルスモーターの制御は位置決めユニット(※2)によって行いました。

装置構成図
図1. 装置構成図

3. 社内試験

開発は社内で行い、設計 ⇒ 製造 ⇒ 試験と進めていきます。設計・製造についてはどの開発でも基本的には一緒ですが、試験の段階になると実機がないことによる難しさを感じます。

例えば、データ処理を行うWindowsアプリケーションなどの場合は、画面操作を行いその結果が画面内に表示されているので確認が容易にできることが多いです。
しかし、モーターなどの機械制御を行うソフトの場合にはそうはいきません。
タッチパネルなどから操作をしても動作はしません。実際にモーターが繋がっていないので当然ですが、ソフトの中を確認してみても位置決めユニットやモーションコントローラへ動作指示はだしていません。
それもそのはずで、機器を動かす際には安全のためのインターロック(※3)をいれます。社内のPLCにはI/Oも繋がっていないため安全を見るためのセンサ状態が正しくありません。そのため、動作が行われない状態になるのです。

インターロックが働くこと自体は、ソフトの動作として間違っていませんが、これでは確認ができなくなってしまいます。そこで試験用にプログラムを加えます。
このときに後で試験用だということがわからなくならないように必ず目印をつけます。もしも試験用のプログラムが残ったままになってしまうと、後々になって正しい動作ができなくなってしまうので細心の注意が必要です。こういったトラブルが起こらないようにするため、試験用のプログラムは1箇所にまとめておくよう工夫しています。これにより、1箇所を削除するだけで簡単に本番用のプログラムに戻せますし、試験用プログラムの削除し忘れが起きなくなります。

こうして、実機を用意できない社内の環境でもどうにか試験を行えるようにして試験を進めていき、ソフトから位置決めユニットやモーションコントローラへ動作指示を出すところまで確認します。
しかし、実際に動いた姿をみることはできませんので、ここが1番つらいなぁと思う部分です。ソフトとしては動くはずと思っていても、やはり実際に動きを見るまで安心はできません。

4. 実機確認

社内での試験が終了したら、いよいよ実機での動作確認です。
装置が組み立てられている工場へ移動したら、さっそくソフトをインストールして動作確認を進めていきます。

まずは順番に単体動作を確認していきますが、ここからは実機を動かしますのでケガに注意する必要もありますし、ぶつかったりして高価な機械を壊す可能性もあり普段の社内作業とは緊張感が変わります。
そして実機での確認では、社内とはまた違った苦労があります。
それは、問題が発生した場合にソフト/ハードを切り分けての問題点の見極めが必要になることです。

4-1. サーボアンプ(※4)に電気が供給されない

装置の動作確認を行っていると、動かそうとしても「・・・・」という感じでまったく動かないということがあります。
その場合にはソフト上で次の点を確認していき、原因を見つけて正しく動作を行えるよう修正を行います。

  • インターロック状態は問題ないか?
  • モーションコントローラに動作指示を正しく出しているか?
  • 移動時の動作速度は正しく設定されているか?
  • 移動先の座標は正しく設定されているか?

しかし、実機確認の初期段階では、動作の確認以前の問題が起きることもあります。
ここで担当したプロジェクトで発生した問題をご紹介したいと思います。

モーターなどを動かす前には、接続されている機器の入出力信号の状態を確認するI/Oチェックを必ず行います。
担当したプロジェクトでは、サーボモーターを動かす準備ができていることを表す「サーボレディ」信号が検出できないということがありました。このままではサーボモーターを動かすことができません。

確認をしていくと、結局の原因はサーボアンプに電気が供給されていなかったためでした。
装置のまわりにはドアがついていて、装置の動作中はドアが開いているとケガする恐れがあり危険です。それを防止するため、ドアが閉じていることをセンサで検出しないとサーボアンプに電気が供給されないよう安全対策を取っておりました。

こういった安全に関する配慮は、ハードで行う場合とソフトで行う場合があります。私自身はハードのみで安全対策した装置の経験がなく、このときは非常に勉強になりました。しかし、本来であれば事前に電源回路図面を確認してそういった安全対策があることを把握しておくべきでしたので、反省するとともに今後に活かしていきたいと思います。

このようにハードが関係する場合には電気図面の見方など電気的な知識が必要となります。最低でもセンサなどの各信号がどこにどう繋がっているか?信号線を追うことぐらいはできる必要があります。

4-2. センサなどの微調整が必要

モーターの動作ができるようになり動作確認を進めていくと、センサの調整が必要になることもあります。
例えば、リミットセンサは危険を回避するためにこれ以上動作することができないという位置に取り付けられます。そして、ソフトではリミットセンサが反応したら動作を停止するようにします。そのため、センサの反応が悪い場合には危険な位置にいる場合にも動作を停止することができなくなってしまいます。また、取り付け位置によっては本来の可動範囲まで動作することができなくなります。

またセンサなどの信号は論理(a接点「ONで検出」かb接点「OFFで検出」)が間違っている場合もあります。
このときに、単純にソフトでの信号の見方とハードの設定を合わせてあげればよいというわけではありません。センサなどは用途によって、どちらの論理で見るのが正しいという決まりがある場合があります。

例えば非常停止スイッチなどの信号は、b接点とするのが一般的です。
この理由は、ONで検出とした場合にもしも配線が切れたり接触不良となったら非常停止が効かず動作を停止することができなくなるからです。
ソフトを作るためには、決まってさえいれば信号の論理はどちらでも問題ありませんが、装置の安全性を考えるとセンサの見方1つで大きな問題となりますので、こういった機器に関する知識も必要となってきます。

5. おわりに

今までに何度か装置の立ち上げを行ってきましたが、調整段階ではソフトとハード共に問題が見つかります。また、実際に動かしてみないとわからない部分は必ずでてきます。
装置の立ち上げをスムーズに進めるには、ソフト屋だからといってソフトのことだけを見ていればいいというわけにはいきません。今までに述べてきたようにハードの調整が必要となる場合もあり、そのためには専門分野でないハードに関する知識も必要で苦労することが多いです。
しかし、私自身が動いているモノを見るのが好きということもありますが、装置が動くようになったときの感動は大きくやりがいがあります。
そのためにも苦手意識を持つことなくハードの知識も身につけ、装置全体として良いものにしていけるように取り組みを行っていきたいと思います。

(Y.R.)

[注釈]
※1
同期運転、位置追従、タンデム運転などの高度なモーション制御を、多彩な位置決めプログラムを使用して制御することができるコントローラです。
※2
シーケンスプログラムを使用してバッファメモリへ位置決めデータを書くだけで、直線補間、単独位置決めを簡単に動作することができるユニットです。
※3
連動して動作する安全機構を言います。一般には、ある操作をしようとすると安全のため関連する部分の状態を確認して、その操作の実行を許可したり、禁止したりする機構を言います。
※4
サーボ機構は、指令部/制御部/駆動部で分類され、サーボアンプは制御部にあたります。
実際にサーボモーターを動かすためには、モーションコントローラ(指令部)がサーボアンプ(制御部)を通して、サーボモーター(駆動部)を制御します。

関連ページへのリンク

関連するソフテックだより