Machine Logsをクエリ可能なテーブルに変換。
CNCコントローラー、ロボット、PLCゲートウェイがすでに書き込んでいるアラームログや稼働ログを、SQLテーブルに変換します。PLCのプログラミングやMESの導入は不要。アラーム、サイクル、ダウンタイム、OEEの算出に必要な入力データを扱えます。
結果は、Excel、Google Sheets、AIツール、Database REST API経由のアプリで利用できます。
すべてのコネクタータイプをFreeで利用できます。データソース2つとエージェント1つから始められます。
Query Streamsは、機械コントローラが既にディスクに書き込んでいるログファイルを読み取り、Microsoft Excel、Google Sheets、MCP経由のAIアシスタント、REST API、Power BIから読み取り可能なライブSQLテーブルに変換します。Mazak、KUKA、Homag、Fanuc、Haas、Okuma、Siemens、Heidenhain、Mitsubishi、Centroid、Hurco、Kawasakiの各コントローラ用のプロファイルが付属しており、その他のコントローラは手動で記述できます。マシンに何もインストールされず、何もアップロードされません。エージェントはファイルが保存された場所からファイルを読み取り、クエリ結果のみがネットワークから送信されます。
- PLCのプログラミング不要、MES不要
- 12種類のコントローラーファミリーに標準対応
- アラーム、サイクル、ダウンタイムをSQLとして扱う
適切な設定でMachine Logsを接続。
接続にはNetwork Agentを使用します。ここではMachine Logs固有の詳細を説明します。
- フォルダ
- コントロールがすでに書き込んでいる場所ならどこでも対応します。ローカルディスク、または \\server\share の形式で指定するネットワーク共有(マップされたドライブ文字は不可。LinuxまたはMacでは先にマウントしてください)。サブフォルダーも対象で、包含・除外パターンをサポートします
- 形式
- コントローラーのプロファイルに固定されています。レコード境界、文法、タイムスタンプ形式、列名がすべて含まれます
- コントローラー
- Mazak、KUKA、Homag、Fanuc、Haas、Okuma、Siemens、Heidenhain、Mitsubishi、Centroid、Hurco、Kawasakiに対応。その他の機器向けに、自分で記述するモードもあります
- ローテーション
- 回避策ではなく、正しく対応します。名前付きのローテーションパターン10種類に加え、非圧縮の通常ファイルにも対応し、圧縮アーカイブも含みます
- 形式に一致しない行
- events_raw_linesに原文のまま保持され、破棄されることはありません
- 資格証明書
- ありません。サーバーは不要で、エージェントがファイルをその場で読み取ります
- SQL方言
- DuckDB。標準SQLなので、機械固有の知識を学ぶ必要はありません
機械制御装置に何もインストールせず、PLCロジックにも触れません。コントローラーはこれまでどおりログを書き込み続け、フォルダーを参照できるマシン上のエージェントがそのファイルを読み取ります。解析した行はエージェント内の暗号化ストアにキャッシュされ、新たに追加されたバイトだけを再読み込みします。工場のネットワークがオフラインでも、ログは制御装置上に残り、次回の同期で追いつきます。
Machine Logsの仕組みに合わせて設計されています。
取得できるデータ
- ログに記録されたイベント1件につき1行。コントロールが書き込んだタイムスタンプ、アラームまたはメッセージコード、そのテキスト、そして発生元の機械を示す _source_file が含まれます。
- コントローラーが保持している内容に応じて、アラーム履歴、操作履歴、メッセージログに対応します。どのファイルが重要で、どれがノイズかはプロファイルが把握しています。
- 工場内のすべての制御装置のデータが1つのテーブルに集約されるので、「今月、最も多く停止した機械はどれか」は、現場を歩き回らずに GROUP BY で調べられます。
- プロファイルが認識できない行も events_raw_lines にそのまま保持されるため、特殊なアラーム形式についても質問に答えられます。
-- 機械別のダウンタイム集中箇所(今月)
SELECT _source_file AS machine, code, COUNT(*) AS hits
FROM fileset.events
WHERE severity = 'ALARM'
GROUP BY machine, code
ORDER BY hits DESCお使いのコントローラーが一覧にない場合
12種類のコントローラーファミリーにはプロファイルが付属します。「その他のコントローラー」も、あしらうための返答ではありません。ログドライバーのカスタムモードでは、レコード境界、文法、タイムスタンプ、列を一度だけ自分で定義でき、フォルダーは他と同じようにテーブルになります。標準対応をご希望の場合はご相談ください。ご要望に応じてプロファイルを追加します。
形式と動作の詳細
Machine Logsに必要なリファレンスを開いてください。
コントローラーのログが入ったフォルダは、ダウンタイム表となる。
コントローラーのログが入ったフォルダは、ダウンタイム表となる。
Query Streamsは、コントロールがすでに書き込んでいるファイルを読み取り、その形式を固定し、工場で実際に必要とされるテーブルを導出します。生の行も引き続きクエリ可能です。パーサーが読み取れない行は理由とともに行として保持され、黙って破棄されることはありません。
ローテーション、再出力されたエクスポート、重複行にも対応
セレクト 日付、ID、実行中/計画中 AS 可用性、計画外のダウン、小規模な停止
フロム fileset.oee_inputs
どこ アイデンティティ = 「MILL-04」
ORDER BY 日付 DESC同じクエリでERP作業指示書に結合します
マシンが既に書き込んでいるファイル、今度はレポート作成用のテーブル
12種類のコントローラーブランドが箱から出してすぐに使える
12種類のコントローラーブランドが箱から出してすぐに使える
各カードには、そのコントローラーで Query Streams が読み取る正確なファイル、ファイルの取得元、ファイルの動作(ライブで追記、エクスポートのたびに全体を書き換え、イベントごとに新しいファイルを作成)が記載されています。
サポートされているコントローラーログ
19形式 · 12ブランド/shdr/*.txtMTConnectアダプターのストリームキャプチャ- 1台のマシンにつき1日1ファイル
- マシンが稼働している間、リアルタイムで追加します
Logbuch_*.txtコントローラー診断エクスポート- UTF-16テキストをデコードしました。
- エクスポートごとに全文書き換え
- woodWOP NC実行ファイル、サイクル開始時に書き込まれる
.prl .ctt .pctCutRiteプランニングファイル、最適化ごとに11個- 実行ごとに新しいファイルが1つ作成されます。
OPRT_HIS.TXTコントロールからパンチされた操作履歴MD/ERRALL.LSコントローラーのバックアップからのロボットアラーム履歴- リングバッファ — 全体が再出力され、追記はされません
AlarmHistory.txtアラーム履歴(コードとタイムスタンプ付き)- 解凍した
HaasBackup(mm-dd-yyyy)USBスティックに - バックアップごとに新しいファイルが1つ作成されます。
ALARM_HISTORY.DATOSPアラーム履歴- から
NCBACKUPコントロールバックアップのフォルダ - 各バックアップ全体を書き換える
ac_log/*.logHMIアクションログとアラームログ- から
/user/sinumerik/hmi/ac_logコントロール - エクスポート時に全体を書き換えます
TNC:\LOGBOOK.Aコントロールログブックのダンプ- MODコードLOGBOOKまたはTNCremoで取得
- 各ダンプで全体を書き換えます
LOG\ALMLOG.LOGアラームログ- メモリカードに書き込まれた制御バックアップから
- 各バックアップ全体を書き換える
c:\cncm\msg_log.txtメッセージログ —連続旋盤で- F7 Create Report zip ファイルからも読み取ってください。
- 追記後、先頭から削除。行を失わずに処理します
出力ファイル\NavErrエラーごとに1つのファイル出力ファイル\NavESTOP緊急停止ボタンごとに1つのファイル- イベントごとに新しいファイルが作成され、フォルダは無制限に拡張されます。
エラーログロボットエラーログ- コントローラーのデータバックアップ(SAVE / ELOG)で保存されました。
- 各バックアップ全体を書き換える
Logs/*_YYYY-MM-DD.logCNCコントローラーのシステムログLogs/plc*.logPLCキー=値テレメトリ*.jsonlロボットコントローラーのJSON行*_YYYYMMDD.csvヘッダーなしレーザーCSV、小数点カンマ
エージェントのリリースごとに新しいコントローラーフォーマットが追加されます。エージェントは常に最新の状態に保たれるため、後からサポートされるコントローラーは、ユーザーがUSBメモリをマシンに接続しなくてもコネクタに表示されます。
あらゆる工場のコントローラーログを、機械のある場所で読み取ります
各プラントからのコントローラーログ、 機械がどこにあるか読んでください
コントローラーログは、通常その場に取り残されます。機械上や工場内の共有フォルダーに置かれ、工場のファイアウォールの内側、レポートツールからはアクセスできない建屋にあります。各工場で Network Agent を実行すると、これらのファイルをその場で読み取り、Query Streamsに接続します。工場のファイアウォールから見ると、通常の送信接続にすぎません。開放するポートも、拠点間VPNも、機械ごとのチケットも不要です。
3つのアウトバウンド接続を、1か所でクエリ — インバウンドポートもVPNもファイアウォールの変更も不要
植物1株につき薬剤1種類
Agentは1台の機械ではなく、サイト全体をカバーします。その工場の各コントローラー共有フォルダーが、同じAgent上の独立したFile Setコネクターになります。FreeプランではAgentを1つ、各有料プランではそれ以上実行できます。
1プラント=1エージェント=多数のコントローラー
開けるものはありません
Agentは暗号化された送信接続を1つ確立し、送信するリクエストも、戻ってくる行データも、どちらもその接続を通ります。受信用ポートも、拠点間VPNも不要で、工場のIT部門が外部に公開するものもありません。認証情報は工場ネットワーク内にとどまります。
接続は1つ、双方向
植物全体を対象とした単一のクエリ
すべての情報源 フェデレーションクエリ 独自のAgentを指定することで、単一のステートメントで異なる大陸にある2つの工場のダウンタイムを比較したり、どちらかの工場をERPの作業指示書に結合したりできます。BusinessおよびEnterpriseプランに含まれています。
2工場 → 1つの結果セット
彼らは常に最新の情報を把握している。
エージェントは自動的にアップデートされるため、後のリリースで追加されたコントローラーフォーマットは、誰かがUSBメモリを工場に持ち込むことなく、すべての工場に届きます。そのため、上記のリストは固定リストではなく、あくまで出発点となるのです。
エージェントと共に新しいフォーマットが登場
マシンログはサーバーログとは異なる挙動を示す
マシンログはサーバーログとは異なる挙動を示す
コントローラーが、増え続けるファイルに適切に追記することは稀です。Query Streamsは4つの異なる増加パターンを認識するため、再パンチされたエクスポートやトリミングされたログが重複行になることはありません。
追加
一般的な形式です。新しい行がファイルの末尾に追加され、以前の行は移動しません。
MTConnect SHDRキャプチャ · CNC syslog
ヘッドトリムを装着
行が追加され、その後、制御は定期的に行を削除します。 トップ ファイルサイズを制限するため。バイトオフセットだけを指定すると、データが黙ってスキップされてしまう。
Centroid CNC12 msg_log.txt
スナップショットの書き換え
エクスポート処理では、コントロール内の固定サイズのリングバッファからファイル全体が書き換えられます。2つのエクスポート処理は大きく重複するため、重複部分を再インポートするのではなく、認識する必要があります。
FANUC OPRT_HIS.TXT · Okuma · Heidenhain · Kawasaki
イベントごとに1つのファイル
制御装置は、アラーム、緊急停止、またはプログラム実行のたびに新しいファイルを作成します。フォルダ内のファイル数は増加しますが、ファイルサイズは増加しません。
Hurco NavErr · Haas · HOMAG woodWOP
ログラインからプラントが報告する5つの表まで
ログラインからプラントが報告する5つの表まで
解析は簡単な半分にすぎません。Query Streamsは、解析済みの行をインターバルテーブルに変換し、さらにOEEボードに必要な稼働率の入力データを導出します。
秒単位で合計できます。計画時間は常に、稼働時間、段取り時間、および各停止区分の合計と一致し、説明のつかない時間は残りません。
貴社の工場が既に報告している基準に準拠
貴社の工場が既に報告している基準に準拠
分類用語は独自に考案されたものではありません。公開されているモデルに準拠しているため、数値は貴社の品質管理チームや継続的改善チームが既に使用しているものと整合します。
アイドル状態の各期間は、6つの標準装備状態のいずれかに解決されます。
稼働率は規格の定義どおり、実生産時間を計画稼働時間で割って算出します。シフト時間内の計画停止も、稼働率の損失として扱います。
ダウンタイムは、損失として分類される項目に含まれ、その中には、原因を特定できない時間のための「正直な損失」項目も含まれる。
固定された少数の理由区分でマッピングを行います。特定できない理由は推測せず、名称を示して報告します。
接続から有用な結果まで。
- コントローラーがすでにログを書き込んでいる場所を探します。制御装置上のフォルダー、ファイルを書き込む共有フォルダー、または既存の収集スクリプトが書き込むフォルダーです。
- そのフォルダーを参照できるマシンにNetwork Agentをインストールします。制御装置自体には何もインストールせず、プログラミングも不要です。
- コントローラーのプロファイルを選択します。レコード境界、文法、タイムスタンプ形式、列名はプロファイルによって固定されるため、自分で定義する必要はありません。
- 以降、エージェントは各ファイルの新しいバイトだけを読み取り、コントローラーのローテーション方式を理解して、照合できない行も破棄せずに保持します。
- クエリを実行します。機械・シフト別のアラーム、故障間平均時間、サイクル数、ダウンタイムの理由など、すべての制御装置を対象に通常のSQLで一度に調べられます。
Machine Logsの結果を活用しましょう。
1つの接続で、スプレッドシート、アプリ、AIツールを利用できます。保存済みクエリを実行する権限を共有すれば、受信者には許可された結果だけが表示され、SQLとソースのログイン情報は隠されます。
チーム、ベンダー、パートナーの皆様へ
Machine Logsの最新結果をワークシートに直接取り込み、必要なときに更新できます — デスクトップ版Excel、Excel Online、Microsoft 365に対応。
Excelを見るサイドバーから保存済みのMachine Logsクエリを実行し、行をシートに取り込みます。共有相手も自分で更新できます。
Google Sheetsを見る英語で質問するだけです。NovaはMachine Logsのテーブルをすでに把握しており、SQLを作成して実行し、回答を説明してグラフ化します — クエリの作成も、認証情報の受け渡しも不要です。
Novaの仕組みMachine Logsの最新結果を、同僚、ベンダー、パートナーなど誰とでも共有できます。ブックマーク可能なグリッドとして表示され、スマートフォン、タブレット、デスクトップで開くたびに最新データを再取得します。相手に表示されるのは結果だけで、SQLやファイルは表示されません。
データビューアの仕組みアプリとシステム向け
Machine Logsクエリを、あらゆるアプリケーションから呼び出せる認証済みJSONエンドポイントとして公開できます。OpenAPI 3.1仕様と、すぐに使えるPostman、Insomnia、Hoppscotchコレクションが付属します。データベースのポートを開く必要はありません。
REST APIを見る生成されたPower Query MをPower BIの詳細エディターに貼り付けると、レポートはHTTPS経由でMachine Logsの最新結果を読み込みます — ODBCドライバーも、データベースのポートを開く必要もありません。
Power BIを見るMachine Logsの行をスケジュールに従ってAirtableベースに同期するか、Airtableのオートメーションスクリプト内で取得できます。
Airtableを見るRESTエンドポイント経由でMachine LogsからBaserowテーブルにデータを取り込みます — セルフホスト版にもBaserowクラウドにも対応。
Baserowを見るファイルのエクスポートやデータベースの公開をせずに、SeaTableベースをMachine Logsのデータで最新の状態に保ちます。
SeaTableを見るMachine Logsの結果をSmartsheetグリッドに送信すれば、計画やレポートは先週のエクスポートではなく、ソースシステムのデータを参照できます。
Smartsheetを見るアプリにデータベース認証情報を埋め込む代わりに、RESTエンドポイント経由でMachine LogsをAnvilのPythonアプリのバックエンドとして利用できます。
Anvilを見るAIツール向け
AIアシスタントに、正しいSQLを作成するために必要なスキーマ情報とともにMachine Logsへの読み取り専用アクセスを提供します — チャットに認証情報を含める必要はありません。
MCPを探索する人々に届けられる
Machine Logsクエリをスケジュール設定し、結果の行をSlack、Discord、メール、または署名付きWebhookに配信できます。または、行数、しきい値、変化率が設定した基準を超えるまで、メッセージの送信を保留できます。
アラートとレポートの仕組みMachine Logsを他のデータと結合する。
データベース、ビジネスAPI、ファイル、ログを1つの読み取り専用クエリにまとめられます。すべてのコネクターがFederated Queriesに対応しています。
接続とテーブルを指定してください。Query Streamsがソースへのクエリを処理し、結果を統合します。
Federated Queriesを見る-- コピーなし、マージなし、スケジュールなし
セレクト c.region、COUNT(*) AS orders、SUM(i.amount_due) AS invoiced
フロム machinelogs.fileset.orders1 f
ジョイン pg_crm.一般顧客2 c ON c.id = f.customer_id
ジョイン 請求する.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.領域
ORDER BY 請求書記載のDESC;ご自身の接続名、スキーマ名、テーブル名、カラム名を使用してください。
コネクターシリーズ共通の機能。
すべてのログコネクターでは、次のテーブルも利用できます。
- events — 解析された各行を1レコードとして格納します。タイムスタンプ、文法で定義されたフィールド、および元のファイル名を示す_source_fileが含まれます。
- events_raw_lines — 文法に一致しなかった行を削除せず、元のまま保持します。想定外の形式も、引き続きクエリで調べられます。
- files_currentとfiles_events — 現在のファイル一覧と監査履歴です。何が追加され、何がローテーションされ、何が消え、何が保留されたかを、ファイル名と理由とともに確認できます。
- ローテーションを回避するのではなく、正しく認識します。名前付きのローテーションパターン10種類に加え、ローテーションされていない通常のファイルにも対応するため、昨日のログもその圧縮アーカイブも、今日のログと同じテーブルとして扱えます。
知っておくと良い
- 読み取り専用を徹底。一度に実行できるのは1つのステートメントのみで、SELECTなどの読み取り操作に限られます。こちらがログを書き込んだり、移動したり、ローテーションしたり、切り詰めたりすることは一切ありません。
- アップロードは一切ありません。行はエージェントの隣にあるお客様自身のマシン上で解析され、暗号化されてキャッシュされます。ネットワーク外に送信されるのはクエリの結果だけです。
- 読み取るのは新しいバイトだけです。エージェントはファイルを最初から読み直すのではなく、前回の続きから再開するため、ログが頻繁に更新されても日ごとに負荷が増えることはありません。
- SQL方言はDuckDBです — 他のコネクタに対して書くのと同じSQLを使用します。
Machine Logsに関するよくある質問
Machine Logsのクエリ結果はどこで利用できますか?
Machine Logsの結果は、Excel、Google Sheets、Data Viewer、Database REST API経由でアプリ、MCPまたはNova経由でAIツールに利用できます。保存した結果は、対応するAutomationの出力先、レポート、アラートにも利用できます。利用できる出力先や使用量の上限はプランによって異なります。
Machine Logsを使うには、インバウンドポートを開ける必要がありますか?
いいえ。Machine LogsにアクセスできるマシンにNetwork Agentをインストールしてください。エージェントはQuery Streamsへ外向きに接続するため、インバウンドポートもVPNも必要ありません。ただし、接続元では、独自のアクセスルールに従ってエージェントを実行するマシンからの接続を許可する必要があります。
Machine Logsのファイルはアップロードされますか?
Network Agentはファイルが保存されている場所で読み取り、キャッシュはエージェントのマシン上に保持します。ソースファイルがアップロード、移動、書き換えられることはありません。要求されたクエリ結果のみが、暗号化された外向き接続を通じてネットワークの外に送られます。
Machine Logsの接続に必要なものは何ですか?
フォルダー:コントローラーがすでに書き込んでいる場所 — ローカルディスク、または\\server\share形式で指定するネットワーク共有(割り当て済みドライブ文字は不可。LinuxまたはMacでは事前にマウント);サブフォルダーも対象で、インクルード/除外パターンに対応。形式:コントローラーのプロファイルで固定 — レコード境界、文法、タイムスタンプ形式、列名がすべて含まれます。コントローラー:Mazak、KUKA、Homag、Fanuc、Haas、Okuma、Siemens、Heidenhain、Mitsubishi、Centroid、Hurco、Kawasakiに対応し、それ以外には独自に記述するモードもあります。ローテーション:回避策ではなく、ローテーションを認識 — 名前付きの10種類のローテーションパターンと、圧縮アーカイブを含むローテーションなしのファイルに対応
Machine Logsをほかの接続済みデータソースと結合できますか?
はい。Federated Queriesは、データベース、ビジネスAPI、ファイル、ログなど、あらゆるコネクタータイプに対応しています。1つの読み取り専用クエリで接続とテーブルを指定してください。Query Streamsが必要に応じてソースごとのクエリを変換し、結果を統合します。 Federated Queriesの仕組みをご覧ください。
機械制御装置に何かインストールする必要はありますか?
いいえ。Query Streamsはファイルを読み取るため、コントローラーへのインストールや書き戻しは必要ありません。Query Streams Agentを、ログがすでに届いている任意のフォルダーに指定します。ネットワーク共有、USBバックアップのコピー先フォルダー、またはマシンのPCを指定できます。アクセスは読み取り専用です。
お客様のコントローラーのログを実際に確認したのですか?それとも公開されている形式だけを参照したのですか?
どちらの場合もあります。自分がどちらに該当するかを知っておくことが大切です。3つのメーカーについては、機械から実際に取得したファイルを使ってパーサーを構築・テスト済みです:MTConnect経由のMazak、KUKA、HOMAGです。残る9社については、メーカーが公開している形式仕様に基づいて構築しました。
どの製品もサポート対象でテスト済みです。ただし、お使いのコントローラーそのものを確認したと誤解されないよう、率直にお伝えします。後者のグループに該当し、正常に解析できない場合は、サンプルをお送りください。前者のグループに加えます。
私のコントロールパネルはリストに載っていません。もう使えないのでしょうか?
おそらくそうではありません。12のブランド名に加えて、製造現場の機器の大部分をカバーする4つの一般的な形状があります。CNCコントローラのsyslog、PLCキー=値テレメトリ、ロボットのJSON行、レーザーカッターが生成するようなヘッダーなしのCSVエクスポートです。ログがこれらのいずれかに似ている場合は、読み取ることができます。
解析できなかった行はどうなりますか?
保持されます。解析できなかった行は、読み取れなかった理由を付けた行として保存されるため、表示もクエリも可能です。ファイル単位でも同様です。固定された形式に合わなくなったファイルは、黙って統合されるのではなく、別途保留されて報告されます。フォルダー内のすべての行を常に把握できます。
機械のダウンタイムをERPデータに連携させることはできますか?
はい — ログをSQLに取り込む目的がまさにそれです。フェデレーションクエリで、派生した アイドル間隔 または oee_入力 作業指示書、部品マスター、スケジュールなどのテーブルは、完全に別の SQL Server、Postgres、または MySQL データベースに格納されており、結合された 1 つの結果セットを返します。
これはログ監視製品ですか、それともアラート製品ですか?
いいえ、そしてその点を明確にしておきたいと思います。これはログ転送パイプラインでも運用監視プラットフォームでもありません。既存のログファイルをSQLでクエリ可能にし、スプレッドシート形式でレポートを作成できるようにするものです。インフラストラクチャ規模でのストリーミング取り込みやリアルタイムアラートが必要な場合は、別の種類のツールが必要になります。
Machine Logsを実際の業務の場で活用する。
Freeから始めましょう。すべてのコネクタータイプ、データソース2つ、Network Agent 1つを利用できます。ニーズの拡大に応じて、プランの利用枠を追加できます。

