Skip to main content
Version: 3.0

FANUC FOCAS Ethernet Nodes

Read FANUC CNC controllers directly over FOCAS Ethernet, with no adapter: batch reads with per-address errors, and a one-call machine snapshot.

Operations
Read · Status
Writes
None: read-only
Errors
Per address, never a guessed value

Read FANUC CNC controllers from pipelines over FOCAS Ethernet. Each operation has its own node in the Pipeline Designer: FANUC FOCAS Ethernet Read and FANUC FOCAS Ethernet Status. Their results have the same shape as the FANUC FOCAS (adapter) connector's Read and Status nodes, so expressions written for one work for the other.

For connection setup, the address catalog and per-function fields, see the FANUC FOCAS Ethernet connection guide.

Configuration Quick Reference​

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the FANUC FOCAS Ethernet connection profile, pick a function, bind parameters with expression support, and optionally override the timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behaviour on timeout or failure, and error strategy. All execution settings default to pipeline-level values.

FANUC FOCAS Ethernet Read Node​

Read a list of addresses, each with its value or its own error. Runs a fanuc_ethernet.read function.

Node Configuration​

ParameterTypeRequiredDescription
ConnectionSelectionYesFANUC FOCAS Ethernet connection profile to use
FunctionSelectionYesA fanuc_ethernet.read function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function (addresses). See Read.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Output Structure​

{
"result": {
"values": [
{ "address": "status.run", "value": "EXECUTING", "ts": "2026-11-03T10:00:00.120Z" },
{ "address": "macro.501", "value": null, "ts": "2026-11-03T10:00:00.125Z" },
{ "address": "axis.9.pos.abs", "error": { "code": "INVALID_ADDRESS", "message": "\"axis.9.pos.abs\": the controller has 3 axes" } }
]
},
"_metadata": { "success": true, "functionId": "<function-id>", "durationMs": 14, "timestamp": "2026-11-03T10:00:00Z" }
}
FieldTypeDescription
result.valuesarrayOne item per requested address, in order. A read item has address, value and ts (when it was read); value is null for an empty macro variable. A failed item has address and error (code, message) instead.

A read where some addresses fail still succeeds (marked partial); a broken connection fails the node.

{{ $node["FANUC FOCAS Ethernet Read"].result.values[0].value }}

FANUC FOCAS Ethernet Status Node​

Read the controller identity and a machine snapshot in one call. Runs a fanuc_ethernet.status function.

Node Configuration​

ParameterTypeRequiredDescription
ConnectionSelectionYesFANUC FOCAS Ethernet connection profile to use
FunctionSelectionYesA fanuc_ethernet.status function from the selected connection
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Output Structure​

{
"result": {
"cncHost": "192.168.1.50",
"cnc": { "series": "G431", "version": "0010", "cncType": "31", "mtType": "M", "axisCount": 3, "maxAxis": 32 },
"snapshot": {
"run": "EXECUTING", "mode": "MEM", "motion": true, "estop": false, "alarm": false,
"runningProgram": 1234, "mainProgram": 100, "feedRate": 1500.0, "spindleSpeed": 3000.0
}
},
"_metadata": { "success": true, "functionId": "<function-id>", "durationMs": 21, "timestamp": "2026-11-03T10:00:00Z" }
}
FieldTypeDescription
result.cncHoststringThe CNC the snapshot came from
result.cncobjectController identity: series, version, cncType, mtType, axisCount, maxAxis. Absent when the controller did not report it (then result.unavailable.cnc says why).
result.snapshotobjectrun, mode, motion, estop, alarm; and runningProgram, mainProgram, feedRate, spindleSpeed when the controller answers them
result.unavailableobjectPresent only when a snapshot field could not be read: each such field with its error (code, message)
{{ $node["FANUC FOCAS Ethernet Status"].result.snapshot.run }}