装置のログCSVをドラッグするだけ ― ブラウザで動く3D可視化ツールを作った

装置のログCSVを3Dで可視化するツールの記事のアイキャッチ画像 DX

工場の装置の多くは、動いた記録をログとして書き出しています。でも、そのログが改善に活かされているかというと、意外とそうでもありません。ファイルはあるのに、見づらくて誰も開かない。そんなログを、CSVをドラッグするだけで3Dで見て、傾向まで分析できるツールにしました。

ブラウザで開くHTMLファイル1つで動き、インストールもネット接続も不要。データはブラウザの外に出ません。この記事では、作った経緯とツールの中身を紹介します。

※ 仕事で使っているツールのため、実際のデータ・品番・設定値・分析結果は載せていません。図はすべて説明用のイメージです。

対象は「振れ矯正プレス」

対象の装置は、軸のような長い部品の曲がり(振れ)を直すプレス機です。部品を回しながら数か所で振れを測り、振れが大きい場所を、曲がっている向きと反対側から押して真っ直ぐにしていきます。一度で直らなければ、測って、押して、を繰り返します。

…… 数か所で振れ(大きさと向き)を測る 振れの大きい所を、反対側から押す
振れ矯正の模式図(イメージ)

装置は、部品1本ごとに「最初の振れ」「押した場所と量」「押したあとの振れ」「最後の結果(OK / NG)」をログに書き出します。振れは大きさと向き(角度)の2つで記録されています。

作った経緯

きっかけは、なかなか真っ直ぐにならない部品があったことです。押す回数が増えたり、最後までNGになったりする。そこで、押し方の設定(装置のプログラム)をいくつか作り分けて試していました。

試すとなると、知りたいことが出てきます。

  • 押す回数が増えるのは、なぜか。NGになるのは、なぜか
  • ある場所を押すと、ほかの場所はどの向きに、どれだけ動くのか
  • プログラムを変えると、結果はどう変わるのか
  • 次に、どの対策を試すべきか

答えの材料は、装置のログの中にあります。ただ、ログは部品1本分が種類の違う何行ものブロックになっている独特の形式で、Excelで開いても、1本ずつの経過を追うのも、何百本分を集計するのも大変でした。しかも、振れは「大きさ」と「向き」の組なので、数字の表のままでは形が頭に浮かびません。

そこで、Claude Code と一緒に、ログをそのまま読み込んで、見て、比べられる道具を作ることにしました。最初の版から、使いながら機能を足して、約10日で今の形になっています。

4つの画面

ログのCSVを画面にドラッグ&ドロップすると(複数ファイルもまとめて)、左に部品の一覧が出ます。ファイル、プログラム、結果、日付などで絞り込めます。右側は4つの画面に分かれています。

1. 個別の部品:1本の矯正の経過を追う

  • 振れの形を3Dで表示。測る位置ごとに、合格の基準を円で描き、超えているところを強調する
  • 押すたびに振れがどう変わったかを、コマ送りで再生できる
  • 位置ごとの振れの向きと大きさの軌跡を、極座標(丸いグラフ)で表示
  • 「何回目 × どの位置」の振れの大きさを、ヒートマップ(色の表)で表示

2. 重ね表示:最初の形を見比べる

選んだ部品の「最初の振れの形」を、向きをそろえて重ねて表示します。OK / NG や押した回数で色分けすると、直りにくい部品の形に共通点がないかを目で探せます。

3. 全体分析:1回押したときの効きを集計する

「どの位置を、どれだけ押したら、振れがどれだけ減ったか」を、押した1回ごとに集計します。ある位置を押したとき、ほかの位置がどう動いたか(干渉)を、表の形でまとめて見ることもできます。

4. 傾向分析:全体とプログラムごとの違いを見る

合格率、平均の押した回数、押して悪化した割合などの指標と、日ごとの推移を表示します。プログラムごとの集計表もあり、プログラムを選ぶと一覧が絞り込まれます。NGになった部品は、ログの内容から原因の候補を自動で分類します(装置の停止理由を直接読んだものではなく、ログからの推定です)。

作りの工夫

HTMLファイル1つで、オフラインで動く

グラフの描画には Plotly というライブラリを使っていますが、ネットから読み込まず、HTMLファイルの中に埋め込んでいます。編集用のファイルとは別に、埋め込み済みの配布用ファイルを作るスクリプトを用意しました。配布用のファイルは約4.6MBと大きめですが、職場のPCにコピーしてダブルクリックすれば動きます。ソフトのインストールも、ネット接続もいりません。

データを外に出さない

ログは生産のデータそのものです。ツールはデータをブラウザの中だけで処理し、どこにも送りません。コードを管理するリポジトリにも、ログとそこから作ったファイルは入れないよう、最初の版から設定しています(.gitignore)。ツールの説明書にも、品番や実績の数値は載せないと決めて書いています。

ログにない設定は、ログから推定する

「合格の基準」や「押す回数の上限」は、プログラムごとに違いますが、ログには書かれていません。そこで、読み込んだログからプログラムごとに推定しています(たとえば、合格した部品の最後の振れの最大値から基準を推定する)。

ただし、推定は件数が少ないと低めに出ることがあります。そこで、画面で直接入力した値 > 設定ファイルの値 > ログからの推定の順に優先するようにしました。正しい値がわかっている人は、画面や設定ファイルで上書きできます。

ログを読む処理は2つ、結果は1つ

ブラウザで見るためのビューアとは別に、詳しい分析用に Python のスクリプトもあります。ログを読む処理は、ビューア(JavaScript)と Python の2か所にあり、説明書に「同じ結果を返すこと」と明記しています。片方だけ直して、画面と分析で数字が食い違う、という事故を防ぐためです。

数字の表を「形」で見る

このツールのねらいは、数字の表を「形」で見られるようにすることです。1本の部品の矯正をコマ送りで見れば、「この位置を押したら、隣がこう動いた」を目で追えます。何百本分をまとめて集計すれば、1本ずつ見ていては気づきにくい傾向も探せます。

一方で、ログから見えた傾向は、あくまで仮説です。原因を確かめるには、装置での確認や、条件を変えた試験が必要です。ログの分析で何が言えて、何が言えないのか。分析を作る中で気をつけたことは、次の記事で紹介します。

まとめ

  • 直りにくい部品の原因を探すため、装置のログを見て比べられる道具を作った
  • CSVをドラッグするだけで、1本の経過(3D・コマ送り)から全体の傾向まで見られる
  • HTML1つでオフライン動作。データは外に出さず、リポジトリにも入れない
  • ログにない設定はログから推定し、わかっている人が上書きできるようにした

装置のログは、多くの現場で眠っています。形式が独特でも、「読み込んで、見て、比べる」道具があれば、改善の材料に変わります。

コメント

タイトルとURLをコピーしました