FINS Read
x/finsRead component: v0.37.0+ Reads CS/CJ/CP/NJ/NX series PLC memory areas via the Omron FINS protocol (UDP/TCP). Results are written to msg.Data as a unified iot_points.Data list.
Requires: rulego-components-iot (opens new window)
# Configuration
| Field | Type | Description | Default |
|---|---|---|---|
| server | string | PLC address IP[:port], FINS default port 9600 | 127.0.0.1:9600 |
| transport | string | Transport: udp / tcp (FINS/TCP with node handshake) | udp |
| network | int | FINS network number (DA1/SA1) | 0 |
| dstNode | int | Destination node number (DA2, PLC FINS node) | 0 |
| srcNode | int | Source node number (SA2, this client's node) | 0 |
| unit | int | Unit address (DA3, CPU unit number) | 0 |
| timeout | int | Request timeout (seconds) | 5 |
| points | array | Default point table. Points in msg.Data take precedence | - |
# Point Table Fields
| Field | Description |
|---|---|
| name | Point name |
| addr | FINS memory address (see below) |
| type | Data type |
| scale / offset | Engineering conversion |
| endian | Multi-register byte order: ABCD/CDAB/BADC/DCBA |
Engineering formula: eng = raw * scale + offset. For offset-only conversion, set scale=1 explicitly; when scale=0, the result becomes offset.
All fields support ${msg.xx} / ${metadata.xx} templates.
# Address Format
| Area | Word | Bit | Description |
|---|---|---|---|
| DM | DM100 | DM100.3 | Data memory (also shorthand D100) |
| CIO | CIO100 | CIO10.0 | CPU I/O area |
| WR | WR200 | WR200.5 | Work area (also shorthand W) |
| HR | HR50 | HR50.2 | Holding relay (also shorthand H) |
| AR | AR10 | AR10.7 | Auxiliary relay (also shorthand A) |
# Data Types
BOOL, INT16, UINT16, INT32, UINT32, FLOAT32 (per-point Endian: ABCD/CDAB/BADC/DCBA)
# Input/Output
- Input: use configured
points, or override them by passing a point list inmsg.Data - Output:
[{"name","value","timestamp","error"}]
# Example
{
"id": "fins_read",
"type": "x/finsRead",
"configuration": {
"server": "192.168.1.20:9600",
"transport": "udp",
"points": [
{"name": "temperature", "addr": "DM100", "type": "INT16", "scale": 0.1},
{"name": "motor", "addr": "CIO10.0", "type": "BOOL"}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# Related
- Overview: x/fins
- Write: x/finsWrite
- Universal acquisition entry: x/iotRead (driver=fins)
- To time-series storage: x/tsdbWrite (measurement configured)
Edit this page on GitHub (opens new window)
Last Updated: 2026/08/01, 05:05:14