RuleGo RuleGo
🏠Home
  • Quick Start
  • Rule Chain
  • Standard Components
  • Extension Components
  • Custom Components
  • Visualization
  • RuleGo-Server
  • AOP
  • Trigger
  • Advanced Topics
  • Performance
  • Standard Components
  • Extension Components
  • Custom Components
  • Components Marketplace
  • Overview
  • Quick Start
  • Routing
  • DSL
  • API
  • Options
  • Components
🔥Editor (opens new window)
  • RuleGo Editor (opens new window)
  • RuleGo Server (opens new window)
  • StreamSQL
  • AI Agent Framework
  • TPCLAW Agent Platform (opens new window)
  • Github (opens new window)
  • Gitee (opens new window)
  • Changelog (opens new window)
  • English
  • 简体中文
🏠Home
  • Quick Start
  • Rule Chain
  • Standard Components
  • Extension Components
  • Custom Components
  • Visualization
  • RuleGo-Server
  • AOP
  • Trigger
  • Advanced Topics
  • Performance
  • Standard Components
  • Extension Components
  • Custom Components
  • Components Marketplace
  • Overview
  • Quick Start
  • Routing
  • DSL
  • API
  • Options
  • Components
🔥Editor (opens new window)
  • RuleGo Editor (opens new window)
  • RuleGo Server (opens new window)
  • StreamSQL
  • AI Agent Framework
  • TPCLAW Agent Platform (opens new window)
  • Github (opens new window)
  • Gitee (opens new window)
  • Changelog (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • Quick Start

  • Rule Chain

  • Standard Components

  • Extension Components

    • Extension Components Overview
    • filter

    • action

    • transform

    • external

    • ai

    • ci

    • IoT

      • IoT Components Overview
      • Input Endpoints

      • Protocol Acquisition

        • OPC_UA Read
        • OPC_UA Write
        • Modbus Node
        • Serial Communication
        • S7 Read
        • S7 Write
        • EtherNet/IP Read
        • EtherNet/IP Write
          • Configuration
          • Point Fields
          • Input
          • Features
          • Relation Type
          • Execution Result
          • Example
        • SNMP Read
        • SNMP Write
        • Modbus Read Points Node
        • Modbus Write Points Node
        • Universal Acquisition Read
        • IoT Write
        • IEC 104 Read
        • IEC 104 Write
        • FINS Node
        • FINS Read
        • FINS Write
        • MC Node
        • MC Read
        • MC Write
        • DL/T 645 Node
        • DL/T 645 Read
        • DL/T 645 Write
      • Time-Series Database

      • 控制

      • IoT Scenarios
    • Stream Processing

    • Service Discovery

    • file

  • Custom Components

  • Components marketplace

  • Visualization

  • AOP

  • Trigger

  • Advanced Topic

  • Agent Framework

  • RuleGo-Server

  • FAQ

  • Endpoint Module

  • Support

  • StreamSQL

目录

EtherNet/IP Write

x/eipWrite component: v0.37.0+ Writes tag values in batch to Rockwell Automation Allen-Bradley ControlLogix/CompactLogix/Micro820 PLCs over the EtherNet/IP (CIP) protocol. Only CIP devices are supported; PCCC protocol devices such as PLC5, SLC, and MicroLogix are not supported.

Additional extension library required: rulego-components-iot (opens new window)

# Configuration

Field Type Description Default
server string PLC host address (host only); port 44818 is built in by gologix, e.g. 127.0.0.1; supports ref://nodeId to reuse an existing connection in the chain 127.0.0.1
slot int CPU slot on the backplane; auto-generates the CIP path (e.g. 1,0) 0
path string Optional CIP path override, e.g. 1,0; empty = auto-generated from slot None
timeout int Request timeout in seconds 5
points array Default points table; points in msg.Data take precedence None

Points fields:

Field Type Description
name string Point name
addr string Controller tag name (CIP tag), e.g. MyTag, MyDB.Temperature
type string Tag data type, required (gologix Write needs an explicit type to encode the value); see options below
value string Value to write (as a string); supports ${msg.xx} template variables
scale float Optional scale multiplier (default 1); conversion formula eng = raw*scale + offset
offset float Optional offset (default 0)

# Point Fields

addr: Controller tag name. Supports controller-scoped tags (e.g. Temperature), struct members (e.g. MyDB.Temperature), array elements (e.g. MyArray[0]), and program-scoped tags (e.g. Program:MainProgram.Tag).

type: Tag data type, required. gologix Write needs an explicit type pointer to encode the value correctly; it cannot be inferred automatically.

Supported values (case-insensitive):

Category Accepted aliases
Boolean BOOL (value accepts true/false/0/1)
8-bit integer BYTE, SINT, USINT
16-bit integer INT, INT16, UINT, WORD, UINT16
32-bit integer DINT, INT32, UDINT, DWORD, UINT32
64-bit integer LINT, INT64, ULINT, UINT64
32-bit float REAL, FLOAT
64-bit float LREAL, DOUBLE
String STRING

value: The value to write, in string form. Integers accept decimal and 0x hexadecimal prefixes; booleans accept true/false/0/1; floats are parsed by Go's standard rules.

# Input

The list of points to write is read from msg.Data in the format below; when non-empty it takes precedence over the configured points:

[
  {"addr": "MyDB.Setpoint", "type": "REAL", "value": "50.5"},
  {"addr": "MyDB.Running", "type": "BOOL", "value": "true"},
  {"addr": "MyDB.Count", "type": "DINT", "value": "${msg.counter}"}
]
1
2
3
4
5

value supports ${msg.xx} / ${metadata.xx} template variables, making it easy to write dynamically based on upstream messages.

# Features

  1. Periodic writes: Pair with an endpoint/schedule endpoint upstream as a trigger; maintain points in the points configuration.
  2. Template variables: Point fields (name/addr/type/value) support ${msg.xx} / ${metadata.xx} placeholders.
  3. Dynamic points: Points in msg.Data take precedence over configured points.
  4. Same-chain connection pool: Other nodes in the same chain can borrow the EtherNet/IP connection already established by this node via ref://nodeId, avoiding duplicate connections.
  5. Auto-reconnect & retry: On write failure the node reconnects and retries automatically, up to 3 times.

# Relation Type

  • Success: On successful execution, the message is sent to the Success chain.
  • Failure: On failed execution, the message is sent to the Failure chain.

# Execution Result

Does not change the message payload.

# Example

{
  "ruleChain": {
    "name": "eip-write-demo",
    "root": true,
    "debugMode": false
  },
  "metadata": {
    "endpoints": [],
    "nodes": [
      {
        "type": "x/eipWrite",
        "name": "write tags",
        "debugMode": false,
        "configuration": {
          "server": "192.168.1.10",
          "slot": 0,
          "timeout": 5,
          "points": [
            {"name": "setpoint", "addr": "MyDB.Setpoint", "type": "REAL", "value": "50.5"},
            {"name": "running", "addr": "MyDB.Running", "type": "BOOL", "value": "true"}
          ]
        }
      }
    ],
    "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
Edit this page on GitHub (opens new window)
Last Updated: 2026/07/29, 07:07:39
EtherNet/IP Read
SNMP Read

← EtherNet/IP Read SNMP Read→

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

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