国土交通省が航空交通管理センター(福岡市)で運用している航空管制システムで,トラブルが発生していたことが明らかになった。今月10日には「航空交通流管理システム」で端末が操作不能に陥った。同12日には「飛行情報管理システム(FDMS)」で処理が異常終了した。

 いずれのトラブルも原因はプログラムのバグ。今年2月にシステムをリニューアルした際に紛れ込んだ。航空局 管制保安部の奥野明氏(保安企画課 管制情報処理システム室 管制調査官)は「プログラムの仕様,およびコードに対するレビューが不足していたかもしれない」と分析する。なお,いずれのトラブルも航空機の運航に対して大きな影響は与えなかった。

 航空交通流管理システムは,特定の空域に航空機が集中することを避けるために,交通量を制御するためのもの。NECのACOS上で稼働するこのシステムは,他システムから飛行計画情報を受け取り,予測交通量のグラフを作成して端末に配信する。管制官は,このグラフから混雑の状況を分析し,必要であれば「交通量を制御する」旨の指示をシステムに与える。これにより,航空機の出発時刻などが調整される。

 システムに対して指示が出せる端末は25台あり,すべてが5月10日の午後2時16分から午後4時25分まで操作不能に陥った。これら端末では予測交通量のほか,気象情報も受け取る。ある気象情報データに余計なデータが付加されたことで,端末側の表示プログラムでエラーが発生。その後,ACOS側で該当データの再送処理が繰り返され,端末の操作が利かなくなった。
 
 トラブルの引き金となった気象情報データは,気象庁経由で送られた「パイロット・レポート」の一つ。パイロット・レポートとは,「大島の上空,高度XXで,軽い乱気流が発生」といった情報をパイロットが簡単な英文で発信したもの。情報を受け取った航空交通流管理システムは,いったんワークエリアにデータを格納。それを読み込み,端末に送信するためのエリアに書き出す。この「書き出しプログラム」にバグがあった。

 書き出しプログラムは,データに無駄なスペースが含まれていた場合に,それを取り除く機能を持つ。5月10日にワークエリアに格納されていたあるパイロット・レポートは「無駄なスペースが非常に多いデータだった」(奥野氏)。書き出しプログラムは,スペースを飛ばして読み進むうちに,誤って隣のデータまで読み込んでしまった。隣にあったのは,以前に格納されたある「台風」の情報だった。「台風」のデータには,パイロット・レポートでは使われない「制御コード」が入っている。

 こうした処理が重なり,パイロット・レポートに制御コードが付加され,端末に送られた。端末側の表示プログラムは「パイロット・データには制御コードが含まれない」という前提で動き,該当データを処理できずエラーが発生した。

 この問題の原因は,書き出しプログラムが隣のデータまで読み込んでしまったことにある。本来は,“パイロット・データ”が終わったところで読み込みを止めるべきだった。COBOLを使った航空交通流管理システムは,NECとNTTデータが開発を担当した。既に該当のプログラムは改修を終えた。近く,本番システムにリリースされる予定である。

 このトラブルから2日後の12日,今度は「飛行情報管理システム(FDMS)」で処理が異常終了した。端末側のプログラムにバグがあった(以下「後編」に続く)。