Skip to main content

OMRON FINS

FINS (Factory Interface Network Service) is the standard communication protocol for Japanese OMRON PLCs. Nearly every OMRON series — CJ / CS / CP / NJ / NX — supports FINS/TCP or FINS/UDP.

These PLCs are commonly found in automotive parts, food and beverage, and pharmaceutical packaging lines.


Registration form entries

FieldWhat to enterExample
IP addressIP of the PLC192.168.0.110
PortFINS port9600 (standard)
Network number (network)FINS network number0 (single network)
Node number (node)Node number of the PLCUsually the last octet of the IP (110)
Unit number (unit)Unit in a multi-CPU setup0

In CX-Programmer / Sysmac Studio on the PLC, [Built-in Ethernet Settings] → FINS/TCP or FINS/UDP must be enabled.

Getting the node number right

OMRON commonly uses the last octet of the IP as the node number (e.g. 192.168.0.110 → node 110). However, it can be set to any value under [PLC Settings] → [Built-in Ethernet] in CX-Programmer, so always follow the value shown on the PLC.


PLC address notation for tags

OMRON memory areas and their short notation:

NotationAreaNotes
D100Data Memory 100Most common, 16-bit
W50Work Area 5016-bit
H10Holding Area 1016-bit, retained after power OFF
A100Auxiliary Area16-bit
CIO0Core I/O word 016-bit
CIO0.5Bit 5 of CIO word 01 bit
E0_100Extended DM bank 0, addr 10016-bit

Bit / word notation

  • <area><number> → 16-bit word (e.g. D100)
  • <area><number>.<bit> → bit (e.g. CIO0.5)
  • <area><number>:<data-type> → explicit data type (e.g. D100:DINT)

Data type mapping

PLC valueData typeType modifierPLC address example
Bit (CIO bit / W bit)Boolean(leave empty)CIO0.5, W50.0
16-bit integerInteger(leave empty)D100
16-bit unsignedIntegerUID100
32-bit integer (D100–D101)IntegerDWD100
32-bit floatFloatREALD200
64-bit floatDoubleLREALD300
String (BCD/ASCII)StringSTR[N]D500

OMRON stores 32-bit data as a pair of words (e.g. D100 = lower, D101 = upper). When using DINT / REAL, leave enough free words available.


Common problems and fixes

Symptom / messagePossible causeFix
"Connection refused"FINS is disabledEnable FINS/TCP or FINS/UDP in CX-Programmer / Sysmac Studio
"Network not found" / "Node not found"network/node number mismatchEnter exactly the network/node values from the PLC's [Built-in Ethernet Settings]
Value is always 0Area mismatch (e.g. reading D as W)Recheck the "FINS memory area codes" in the manual
32-bit float is garbledWord order difference (LSWORD/MSWORD)Try REAL (default) in the type modifier; if that fails, use REAL_LSWORD_FIRST

Frequently used examples

Tag namePLC addressData typeType modifier
Run flagCIO0.0Boolean(leave empty)
Production counterD100Integer(leave empty)
Pressure (kPa)D200FloatREAL
Accumulated time (h)D102IntegerDW
Batch IDD500StringSTR[10]

More detailed examples / automated registration

See the FINS examples in Advanced — REST API.