戦う_ソフトウェア_エンジニア

【小説】戦う!ソフトウェア・エンジニア

『盤下の敵』(6)

●いざ、本丸へ

酷暑の中、我々は再度客先の工場を訪問していた。

本当に暑い。いや、暑くないと駄目なんだが。

応対に出て来たJ現場長は、全身汗びっしょりだ。
一般工場での作業は辛い。

J:「随分と物々しい設備ですな。これは何を通知するのかね?」
F:「新しいファームウェアと交換させて頂きました。外部設備は伝文異常を検出したときに異常を通知する警告灯です。工場内の騒音に負けないように警報機のレベルも上げています。」

現地の工場内は多種多様な産業機械群が絶えず動作しているので、少々の警報音では周りの騒音に勝てない。
F主任は試しに警告灯を点灯させ、警報機のスイッチを入れた。

けたたましいサイレンと赤色灯がグルグル回る。
工場の端にいても気づくレベルだろう。
J現場長は明らかに迷惑な顔をして言った。

J:「幸い我が社の工場は人が常時居なくても稼働してますが、これは相当にやかましいですな。」
F:「はい。人が近くに居なくても、気づいて頂けることが重要だと考えましたので」

F主任は試験的にONにした警報音を切った。パトライトの点灯も止まった。
設備を通常稼働に戻し終えたところで、J現場長はさらに不機嫌になって問いかけてきた。

J:「伝文異常の検出と言われましたがね、先日もお伝えしたように、施設されているのは”光ケーブル”ですぞ。お忘れではないでしょうな。」
F:「はい。十分に存じ上げています」
J:「では、どこで伝文が化ける、もしくは抜けるのですかな?」

J現場長は、F主任の次の言葉を聞いて、顔が真っ赤になっていった。

F:「光ケーブル上で異常が発生したと考えています」

F主任があまりに平然と言ってのけたので、J現場長は次の言葉を探すのに苦労しているようだった。
現場長は、少し時間を置いて自分の血圧が下がるのを待って

J:「ほおほお。面白いですな。実に面白い! ひ・か・りでノイズを拾うのですな?
大変な自信がお有りのようだが、納得いく説明を頂けると考えてよろしいでしょうね?」

言葉は丁寧だったが、J現場長の表情はほとんど鬼神だった。
対峙するトロール、いやF主任はそれとは対照的に菩薩様のように見えた。

F主任が菩薩様のように見えたということは、私も相当に精神がいかれていると言っても良いだろう。
それほどまでにこの工場は暑い。
いや、わざわざこの地域が暑い週になるという天気予報を選んで来ているのだから、暑くないと”困る”のだ。
F主任は穏やかに語り出した。

F:「これまで障害が発生している時間帯は昼間ばかりです。なぜか夜間には起きていない。生産スケジュールに変化はあっても夜間に起きないのは変だと考えましたが、これまでの障害発生数の統計から昼間だけに起きることに有意差があるとは言えない状況でしたので、単なる偶然かもと思っていました。生産スケジュールも昼間の方が多いですからね」

主任は設備に近づいて盤を手で触った。

F:「盤の温度は結構高いです。温度計を設置しましたから、後で温度変化の推移もご覧に入れることができると思います。
我々の目論見では、数日間から1週間程度、このまま運転をさせていただければと考えております。」
J:「温度?それがノイズと何か関係があるとでも?」
F:「はい。そうです。我々の再現環境でノイズによる伝文異常が発生することが確認できました」

J現場長の顔色がまた変わった。
今度は何か非常に興味を持った感じだ。瞳孔がくわっと開いたのがわかる。

J:「ううぬ。わからん。全然わからん。」
F:「無理もありません。ここにいると周りの騒音と振動で気がつきませんから」
J:「な、なに?!今度は騒音と振動まで関係があると言うのかね?」
F:「直接の関係ではないですが、問題が発生する予兆を捉えることができますので。もっと静かですと、今まさにここで…」

その時だった。

パトライトが赤色灯を灯して回転した!

至近距離で警報音が響く。
不意を突かれて、全員が耳を塞いだ。

まさにグットタイミング!
神様、仏様、エンジニアの守護神よ!あなたは今、ここにいるのですね。

J:「な、なぜ?伝文異…常…。」
F:「予想に反して、早く発生してくれました。再度ご訪問する手間が省けました。」
J:「あ、ああ・・・」
F:「では、順を追ってご説明しましょう」

舞台は一週間前の本社の試験室に戻る。

原因の特定は一本のプログラムの仕様からだった。
現場に出向く約一週間前のこと、我々は再現環境で障害を再現できたことで「ノイズ」が障害発生の引き金であることを知った。

しかし、盤内に届くだけのノイズを外部から与える手段を特定できずにいたのだった。
私から「試したいことがある」という提案に対して主任は問いかけてきた。

F:「何を試したいんだ?」
私:「この部屋の温度を上げてください」
F:「温度? 高温試験は別なところで実施しているが」
私:「いえ、ここじゃないと意味がないんです。温度センサが盤内についています。温度が上がりすぎると基盤保護プログラムが動作します。そして…」

F主任はすぐに気がついたようだ。
続きはF主任が言葉を繋いだ。

F:「盤内ファンが回るな。あれも、ノイズ源だ。」
私:「そうです。通常の温度ならほとんどファンは回りません。そのための耐環境コンピュータなのですから。
でも、客先工場の内部は本当に暑かった。あれだけ暑いと盤内はもっと暑いはずです。主任が開発した旧機種に比べて設備の性能も上がっていますから、ファンの口径も大きくて、最大で回転すると相当なノイズ源です」

Tが試験室の空調を冷房から暖房へと変更した。
一気に試験室の温度が上がる。作業服がみるみる汗だくになっていくのがわかる。

少しすると、明らかな異音が盤内から響いて来た。
盤内のファンが高速で回り出し、騒音が耳をつく。
客先工場では周りの騒音でまったく気にならなかったが、この試験室では相当にうるさく感じる。

F:「ノイズ源が盤の外とばかり考えていて視野が狭かったな。これで盤の中で引き金を引くやつがいることがわかった。後は本当の犯人探しだ」

光ケーブル設備一式を再度点検する。
光ケーブル一式に的を絞ったことで、犯人は1時間もしないうちに絞り込まれた。

-----・-----・-----・-----・-----・-----・-----・-----

さて再び、視点を客先工場へ戻そう。

F主任が設備の盤を開けて、ある一箇所を指差した。
J現場長が盤に近寄って、指差された物を見て、訪ねた。
指差されたその先は光ケーブルを設備に繋いている根元の部分だった。

J:「ん?これがどうかしたかね?」
F:「光ケーブルの端に小さなコネクタがあります。わかりますか? これは光変換器です」
J:「光、、、変換器???」
F:「はい。弊社の設備はもともと電気信号しか受け取れません。後付けで光ケーブル設備と接続するためには、どうしても「光信号」を「電気信号」に変換する機器が必要です。それがこの『光変換器』です。」

その機器はタバコの箱の半分ほどの大きさだった。
光ケーブルを直接設備に接続できない。光信号を受け取れないからだ。
そこでこの機器で光信号を電気信号に変換している。

この変換器がノイズを拾ってしまい、光ケーブルでノイズを受け付けなくても、最後の最後でノイズ耐性を無くしてしまっていたのだった。

障害発生のストーリーはこうだ。

工場内が暑くない時期には盤内ファンはほとんど回らない。
設備の性能があがったので、ファンの回転を抑制するプログラムを私は書いていた。
しかし、一定以上の温度になると基盤を熱暴走から保護する必要があるため、ファンの回転を上げて排熱する。
性能の上がった設備のため、ファンも大口径のものに差し替えられていた。

酷暑になり、工場内はとてつもない暑さになる。
ファンはほぼフル回転。
ノイズに一番弱い部分となった光変換器を直撃したのだ。

F主任は一連の説明を終えた。
J現場長は少し放心したように、黙って説明を聞いていた。

F:「いやぁ、先日お伺いしたときに気づけなくて大変に申し訳ありませんでした。意識がケーブル本体の方にばかり行っていましたから。
いかがでしょう?。このまま後一週間ほど様子見をさせていただくことも可能です。それとも、今回こちらに弊社の正規品であるケーブルも持参しておりますので、もし、ご希望があれば今回…」

現場長が主任の言葉を遮って、割って入って言った。

J:「いや、もう、十分にわかった。作業してもらえ、、、いや、頂けるのであれば、実施して頂けないか。もちろん費用は払う」

こうして、我々の長い長い酷暑は終わった。
悲しいことに会社の夏休みは全部ふっとんでいた。
ブラック企業らしく、代替の休みなど貰えるわけがない。

例の設備は、ケーブル交換後は問題なく動いている。

一つの戦いは終わったが、最後の戦いがまだ残っていた。

(つづく)



ソフトウェア・エンジニアを40年以上やってます。 「Botを作りたいけど敷居が高い」と思われている方にも「わかる」「できる」を感じてもらえるように頑張ります。 よろしくお願い致します。