メディア

不具合を解決したある学生の助言Tales from the Cube

» 2008年01月01日 00時00分 公開
[Clark Robbins(米GS Engineering社),EDN]

 筆者は技術者になって間もないころ、油圧装置の制御回路を設計したことがある。1週間ほどかけてCMOSロジックとパワートランジスタを組み合わせた回路を設計し、その後の検証によってすべて正しく設計できたことが確認できた。そこで製造部門に依頼し、プリント配線板回路として試作を行った。試作した回路に組み込んだスイッチと発光素子を利用して装置の動作をシミュレートしたところ、その結果は良好だった。続いて、この試作回路を制御の対象となる装置に接続して試験を行った。その状態でも問題は起きなかった。さらに、装置の担当者がさまざまな使用条件で試験を行った結果、やはり大きな問題がないことが確認された。

 その後、開発チームにより、引き続き装置全体の開発/製造をどのように進めるかが議論された。自分が担当した制御回路の開発は完了していたので、筆者は自動試験システムの設計支援にかかわることになった。そのシステムはマイクロコントローラを利用して制御を行うというものだった。筆者はそのような設計の経験がなかったので、何とかその仕事に携わりたいと思った。幸い上司の指名を受けることができ、しかも十分な予算が与えられたので、大喜びで実務に臨んだ。

 その後、この自動試験システムは最初に担当した制御回路に比べるとはるかに複雑で、ハードウエアの設計とアセンブリ言語によるソフトウエア開発の両方が必要になることが分かった。装置のすべての系を対象として、すべての動作モードを巡回チェックし、油圧制御用の電磁弁の動作と配線の異常の有無もモニターし、さらには実際の制御系と同様の出力を使ったシミュレートに対応する必要もあった。こうした全機能を、マイクロコントローラのソフトウエアによって制御しなければならなかった。

 ハードウエアは何とか設計できたが、マイクロコントローラで用いるアセンブリ言語を使いこなすまでが非常に大変だった。学生時代に、「1つのアセンブリ言語ですべてのマイクロコントローラに対応できるわけではない」と教わったのだが、そのことをすっかり忘れていた。学生時代に習った言語で問題ないと思っていたのだが、使用すべき言語がそれとは大きく異なっていたのである。「スケジュール通りには進められそうにない」という不安が襲ってきた。実際、プログラミングもデバッグも順調には進まなかった。毎日、12時間以上、働くような状況が続き、ようやく改善の目処が見え始めたときに、また別の問題が発生した。

 症状から見ると、問題はソフトウエアにあるように思われた。いくつかのバグを見つけて改修したが、なお問題が残った。その後も長時間をかけてデバッグを行ったが、3日も4日もまったく進捗がないこともあった。

 手詰まりになってきたこともあり、それまで調べていなかった部分に焦点を当てることにした。その結果、ついに幸運が巡ってきた。その始まりは、実習に来ていた学生に、プリント配線板の1つを見直してみるとよいのではないかと示唆されたことだった。筆者はその示唆の内容そのものについては同意できなかったのだが、結局、その学生の意見に従ってみることにした。その結果、回路各部の動作状況をチェックすることで、シュミットトリガーICに問題があることが判明した。そのICを交換すると、自動試験システムは望み通りに動作したのだ。

 筆者は長らく技術者として働いてきたが、その間、問題を解決する能力があるとの評価を得てきた。このような評価が得られるようになったのは、このプロジェクトでの経験が身に染み、考え方を変えてきた結果だ。このプロジェクト以降、専門分野や経験、教育の程度などにかかわらず、誰からの助言であってもそれを決して無視しないように努めてきた。また、狭い範囲に焦点を絞って広い視野を失うことがないよう心掛けてきたのである。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.