Skip to main content

FINS Overview

The FINS route enables communication with Omron PLCs (CJ, CS, CP, and NJ/NX series) using the FINS (Factory Interface Network Service) protocol. It supports both TCP and UDP transport, multiple memory areas, and bit-level access.
FINS is Omron’s native protocol providing fast, efficient access to PLC memory. For newer NJ/NX series, consider OPC UA as an alternative.

Basic Syntax


Connection Configuration

FINS_CONFIG Parameters

IP
string
required
Target Omron device IP address.
PORT
integer
FINS protocol port. Default: 9600.
PROTOCOL
string
Protocol type: TCP or UDP. Default: TCP.
LOCAL_NODE
integer
Local node address (0-255). Default: 0.
REMOTE_NODE
integer
Remote node address - target PLC (0-255). Default: 0.
TIMEOUT
integer
Connection timeout in seconds. Default: 2.
RETRIES
integer
Number of retries for FINS communication. Default: 5.
POLLING
integer
Polling interval in milliseconds. Default: 200.

Connection Examples

Standard TCP connection (recommended):
TCP transport for FINS is currently in development. Use UDP for production deployments.

Memory Areas

Omron PLCs organize data in different memory areas:
DM (Data Memory) is the most commonly used area for user data. CIO is typically used for I/O and internal relays.

Data Types


TAG Configuration

Complete TAG Example

TAG Parameters

ADDRESS
string
required
Word address in PLC memory (e.g., 100, 200, 500).
BIT_ADDRESS
integer
Bit address for bit-specific data types (0-15). Used for BOOL values within a word.
MEMORY_TYPE
string
Memory area: CIO, WR, HR, AR, DM, CNT, TIM, EM. Default: DM.
DATA_TYPE
string
required
FINS data type: BOOL, BYTE, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, ASCII, STRING.
STRING_SIZE
integer
Size of string for STRING types. Default: 256.
SCALING
double
Multiplier for value transformation. Default: 1.0.
OFFSET
double
Offset added after scaling. Default: 0.0.
DECIMAL_PLACES
integer
Decimal places in output. Default: 2.
MIN_VALUE
double
Minimum allowed value.
MAX_VALUE
double
Maximum allowed value.
DEADBAND
double
Minimum change to trigger publish. Default: 0.0.
SOURCE_TOPIC
string
required
Topic where PLC values are published. Subscribe here to receive sensor data.
DESTINATION_TOPIC
string
Topic to send write commands. Publish a value here to write it to the PLC.
PUBLISH_MODE
string
Output format: VALUE_ONLY or JSON. Default: VALUE_ONLY.
UNIT
string
Engineering unit for documentation.
DESCRIPTION
string
Human-readable description.
WRITABLE
boolean
Allow writing to this address. Default: false.

Addressing Examples

Word Addressing

Access data at word level:

Bit Addressing

Access individual bits within a word:

32-bit Values

32-bit values span two consecutive words:
REAL and DINT types use two consecutive words (e.g., DM200 and DM201).

Event-Based Operations

For on-demand FINS operations (not polling), use the EVENT syntax. Publish a message to SOURCE_TOPIC to trigger the operation; the route executes it and publishes the result to DESTINATION_TOPIC.

Supported Operations

Query Parameters

Read Example

Read a REAL value from DM area on demand:

Write Example

Write a REAL value to DM area on demand:

Complete Examples

Read values from DM area:

Memory Area Details

  • Used for I/O mapping and internal relays
  • Words 0-99: Typically input/output modules
  • Words 100-999: Work bits and internal relays
  • Addresses are PLC model dependent
  • Main user data storage
  • Typically DM0-DM32767
  • Best for process data, setpoints, configuration
  • Retentive (battery-backed)
  • Always retentive data
  • Survives power cycles
  • Use for counters, totals, settings
  • Typically HR0-HR511
  • General purpose work bits
  • Non-retentive (cleared on power cycle)
  • Fast access for temporary data
  • TIM: Timer present values
  • CNT: Counter present values
  • Values are 16-bit unsigned
  • Timer values often in 0.1s units

Troubleshooting

  • Verify IP address is correct
  • Check firewall allows port 9600
  • Ensure PLC Ethernet module is configured
  • Try both TCP and UDP protocols
  • Verify node addresses match PLC configuration
  • LOCAL_NODE should be unique on the network
  • REMOTE_NODE is the target PLC’s node number
  • Check PLC’s FINS settings for correct node configuration
  • For direct connections, try 0 for both nodes
  • Verify address is within valid range for memory type
  • Check MEMORY_TYPE matches where data is stored
  • For 32-bit types, ensure two consecutive words are available
  • BIT_ADDRESS must be 0-15
  • Increase TIMEOUT value
  • Check network connectivity
  • Verify PLC is in RUN mode
  • Reduce POLLING rate if reading many tags
  • Try TCP instead of UDP
  • Ensure WRITABLE is “true”
  • Verify memory area is writable (not AR)
  • Check PLC is not in monitor mode
  • Verify value is within data type range

Next Steps

Modbus TCP

Universal industrial protocol support.

Industrial Overview

Common patterns for all industrial routes.
Last modified on May 22, 2026