
如何用 TDengine 零代码数据接入对接 OPC UA 服务器采集工业设备数据【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDengine 通过 taosExplorer 与 taosX 提供零代码数据接入能力在浏览器中配置数据源与点位映射即可从 OPC UA 服务器持续读取数据并写入 TDengine完成工业设备数据的实时入库无需编写 ETL 代码。该能力属于TDengine 企业版功能操作入口在 taosExplorer 的“数据写入”页面。适用前提已部署 TDengine 企业版并可访问 taosExplorer能连通的 OPC UA 服务器官方支持版本参考 KeepWare KEPServerEx 6.5若 taosX 与 OPC UA 服务器之间网络不能直接连通例如服务器在隔离的工控网段需先在与服务器同网段部署一台 taosX-Agent由 Agent 代理转发数据详见后文可选分支。判断是否需要安装 taosX-Agent默认情况下 taosX 直接连接 OPC UA 服务器。只有当两段网络不能直连时才需要 AgentOPC UA 服务器在隔离工控网段、或 taosX 部署在公有云无法访问内网。此时只要 taosX ↔ taosX-Agent、taosX-Agent ↔ OPC UA Server 两段网络分别连通即可。创建 Agent 的流程Linux 为例在 taosExplorer 的数据写入 → 代理标签页点击创建新的代理下载 taosX-Agent 安装包并在数据源侧主机完成安装然后在agent.tomlLinux 路径为/etc/taos/agent.toml中填入 taosExplorer 显示的endpoint与tokenendpointhttp://localhost:6055 tokeneyJ0eX...BhA执行sudo systemctl start taosx-agent启动服务再回到 taosExplorer 点击检查代理是否连接正常显示正常即完成。之后创建写入任务时在下拉框选择该代理。两点说明数据源所在主机不必安装 TDengine后续修改采集参数、点位映射不需要重装 Agent。创建 OPC UA 数据写入任务在 taosExplorer 左侧导航栏进入数据写入点击新增数据源名称输入任务名称例如environment-monitoring。类型下拉列表选择OPC UA。代理非必填仅在需要 Agent 转发时选择。目标数据库选择数据要写入的数据库也可点击右侧创建数据库新建。配置连接信息在连接配置区域填写OPC UA 服务地址例如文档示例192.168.168.1.66:53530/OPCUA/SimulationServer以你的服务器 IP、端口和端点路径替换。然后配置安全模式共三种None通信数据明文传输Sign使用数字签名验证通信数据保护数据完整性SignAndEncrypt签名加加密保证完整性、真实性和保密性。若安全模式选择Sign或SignAndEncrypt必须选择有效的安全策略可选Basic128Rsa15、Basic256、Basic256Sha256、Aes128Sha256RsaOaep、Aes256Sha256RsaPssNone策略仅在安全模式为 None 时可选。同时必须填写安全通信证书与安全通信私钥生成方法见下一节。认证方式通过 tab 切换可选匿名、用户名和密码、证书访问证书可以与安全通信证书相同也可以不同。配置完成后点击连通性检查。注意如果使用了安全通信证书或认证证书证书必须先被 OPC UA 服务端信任否则检查无法通过。生成客户端证书安全模式为 Sign / SignAndEncrypt 时taosX 加载证书的要求格式必须为PEM且证书 SAN 中必须包含URI:urn:taosx-opc:client否则服务端会报StatusBadCertificateUriInvalid。证书可在任意机器上生成把结果上传到 taosExplorer 即可。Linux / macOS 上可用以下命令生成有效期 10 年# 创建配置文件 cat /tmp/opcua_client_ext.cnf EOF [req] distinguished_name req_dn x509_extensions v3_ext prompt no [req_dn] CN taosx-opc-client O TDengine [v3_ext] basicConstraints CA:FALSE keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage clientAuth, serverAuth subjectAltName URI:urn:taosx-opc:client EOF # 生成证书与私钥 openssl req -x509 -newkey rsa:2048 -nodes \ -keyout client_key.pem \ -out client_cert.pem \ -days 3650 \ -config /tmp/opcua_client_ext.cnf生成后用如下命令确认 SAN 包含必需的 Application URI文档示例输出openssl x509 -in client_cert.pem -noout -subject -ext subjectAltNamesubjectCNtaosx-opc-client, OTDengine X509v3 Subject Alternative Name: URI:urn:taosx-opc:client两个文件与 taosExplorer 字段的对应关系client_cert.pem→Secure Channel Certificate安全通信证书client_key.pem→Certificates Private Key安全通信私钥。上传后第一次连通性检查通常会失败因为服务端尚未信任该证书——需要先在服务端完成“信任证书”操作后重新检查。厂商差异提醒从 Ignition、GE 等服务器下载的证书例如ignition-server.der是服务器自身的证书不能直接用作客户端证书必须按上述方法自行生成。如果你使用的是 Ignition 或 GE CSS OPC UA Server建议先阅读对应的专属集成指南获取经过验证的服务端信任流程与配置参考见 Ignition 集成指南 与 GE CSS OPC UA Server 集成指南。配置点位集选择点位或上传 CSV点位集通过 tab 切换提供三种互斥模式选择数据点位默认、上传 CSV 配置文件、告警与事件。方式一选择数据点位筛选点位通过根节点 ID、命名空间、节点类型、节点 ID 表达式、节点名称表达式等条件筛选点击查看点位列表在右侧预览符合条件的点位勾选要采集的点位。超级表名指定数据写入的超级表支持占位符{type}替换为点位值列的 TDengine 数据类型。表达式中的.会自动替换为_例如opc_{type}在点位类型为Float64时生成超级表opc_double。表名称指定子表OPC UA 点位 ID 形如nsnamespace;prefixidentifierprefix可为i/s/g/b。支持占位符{ns}命名空间、{id}去掉前缀后的标识符、{id#/_}将{id}中所有/替换为_并修剪首尾。可与静态文本拼接如t_{ns}_{id#/_}。替换后残留的.和反引号会被替换为_。值列名称、值变换值列默认名val同一超级表下多个点位共享该列名。值变换使用 Rhai 表达式对原始值二次计算例如val * 1.8 32摄氏度转华氏度、val / 1000毫秒转秒、if val 0 { 0 } else { val }负值截断留空则不做变换。布尔、字符串、二进制等非数值类型当前不支持值变换。时间戳列可选origin_tsOPC 点位原始时间戳、request_ts请求时间戳、received_ts接收时间戳时间戳列名默认ts。自定义标签格式为DataType::TagName::Pattern多个标签以;分隔例如VARCHAR(1024)::name::{id#/.};VARCHAR(1024)::browse::{BrowseName};VARCHAR(200)::location::{Path#/_};INT::version::1该示例生成四个标签name点位 ID 中/转.、browse节点 BrowseName、locationPath 中/转_、version常量 1。节点属性占位符仅支持{BrowseName}、DisplayName}、{Description}、{Path}四个属性{Attr#XY}形式的字符替换优先级高于普通{Attr}。方式二上传 CSV 配置文件适合点位数量较多的场景。可以在 taosExplorer 中下载 CSV 空模板也可以按已配置的筛选条件从服务器导出数据点位为 CSV。核心规则文件编码必须为UTF-8带不带 BOM 均可其他编码如 GBK会被拒绝第一行 Header 包含point_id、stable、tbname等列point_id在整个任务中唯一且ts_col/request_ts_col/received_ts_col至少配置一列作为时间戳point_id是字符串型含s时一律用双引号包裹整个单元格避免其中的逗号被当作分隔符内部含双引号时按 RFC 4180 规则重复一次导出模板已自动把每个点位的BrowseName、DisplayName、Description、Path写入对应 Tag 列通常只需调整enabled、stable、tbname等列。推荐写法stable opc_{type}按数据类型分超级表、对象节点stable opc_object、tbname t_{ns}_{id}保证重启后同一数据点落入同一子表。完整列定义见 OPC UA CSV 映射文件参考。上传后先点击检查连接并查看解析后的表头确认行结构正确。告警与事件企业版可选告警与事件tab 用于采集 OPC UA Server 推送的告警与事件AE必选事件类型树形多选选中即包含其所有子类可选事件源过滤与最小严重度1–1000提交前可通过配置规则预览静态预览将建的超级表结构与过滤条件。选择该 tab 后采集模式自动锁定为event。入库命名规则与查询示例见 OPC UA 告警与事件采集。采集配置与高级选项采集模式可选三种subscribe订阅模式数据有变化时主动上报并写入 TDengine用于普通点位采集observe按采集间隔轮询数据点最新值默认 10 秒同一任务内的普通点位共用该间隔不支持按点位设置不同轮询频率——若部分点位需要不同周期请拆成多个任务可共用同一 OPC 服务器与 AgenteventAE 采集模式由点位集选择联动锁定。采集超时向 OPC 服务器读取点位超过设定时间未返回则读取失败默认 10 秒仅在observe模式可配置。使用选择数据点位方式时还可配置点位更新模式None/Append/Update与点位更新间隔默认 600 秒最小 60开启后任务运行期间 OPC Server 新增或删除的点位会自动进入任务无需重启 OPC 任务。高级选项用于进一步调整性能与日志日志级别默认info、最大写入并发数默认 0 表示自动、批次大小单次发送最大消息数、批次延时超时后即使不满批次也立即发送。缓存实时数据默认关闭开启后数据先落本地文件再被后台任务读出发送用于下游消费卡顿时削峰数据消费完毕自动清理文件详见 存储转发。提交任务与验证结果点击提交完成创建回到数据源列表页面查看任务执行情况。验证要点健康状态自v3.3.5.0起在任务管理列表展示Ready表示数据源和目标端健康检查通过Active表示任务正常运行且活跃Idle表示监测时段内无数据处理Pending表示写入消息数为 0Busy表示写入队列繁忙可能存在性能瓶颈但不说明存在错误Bounce表示写入过程中存在错误且一定周期内超出阈值SourceError/SinkError表示数据源或写入端错误工作负载会尝试重连Fatal为严重或无法恢复的错误。健康状态为空表示尚未有数据开始入库。运行指标对运行中的任务点击指标的查看按钮可看详细运行指标包括写入的记录条数、流量等每 2 秒自动刷新。提交失败时可通过查看该任务的活动日志查找错误原因。常见连接问题与限制错误信息原因解决方法StatusBadIdentityTokenInvalid (0x80200000)认证方式不匹配或证书未被服务器接受Certificate 认证可改用 Username 认证确认服务端 User Source 配置正确StatusBadUserAccessDenied (0x801F0000)用户名密码正确但无权限确认用户存在于服务端指定的用户源中StatusBadSecurityChecksFailed证书未被 Trust 或两端 Security Policy 不匹配在服务端 Trust 客户端证书确认两端安全策略一致StatusBadCertificateUriInvalid证书 SAN 缺少客户端 Application URI重新生成证书确保 SAN 包含URI:urn:taosx-opc:client连接超时网络不通或服务端未监听正确地址确认服务端监听地址与端点包含服务器 IP防火墙放通对应端口其他限制与日常维护采集间隔是任务级参数同一任务内不能按点位分组设置不同轮询频率任务运行中可通过编辑 → 增加数据点位在 CSV 中追加少量点位规则不需要重启任务不会产生数据丢失已入库子表的标签值维护建议优先在 TDengine IDMP 中完成未使用 IDMP 时可用 SQLALTER TABLE … SET TAG批量修改OPC UA Property如limit如何自动映射为 TAG见 OPC UA Property 到 TAG 示例除 taosExplorer 外也可通过 SQL 管理接入节点、任务与 Agent见 数据接入Xnode。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考