RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

  • 标准组件

  • 扩展组件

    • 扩展组件概述
    • 过滤器

    • 动作

    • 转换器

    • 外部的

    • ai

    • CI

    • IoT

      • IoT 组件概览
      • 输入端点

      • 协议采集

        • OPC_UA Read
        • OPC_UA Write
        • Modbus Node
        • 串口通信
        • S7 读
        • S7 写
        • EtherNet/IP 读
          • 配置
          • 点位(Point)字段说明
          • 输出
          • 输入(可选)
          • 特性
          • Relation Type
          • 示例
        • EtherNet/IP 写
        • SNMP 读
        • SNMP 写
        • Modbus 点位读
        • Modbus 点位写
        • 通用采集读
        • IoT 写
        • IEC 104 读
        • IEC 104 写
        • FINS 读
        • FINS 写
        • MC Node
        • MC 读
        • MC 写
        • DL/T 645 Node
        • DL/T 645 读
        • DL/T 645 写
      • 时序数据库

      • 控制

      • IoT 场景示例
    • 流式计算

    • 服务发现

    • 文件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

  • 智能体框架

  • RuleGo-Server

  • 问题

目录

EtherNet/IP 读

x/eipRead组件:v0.37.0+ 用于通过 EtherNet/IP (CIP) 协议批量读取罗克韦尔 Allen-Bradley ControlLogix/CompactLogix/Micro820 PLC 的控制器标签。仅支持 CIP 设备,不支持 PLC5/SLC/MicroLogix 等 PCCC 协议设备。

需要额外引入扩展库: rulego-components-iot (opens new window)

# 配置

字段 类型 说明 默认值
server string PLC 主机地址(host),端口 44818 由 gologix 内置,例如 127.0.0.1;支持 ref://节点ID 复用链内已有连接 127.0.0.1
slot int CPU 在背板上的槽位号,自动生成 CIP 路径(如 1,0) 0
path string 可选:手动覆盖 CIP 路径,如 1,0;留空则按 slot 自动生成 无
timeout int 请求超时时间,单位为秒 5
points array 默认点位表;msg.Data 带点位时优先使用 msg.Data 无

Points 字段:

字段 类型 说明
name string 点位名称
addr string 控制器标签名(CIP tag),如 MyTag、MyDB.Temperature
type string 标签数据类型,必填(gologix 读取需要明确的类型指针),可选值见下表
scale float 可选,缩放系数(默认 1),换算公式 eng = raw*scale + offset
offset float 可选,偏移量(默认 0)

# 点位(Point)字段说明

addr: 控制器标签名。支持控制器域标签(如 Temperature)、结构体成员(如 MyDB.Temperature)、数组元素(如 MyArray[0])以及程序域标签(如 Program:MainProgram.Tag)。

type: 标签数据类型,必填。因 gologix 的 Read 需要具体的 Go 类型指针(Go 静态类型限制),无法从标签自动推断,必须由调用方显式指定。

可选值(大小写不敏感):

类型分类 支持的别名
布尔 BOOL
8 位整数 BYTE、SINT、USINT
16 位整数 INT、INT16、UINT、WORD、UINT16
32 位整数 DINT、INT32、UDINT、DWORD、UINT32
64 位整数 LINT、INT64、ULINT、UINT64
32 位浮点 REAL、FLOAT
64 位浮点 LREAL、DOUBLE
字符串 STRING

# 输出

读取结果以统一契约写回 msg.Data(JSON 数组),经 Success 链转出。每个点位一个对象,字段如下:

字段 类型 说明
name string 点位名称
address string 标签名(等于配置/输入的 addr)
value any 读取到的值
type string 数据类型(大写)
quality string 质量:good 或 bad
timestamp string 采集时间(RFC3339 格式)

示例数据:

[
  {
    "name": "temperature",
    "address": "MyDB.Temperature",
    "value": 23.5,
    "type": "REAL",
    "quality": "good",
    "timestamp": "2026-07-23T10:00:00.123456789Z"
  }
]
1
2
3
4
5
6
7
8
9
10

单个点位读取失败不影响其它点位(该点位标记 quality=bad);仅当全部点位失败时才认定为连接级错误,触发 Failure 链。

# 输入(可选)

msg.Data 可携带点位列表 JSON,格式同 points 配置;非空时优先于节点配置的 points 使用,适用于动态采集场景:

[
  {"name": "temp", "addr": "MyDB.Temperature", "type": "REAL"}
]
1
2
3

# 特性

  1. 定时采集:搭配 endpoint/schedule 端点前置触发,点位在 points 配置中维护。
  2. 模板变量:点位字段(name/addr/type/value)支持 ${msg.xx} / ${metadata.xx} 占位符。
  3. 动态点位:msg.Data 带点位时优先于配置 points。
  4. 同链连接池:链内其它节点可通过 ref://节点ID 借用本节点已建立的 EtherNet/IP 连接,避免重复建连。
  5. 自动重连重试:连接级失败(全部标签失败)自动重连并重试,最多 3 次。

# Relation Type

  • Success: 执行成功,把消息发送到Success链。
  • Failure: 执行失败,把消息发送到Failure链。

# 示例

{
  "ruleChain": {
    "name": "eip-read-demo",
    "root": true,
    "debugMode": false
  },
  "metadata": {
    "endpoints": [],
    "nodes": [
      {
        "type": "x/eipRead",
        "name": "read tags",
        "debugMode": false,
        "configuration": {
          "server": "192.168.1.10",
          "slot": 0,
          "timeout": 5,
          "points": [
            {"name": "temperature", "addr": "MyDB.Temperature", "type": "REAL"},
            {"name": "running", "addr": "MyDB.Running", "type": "BOOL"}
          ]
        }
      }
    ],
    "connections": []
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/07/29, 07:07:39
S7 写
EtherNet/IP 写

← S7 写 EtherNet/IP 写→

Theme by Vdoing | Copyright © 2023-2026 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式