将 Machine Logs 转换为可查询的表。
将 CNC 控制器、机器人和 PLC 网关已经生成的报警与运行日志转换为 SQL 表。获取报警、周期、停机时间以及 OEE 所需的数据——无需编程 PLC,也无需部署 MES。
通过 Database REST API,在 Excel、Google Sheets、AI 工具和您的应用中使用结果。
所有连接器类型均包含在 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
- 内置支持十二种控制器系列
- 将报警、周期和停机时间作为 SQL 数据使用
使用正确的设置连接 Machine Logs。
将连接保留在 Network Agent 上。以下是 Machine Logs 专属的详细信息。
- 文件夹
- 无论控制器当前写入的位置是本地磁盘还是网络共享(路径格式为 \\server\share,绝不能使用映射的驱动器盘符;在 Linux 或 Mac 上需先挂载),均可读取;包括子文件夹,并支持包含和排除模式
- 格式
- 由控制器配置文件固定——记录边界、语法、时间戳格式和列名均由配置文件指定
- 控制器
- Mazak、KUKA、Homag、Fanuc、Haas、Okuma、Siemens、Heidenhain、Mitsubishi、Centroid、Hurco 和 Kawasaki;其他设备也可使用自定义描述模式
- 轮转
- 了解其行为,而非绕过处理——支持十种指定的轮转模式,以及未轮转的普通文件;也支持压缩档案
- 无法匹配的行
- 原样保存在 events_raw_lines 中,绝不丢弃
- 凭据
- 无需服务器——代理直接读取原位置的文件
- SQL方言
- DuckDB——标准 SQL,无需学习任何机器专用知识
机器控制器上无需安装任何东西,也不会触碰 PLC 逻辑。控制器继续像往常一样写入日志;代理在能访问该文件夹的机器上读取日志文件,将解析后的行缓存在自身旁边的加密存储中,并且只重新读取新增的字节。如果车间网络离线,日志仍保留在控制器上,下次同步时会补上。
专为 Machine Logs 的工作方式打造。
输出内容
- 每条日志事件占一行,包含控制器写入的时间戳、报警或消息代码、文本,以及标明来源机器的 _source_file。
- 报警历史、操作历史和消息日志,具体取决于控制器保留的内容——配置文件会识别哪些文件有用,哪些只是噪声。
- 车间里的每台控制器都汇入同一张表,因此“本月哪台机器停机次数最多”只需一个 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当您的控制器不在列表中
我们为十二种控制器系列提供配置文件;“其他任何控制器”也不是敷衍了事的回答:日志驱动程序的自定义模式允许您自行描述记录边界、语法、时间戳和列,只需设置一次,文件夹就会像其他文件夹一样成为一张表。如果您希望将其内置支持,请联系我们——我们会按需添加配置文件。
格式与行为详解。
打开 Machine Logs 所需的参考文档。
控制器日志文件夹会变成停机时间表。
控制器日志文件夹会变成停机时间表。
Query Streams 读取控制器已经写入的文件,固定其格式,并生成工厂实际需要查询的表。原始行同样可以查询——解析器无法读取的行会作为一行保留下来并注明原因,绝不会被悄悄丢弃。
轮转、重新打孔导出的文件和重复行——都能妥善处理
选择 日期、身份、运行/计划 AS 可用性、计划外停机、小停
从 文件集.oee_inputs
地点 身份 = 'MILL-04'
ORDER BY 日期 DESC在同一查询中将其与您的 ERP 工单连接起来
机器已经写入的文件,现在是一个可以生成报告的表格
开箱即用十二个控制器品牌
开箱即用十二个控制器品牌
每张卡片都列出 Query Streams 在该控制器上读取的确切文件、文件来源及其行为——实时追加、每次导出时整体重写,或每个事件生成一个新文件。
支持的控制器日志
19 种格式 · 12 个品牌/shdr/*.txtMTConnect适配器流捕获- 每台机器每天只能处理一个文件
- 机器运行时实时追加内容
日志_*.txt控制器诊断导出- UTF-16 文本,已为您解码
- 每次出口都完全重写
- woodWOP NC 运行文件,在循环开始时写入
.prl .ctt .pctCutRite规划文件,每个优化方案11个- 每次运行生成一个新文件
OPRT_HIS.TXT操作历史记录,从控制中心录入MD/ERRALL.LS控制器备份中的机器人报警历史记录- 环形缓冲区——整体重新打孔写入,不会追加
AlarmHistory.txt报警历史记录(包含代码和时间戳)- 已解压
HaasBackup(mm-dd-yyyy)在U盘上 - 每次备份生成一个新文件
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消息日志——cnct在车床上- 另请参阅 F7 创建报告压缩包。
- 追加后从开头裁剪——处理时不会丢失行
输出文件\NavErr每个错误对应一个文件输出文件\NavESTOP每个紧急停止按钮对应一个文件- 每个事件生成一个新文件,文件夹大小无限制增长。
错误日志机器人错误日志- 已保存到控制器数据备份中(SAVE / ELOG)
- 每个备份都已完全重写
日志/*_YYYY-MM-DD.logCNC控制器系统日志日志/plc*.logPLC键值遥测*.jsonl机器人控制器 JSON 行*_YYYYMMDD.csv无标题激光 CSV,小数点后缀
每次发布代理程序都会添加新的控制器格式。由于代理程序会自行更新,因此无需任何人将 U 盘插入计算机,后续支持的控制器就会出现在您的连接器中。
读取各工厂的控制器日志,数据就在机器所在的位置
控制器记录了每个工厂的日志 读取机器所在位置
默认情况下,控制器日志往往无法从外部访问。它们位于机器上或车间共享目录中,隔着工厂防火墙,处在报告工具根本无法触及的建筑内。每个工厂运行一个 Network Agent,就地读取这些文件并向 Query Streams 发起连接。对于工厂防火墙来说,这只是普通的出站连接——无需开放端口,无需站点到站点 VPN,也无需为每台机器单独提交工单。
三个出站连接,一个查询入口——无需入站端口、VPN 或更改防火墙
每株植物配备一名代理人
一个 Agent 服务整个站点,而不是单台机器:该工厂的每个控制器共享目录都会成为同一 Agent 上独立的 File Set 连接器。Free 计划运行一个 Agent,付费计划则可运行更多。
1 个工厂 = 1 个代理 = 多个控制器
无需打开
Agent 建立一条加密的出站连接,请求发出和数据行返回都通过这条连接传输。无需入站端口,无需站点到站点 VPN,也无需工厂 IT 部门开放任何内容——凭据始终留在工厂网络内。
一个连接,双向
一项针对所有植物的查询
每个来源 联合查询 它会指定自己的代理,因此只需一份报表即可比较位于不同大洲的两家工厂的停机时间,或者将其中任何一家工厂的数据与您的 ERP 工单关联起来。此功能包含在 Business 和 Enterprise 版本中。
2 个工厂 → 1 个结果集
他们不断更新自己。
代理程序会自动更新,因此后续版本中添加的控制器格式无需任何人携带U盘进入生产车间即可推送至所有工厂。正因如此,上面的内容只是一个起点,而非固定列表。
代理人带来了新的格式。
机器日志的行为与服务器日志不同
机器日志的行为与服务器日志不同
控制器很少会礼貌地向不断增长的文件追加数据。查询流识别四种不同的增长模式,因此重新导入的导出数据和修剪后的日志不会变成重复行。
附加
最常见的情况——新行追加到文件末尾,之前的行不会移动。
MTConnect SHDR 捕获 · CNC syslog
加上头部修剪
行被追加,然后控件会定期从中删除行。 顶部 为了限制文件大小。单独跟随字节偏移量会静默跳过数据。
Centroid CNC12 msg_log.txt
快照重写
每次导出都会从控件中的固定大小环形缓冲区重写整个文件。两次导出之间会有大量重叠,因此必须识别重叠部分,而不是重新导入。
FANUC OPRT_HIS.TXT · Okuma · Heidenhain · Kawasaki
每个事件一个文件
控制器会在每次报警、紧急停止或程序运行时写入一个全新的文件。文件夹中的文件数量会增加,但文件大小不会增加。
Hurco NavErr · Haas · HOMAG woodWOP
从日志到工厂报告的五个表格
从日志到工厂报告的五个表格
解析只是容易的一半。Query Streams 会将解析后的行转换为区间表,再转换为 OEE 看板所需的可用率输入数据。
秒数会逐一累加:计划时间始终等于运行时间、设置时间和所有停机类别时间之和——没有无法解释的时间。
符合贵厂已报告的标准
符合贵厂已报告的标准
分类词汇并非凭空捏造,而是遵循已发布的模型,因此其数值与贵公司质量和持续改进团队目前使用的数据相符。
每个空闲间隔都会恢复到六种标准设备状态之一。
可用率按照标准定义计算——实际生产时间除以计划繁忙时间;班次时段内的计划停机也计为可用率损失。
停机时间会被归入指定的损失类别,其中包括一个用于记录我们无法归因时间的诚实类别。
映射由一组固定的简明原因词汇驱动;无法确定的原因会按名称报告,而不是靠猜测。
从连接到获取有用结果。
- 找到控制器当前写入日志的位置——控制器上的文件夹、控制器写入文件的共享目录,或现有采集脚本写入的文件夹。
- 在能访问该文件夹的机器上安装 Network Agent。控制器本身无需安装任何东西,也无需进行编程。
- 选择控制器的配置文件。记录边界、语法、时间戳格式和列名均由配置文件固定,因此无需自行描述。
- 之后,代理只读取每个文件中的新增字节,识别控制器的轮转方式,并保留无法匹配的行,而不是将其丢弃。
- 查询数据。按机器和班次统计报警、故障间隔时间、循环次数、停机原因——用普通 SQL 一次查询所有控制器。
让 Machine Logs 的结果发挥作用。
一个连接即可供您的电子表格、应用和 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使用 Machine Logs 数据更新 SeaTable 基础,无需导出文件或暴露数据库。
了解 SeaTable将 Machine Logs 查询结果推送到 Smartsheet 网格,让计划和报表读取源系统中的数据,而不是上周导出的文件。
了解 Smartsheet通过 REST 端点使用 Machine Logs 为 Anvil Python 应用提供数据,而不是将数据库凭据嵌入应用。
了解 Anvil人工智能工具
为 AI 助手提供对 Machine Logs 的只读访问权限及其编写正确 SQL 所需的架构信息 — 无需在聊天中提供凭据。
探索 MCP已送达
为 Machine Logs 查询设置计划,并将行数据发送到 Slack、Discord、电子邮件或签名 Webhook — 也可以在行数、阈值或百分比变化达到你设定的界限前暂缓发送消息。
警报和报告的工作原理将 Machine Logs 与其他数据联接。
将数据库、业务 API、文件和日志纳入一个只读查询。所有连接器都支持联合查询。
指定连接和表名。Query Streams 会处理各数据源的查询并合并结果。
了解联合查询——没有任何复制、合并或安排操作。
选择 c.region,COUNT(*) AS orders,SUM(i.amount_due) AS invoiced
从 machinelogs.fileset.orders1 f
连接 pg_crm.public.customers2 c ON c.id = f.customer_id
连接 计费.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.区域
ORDER BY 发票上的描述;请使用您自己的连接、架构、表和列名称。
连接器系列通用功能。
每个日志连接器还会提供
- events——每条解析后的日志行对应一行,包含时间戳、语法定义的字段,以及标明其来源文件的 _source_file。
- events_raw_lines——语法未能匹配的行会原样保留,而不会被丢弃,因此即使遇到意料之外的格式,你仍然可以查询并找到答案。
- files_current 和 files_events——实时文件清单和审计记录:哪些文件出现、哪些发生轮转、哪些消失,以及哪些内容被暂缓处理,并注明文件名和原因。
- 理解轮转,而不是绕过它——支持十种命名轮转模式以及未轮转的普通文件,因此昨天的日志及其压缩归档与今天的日志属于同一张表。
知道这个很有用
- 强制只读——一次只执行一条语句,且仅限 SELECT 等查询。我们绝不会写入、移动、轮转或截断您的日志。
- 不会上传任何内容——日志行在您自己的计算机上、代理旁边进行解析和缓存,并经过加密。只有查询结果会离开您的网络。
- 只读取新增字节——代理会从每个文件上次读取的位置继续,而不会重新读取,因此繁忙的日志不会让成本日复一日增加。
- SQL 方言为 DuckDB — 与您针对任何其他连接器编写的 SQL 相同。
关于 Machine Logs 的常见问题
Machine Logs 查询结果可以在哪里使用?
您可以在 Excel、Google Sheets、Data Viewer 中使用 Machine Logs 结果;通过 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;其他控制器可使用自行描述模式。轮转:原生支持,而非绕过处理 — 支持十种命名轮转模式,以及未轮转的普通文件;也支持压缩归档。
可以将 Machine Logs 与其他已连接的数据源联接吗?
可以。联合查询支持所有连接器类型,包括数据库、业务 API、文件和日志。在一个只读查询中指定连接和表名即可。Query Streams 会根据需要转换各数据源对应的查询部分,并合并结果。 了解联合查询的工作方式。
我需要在机器控制系统上安装什么东西吗?
不可以。Query Streams 会读取文件,因此无需在控制器上安装任何内容,也不会向其写入数据。您只需让 Query Streams Agent 指向日志现有的存放文件夹——网络共享、USB 备份复制到的文件夹,或机床 PC。访问权限为只读。
您们真的看过我的控制器日志,还是只依据文档中的格式?
这两种情况都存在,了解自己属于哪一种很重要。三个品牌的解析器是基于从机器上采集的真实文件构建并经过测试的:通过 MTConnect 接入的 Mazak、KUKA 和 HOMAG。其余九种则是根据供应商发布的格式说明构建的。
所有这些控制器都受支持并经过测试 — 但我们宁愿坦诚说明,也不想让你误以为我们见过你所用的确切控制器。如果你的控制器属于第二组,而解析出现问题,请发送一个样例给我们,它就会纳入第一组。
我的控制方案不在名单上。是不是就没戏了?
可能不是。除了十二个已命名的品牌之外,还有四种通用格式,涵盖了大部分车间设备:CNC 控制器系统日志、PLC 键值遥测数据、机器人 JSON 数据行,以及激光切割机生成的无头 CSV 导出文件。如果您的日志格式与这些格式中的任何一种相似,它都能读取。
如果行无法解析会发生什么?
无法解析的内容会保留下来。无法读取的日志行会作为一行数据存储,并附上无法读取的原因,因此仍然可见且可查询。文件层面也是如此——不再符合指定格式的文件会被隔离并报告,而不是悄悄合并。您始终可以核对文件夹中的每一行日志。
我可以将机器停机时间与我的ERP数据关联起来吗?
是的 — 这正是将日志放入 SQL 的意义。联邦查询可以联接派生出的 空闲间隔 或 oee_inputs 将工作订单、零件主数据或计划表存储在完全独立的 SQL Server、Postgres 或 MySQL 数据库中,并返回一个连接的结果集。
这是一个日志监控产品还是一个告警产品?
不,我们想明确一点。这不是日志传输管道,也不是运维监控平台。它的作用是让现有日志文件能够通过 SQL 查询,并以电子表格的形式生成报告。如果您需要大规模的流式数据摄取和实时告警,那需要使用其他类型的工具。

