−40℃、25℃、125℃の3条件で試験をした際には何の不具合も起きなかったシステム。トラブルの原因は一体何なのか。
ずいぶん昔のことになるが、筆者はある電子機械システムの開発プロジェクトに加わっていた。そのシステムには、油圧機械、マイクロプロセッサ、カスタムIC、電源回路、ソフトウエア、DCモーター、ソレノイドなどが使われていた。このプロジェクトで、筆者は外注業者による電子回路/ソフトウエアの設計を管理する立場にあった。当初、設計は順調に進み、その試験結果も良好だった。製造工程に移行するに先立って、いくつかの顧客先で事前の運用試験を行うことになった。
その運用試験では、筆者らが開発したシステムの動作状況を連続的にモニターし、各種動作データを取得することになった。そのためのデータロガーは、システムとシリアルリンクで接続する方式とし、筆者が設計を担当した。いくつかの顧客先で、データロガーの系を含めてシステムのセットアップが完了し、実際に試験が開始された。すると、試験の開始早々、データロガーのデータからシステムに不具合が発生していることが判明したのである。
調査の結果、システムの主要なセンサーからの信号に問題が起きていることがわかった。システム全体の試験を事前に行った際には、何ら問題は出ていなかったのにもかかわらずである。
エラーが発生する原因はまったく思い当たらなかった。そのシステムは屋外で使用されるので、温度範囲が−40〜125℃の過酷な環境に堪えることが求められていた。温度に関して言えば、−40℃、25℃、125℃の3条件で十分な試験を行って、問題のないことを確認していた。
外注業者の技術スタッフの中に、エラーが発生した際の動作の様子を直接観測していた人がいた。その人からの情報を踏まえ、温度条件を変更して試験を再実施することにした。具体的には、−40℃から125℃まで5℃刻みで、顧客先のシステムでデータを収集することにした。試験の開始後、すぐにデータロガーからシステムの動作の不具合を表すデータが出力された。筆者らは、エラーの発生原因は電子回路にあると考えた。
データロガーからのデータを詳細に分析したところ、やはり温度の変化に伴ってエラーが発生することがわかった。取得したデータを詳細に検討した結果、エラーはある温度範囲で発生することが判明した。しかも、その温度範囲が各顧客のシステムごとに異なっていた。エラーの発生する温度範囲が、あるシステムでは40〜80℃であり、別のシステムでは60〜90℃といった状況だった。ただし、−40℃、25℃、125℃の3条件ではどのシステムでも問題は起きていなかった。
これらの結果から、筆者らは問題の原因は信号処理ICに関連していると結論付けた。そのICはカスタム品であり、正負の温度係数を有する部品を内蔵していた。その働きにより、センサーの信号に対するスレッショルド値の設定とヒステリシスを実現していたのである。その内蔵部品の温度係数がある狭い温度範囲で適切な値から外れ、センサーからの信号のスレッショルド判定に狂いが生じ、またヒステリシス特性が消失したことで不具合が発生しているものと考えられた。そのため、このICの設計を大至急改善し、何とか当初の予定どおり、システムの製造にこぎ着けることができた。
問題の解決までには苦労もしたが、幸運に恵まれた面もあった。それは、入力信号や、内部の信号/ステータスを外部からチェックするための機能をシステムに持たせていたことである。そのため、短期間で問題を把握して改善することができた。また、製造に先立って、顧客先での実運用試験を行うと決めていたことも幸いであった。
この問題解決の中から学んだ最大の教訓は、複雑な温度依存性を有する部品については、低温、室温、高温の3条件だけではなく、規定温度範囲の全体にわたって細かく特性を評価しなければならないということだった。
Copyright © ITmedia, Inc. All Rights Reserved.