タイの製造工場向け、OPC UAによるCNC旋盤7台のモニタリングとGrafanaでのローラー測定値記録システム
顧客: タイの大手製造業グループ
本事例は、CNC旋盤7台の状態とローラー測定値を、工場内サーバー上のGrafanaダッシュボードに集約したシステムです。Node-REDがOPC UAを通じて5秒ごとに機械の値を読み取り、タブレットからの測定値を工場の既存のRollerデータベースへ書き戻します。当社は2026年9月に、プロジェクト完了文書とともにタイの製造工場へシステムを納品しました。
- 業界
- 一般製造業
- 年
- 2025–2026
- 業務範囲
- Grafana画面2面(OverviewとInput)とデータ送信用Custom Plugin、GrafanaとMS SQL Serverデータベースを接続するNode-RED上のAPI、OPC UAによるCNC機械7台のデータの5秒ごとの読み取りとInfluxDBへの保存、システムテスト、プロジェクト文書の作成。2026年の追加作業を含みます:工場の既存データベースの分析とデータ抽出コマンド(Query)の作成。
要約
- 当社はローラー旋削ラインのCNC旋盤7台をOPC UAで接続し、Node-REDが5秒ごとに値を読み取って工場内サーバー上のInfluxDBへ保存するようにしました。
- GrafanaのOverview画面には、各機械のメインモーター状態ランプ、プログラム状態、Alarm、分単位のCycle Time(サイクルごとの作業時間)が一画面に表示されます。
- QC(品質検査)部門はタブレット上のInput画面でローラーの直径、幅、偏心量を記録し、Node-RED上のAPIがMS SQL Server上の既存のRollerデータベースへ値を書き戻します。
- プロジェクト期間中、顧客の同意を得て、作業完了予定時刻の代わりにCycle Timeを表示することにしました。OPC UAでは、G-code(CNC機械がワークの旋削に使う命令セット)からの計算に使うデータを送信できないためです。
- 主要な作業は2025年に始まり、顧客は2026年に既存データベースの分析作業を追加で発注しました。当社は2026年9月に、プロジェクト完了文書とともにシステムを納品しました。
現場の課題
ローラー(Roller)旋削ラインにあるCNC旋盤7台の状態は、機械に接続されたソフトウェアI-Linkの中にあり、旋削後に測定したローラー寸法は、MS SQL Server上にある工場の既存のRollerデータベースに記録する必要がありました。顧客のチームは、機械の状態、ローラー寸法、生産時間を一か所で確認すること、そしてデータベースの値を実測寸法と一致させることを求めていました。
当社の取り組み
当社は工場内サーバーにNode-RED(データ連携・処理ツール)を導入し、OPC UA(機械データをやり取りするための共通規格)を通じてCNC機械の値を5秒ごとに読み取り、InfluxDB(時系列データ用データベース)へ保存するようにしました。Grafana(ダッシュボード作成ソフトウェア)には2つの画面があり、Overview画面で機械の状態を確認し、タブレット上のInput画面でデジタルノギスの測定値を記録します。測定値は、当社がNode-RED上に構築したAPI(プログラム間でデータをやり取りする仕組み)を通じて、既存のRollerデータベースへ書き戻されます。
成果
当社は2026年9月に、プロジェクト完了文書とともにシステムを納品しました。Overview画面にはCNC機械7台すべての状態、Alarm、Cycle Time(サイクルごとの作業時間)が一画面に表示され、Input画面のローラー測定値は既存のRollerデータベースへ書き戻されます。
課題の背景
本事例の課題は、CNC旋盤(コンピューター制御の旋盤)7台の状態とローラー測定値を一か所で確認することでした。どちらのデータもすでに存在していましたが、別々のシステムにありました。機械の状態は機械に接続されたソフトウェアI-Linkの中にあり、旋削後に測定したローラー寸法は、MS SQL Server上にある工場の既存のRollerデータベースに記録する必要がありました。
顧客は、ユーザーがローラー寸法、測定値、生産時間を明確に確認できること、そしてRollerデータベースの値が常に実測寸法と一致することを求めていました。複数の機械があるラインでは、データが別々の場所にあると、どの機械が稼働中か、どの機械が停止中か、どの機械にAlarm(機械の異常を知らせる警報)が出ているかを知るために、一か所ずつ開いて確認しなければなりません。
OPC UAとは
OPC UAは、産業機械とソフトウェアの間でデータをやり取りするための共通規格です。機械または機械制御ソフトウェアがOPC UAでデータを公開していれば、外部システムはメーカー専用のコネクタを作成しなくても、状態、Alarm、各種カウンターを読み取ることができます。
要件と制約
システムは工場で使用中のソフトウェアおよびデータベースと連携し、顧客のIT部門のポリシーに従う必要がありました。主な要件と制約は次のとおりです。
- 工場内サーバーに導入し、顧客のネットワーク内で稼働します
- CNC機械にすでに接続されているソフトウェアI-LinkからOPC UAで機械データを読み取ります
- 顧客のポリシーにより既存データベースから直接データを取得することはできず、Rollerデータベースの読み書きはAPIを経由する必要があります
- データベースの値を実測寸法と一致させるため、測定値は既存のRollerデータベースに記録する必要があります
- Grafanaは全画面を特注で作るWebアプリではなく、画面の見た目とデータ入力はGrafanaの制約の範囲内で実現します
システムはCNC機械の状態をどのように読み取り、ローラー測定値をどのように受け取るのか
システムはOPC UAを通じて機械の状態を読み取り、タブレットで開くGrafanaのInput画面を通じてローラー測定値を受け取ります。両方のデータは一つのダッシュボードに表示されます。当社は機械にすでに接続されているソフトウェアI-LinkからOPC UAで機械データを読み取り、Node-RED上のAPIを通じて測定値を書き込みます。顧客のポリシーでデータベースからの直接取得が認められていないためです。
- 1
OPC UAによる機械状態の読み取り
Node-REDはCNC機械7台すべてからOPC UAを通じて5秒ごとに、プログラム状態、Alarm、回転速度、Cycle Timeなどの値を取得し、InfluxDBへ保存します。
- 2
Overview画面での全体表示
各機械にはメインモーター状態ランプ(緑は稼働中)、プログラム状態Run/Stop、Alarmランプ(赤は機械に問題あり)があり、Cycle Timeは秒から分に換算して表示します。
- 3
QCがInput画面でローラー測定値を記録
旋削完了後、QC(品質検査)部門は機械、ローラー、ローラー位置を選択します。直径と幅の値はデジタルノギスから受け取り、両側の偏心量はタブレットで入力します。システムは偏心量の差をすぐに計算します。
- 4
既存データベースへの書き戻し
保存を押すと、Node-RED上のAPIがMS SQL Server上のRollerデータベースに新しい値を記録するか、既存の値を更新します。
- 5
最新測定値テーブルの確認
Grafana上のテーブルには、ローラー位置ごとの最新の値として、現在の寸法、旋削量(Cutdown)、最新の直径と幅が表示されます。
納入物
当社はソフトウェア一式を工場内サーバー上で、システムテストおよびプロジェクト文書とともに納品しました。納品項目は次のとおりです。
- GrafanaのOverview画面:CNC機械7台すべてのメインモーター状態、プログラム状態、Alarm、Cycle Time
- GrafanaのInput画面と、ローラー測定値を送信するためのCustom Plugin(当社が追加開発した拡張機能)
- ローラー位置ごとの最新測定値テーブル
- Node-REDによるOPC UA経由の機械データの読み取りとInfluxDBへの保存
- GrafanaとMS SQL Server上の既存のRollerデータベースを接続するNode-RED上のAPI
- 2026年の追加作業:工場の既存データベースの分析とデータ抽出コマンド(Query)の作成
プロジェクト期間中に作業範囲はどう変わったか
作業範囲は画面と測定値テーブルについて変更され、いずれも開発中に判明したデータまたはツールの制約によるものです。各変更はプロジェクト完了文書に次のとおり記録されています。
- 作業完了予定時刻の代わりにCycle Time:当初の計画ではG-code(CNC機械がワークの旋削に使う命令セット)から作業完了予定時刻を計算する予定でしたが、OPC UAではその部分のデータを送信できません。そのためOverview画面には各機械のCycle Timeを表示します。
- 測定値テーブルの一部の列を削除:既存データベースのローラー寸法を遡って参照する必要がある列は削除しました。既存データベースの構造ではそのような参照ができないためです。
- 入力欄を一つのパネルに統合:Grafanaの標準Pluginはテキスト形式のデータを送信できないため、当社は入力欄を一つのパネルにまとめ、データ送信用のCustom Pluginを作成しました。
主要な作業は2025年に始まりました。その後2026年に、顧客は工場の既存データベースの分析とデータ抽出コマンド(Query)の作成を追加で発注しました。
納品により確認できた成果
本事例の成果の裏付けはプロジェクト完了文書(Product Document)で、納品した画面とプロジェクト期間中の画面範囲の変更を記録しています。この文書にはOverview画面とInput画面のほか、ローラー位置ごとの最新測定値テーブルも掲載されています。このテーブルには現在の寸法、旋削量、最新の直径と幅が表示されます。
本事例には、機械停止時間の削減といったビジネス効果の測定値はありません。そのため当社は、納品した内容と文書で確認できる内容のみを報告しています。
私たちが学んだこと
この案件から、機械データを工場の既存システムに連携する作業について、次の原則が得られました。
- 機械がOPC UAで実際に送信できるTag(データ項目)の一覧を、画面設計の前に確認します。機械が出力していないデータから計算する値は表示できません。本事例では、そのため作業完了予定時刻をCycle Timeに変更する必要がありました。
- 既存データベースへのアクセス方法は、開発開始前にIT部門と取り決めます。本事例ではポリシーによりデータベースからの直接取得が認められていなかったため、連携作業はAPIを待つ必要があり、ITチームと現場の間の接続に関する会議も延期されました。
- ツールの制約と既存データベースの構造に合わせて画面を設計し、画面の範囲を文書で明確にします。Grafanaは全画面を特注で作るWebアプリではなく、どの列を実際に表示できるかは既存データベースによって決まります。
この手法をお客様の工場に適用する方法
貴社のCNC機械または機械制御ソフトウェアがOPC UAでデータを公開していれば、本事例と同じ方法を利用できます。つまり、機械の状態をNode-REDに読み込み、InfluxDBに保存してGrafanaに表示し、測定値を工場の既存データベースへ書き戻す方法です。調整が必要なのは、機械のTag一覧と貴社の既存データベースへのアクセス方法です。
再利用できる部分と調整が必要な部分
| システムの部分 | 再利用可能 | 調整が必要になる場合 |
|---|---|---|
| 機械データの読み取り | Node-REDによるOPC UA経由の値の読み取りとInfluxDBへの保存 | 機械または機械制御ソフトウェアがOPC UAでデータを公開していない、または異なるTagセットを公開している場合は、先に現場調査が必要です |
| Overview画面 | 機械ごとのメインモーター状態ランプ、プログラム状態、Alarm、Cycle Time | 貴社が機械の出力していない値(作業完了予定時刻など)を必要とする場合は、対応するデータがあるかどうかの確認が必要です |
| Input画面 | Custom Pluginによる、タブレット上でのデジタルノギスの値の受信 | ワークや測定する値がローラーと異なる場合は、入力欄と計算を新たに定義する必要があります |
| データベースへの書き戻し | 既存データベースに値を記録または更新するNode-RED上のAPI | 貴社のデータベースが別のシステムである場合、またはIT部門の権限設定が本事例と異なる場合は、テーブルと接続方法を改めて取り決める必要があります |
- 画面仕様をまとめる前に、機械がOPC UAで実際に送信できるTagの一覧を入手します。
- 開発を始める前に、既存データベースの権限、テーブル、接続方法についてIT部門との合意を済ませます。
- ダッシュボードに必要な画面とデータを、Grafanaの制約と照らし合わせて書面にまとめます。
使用する技術
よくある質問
このシステムはどのようなCNC機械で使用できますか?
機械または機械の制御ソフトウェアがOPC UAでデータを公開している場合に使用できます。この事例では、機械にすでに接続されていたソフトウェアI-LinkのOPC UAから読み取っています。その他の機械については、現場とTag一覧を調査してからでないと確定できません。
工場の既存のデータベースやプログラムを変更する必要はありますか?
この事例では既存のデータベースを変更していません。システムはNode-RED上のAPIを介して、MS SQL Server上の既存のRollerデータベースに測定値を書き戻しており、対象は合意したテーブルとカラムのみです。また、お客様のネットワークポリシーに従って動作します。貴社での接続方法は、構成およびIT部門と合意した権限によって異なります。
なぜ作業の完了予定時刻ではなくCycle Timeを表示しているのですか?
OPC UAでは、G-codeから作業の完了予定時刻を算出するためのデータを送信できないためです。当初はこの値を算出する計画でしたが、プロジェクトの途中で、お客様の同意を得て、代わりに各機械のCycle Timeを分単位で表示することになりました。
データはどこに保存されますか?
データは工場内のサーバーに保存されます。機械データはInfluxDBに、ローラーの測定値はお客様の既存のRollerデータベースに保存されています。
価格と期間はどのくらいですか
固定価格はありません。機械の台数、読み取りたいデータ、連携が必要な既存システムによって異なります。現場調査後のお見積もりについては、当社までお問い合わせください。




