Resolving CS1W-ETN11 Selected Port Does Not Exist Error

James Nishida11 min read
Industrial NetworkingOmronTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Resolving CS1W-ETN11 "Selected Port Does Not Exist" Error in CX-Programmer

The CS1W-ETN11 Ethernet Unit on a CS1G-H PLC is fully pingable and exchanges data with an OPC server on UDP/TCP 9600, yet CX-Programmer refuses the online connection with "The Selected Port Does Not Exist". This article documents the root causes, the correct IP routing configuration, and the verification sequence to bring the project back online without replacing hardware.

1. Problem Statement

An installed base with the following configuration presents the symptom:

  • CPU: Omron CS1G-H (rack-mounted, CS1 series backplane)
  • Communications Unit: CS1W-ETN11 (10Base-T, 100 Mbps not supported on this card)
  • Programming tool: CX-Programmer (CX-One or CX-One Lite, version 4.x or later recommended)
  • PC IP address: 10.60.6.14 (engineering workstation)
  • Network topology: PC and PLC on different IP subnets, traversing a Layer-3 gateway
  • Network Type selected in CX-Programmer: Ethernet FINS/TCP
  • Observed behavior:
    • ping <PLC IP> returns successfully.
    • OPC server reads tags on FINS port 9600 without fault.
    • CX-Programmer returns "The Selected Port Does Not Exist" when attempting to go online.
The OPC server uses the same FINS port (UDP 9600 by default, or TCP 9600 for FINS/TCP) and is able to resolve the unit. CX-Programmer's failure while the OPC succeeds almost always points to a CX-Programmer-side network binding or to a missing FINS network/router table entry, not to a hardware fault on the ETN11.

2. ETN11 Hardware, FINS, and CX-Programmer Background

The CS1W-ETN11 (Omron product page) is a 10Base-T Ethernet Unit for the CS1 series. It uses Omron's proprietary FINS (Factory Interface Network Service) protocol as the application-layer messaging, carried over either UDP or TCP on port 9600. Reference: CS/CJ Series CS1W-ETN01/ETN11/CJ1W-ETN11 Ethernet Units Operation Manual (Cat. No. W364).

Specification CS1W-ETN11 Value
Ethernet physical layer 10Base-T (10 Mbps), RJ-45
FINS node address range 1 to 254 (set by rotary switches)
Default FINS port UDP 9600 (FINS/UDP) / TCP 9600 (FINS/TCP)
IP address assignment Rotary switches, BOOTP, or programming console
IP Address Table entries Up to 32 (depending on firmware revision)
IP Router Table entries Up to 8 default gateways
Simultaneous FINS/TCP connections Up to 8

CX-Programmer treats the ETN11 as a Network object inside the project tree. When "Go Online" is selected, CX-Programmer:

  1. Reads the Local Network Number and Local Node Number from the PC's FINS driver (the FINSGateway service or the built-in ETN_UNIT emulation).
  2. Reads the Target Network Number and Target Node Number from the connection dialog.
  3. Issues a FINS Node Address Resolution (FINS 04 01) or uses the IP Address Table to convert the FINS node to an IP address.
  4. Opens a TCP socket to port 9600 (or UDP for FINS/UDP) and exchanges the connect message.

If step 3 fails to resolve the target node to an IP, CX-Programmer has no valid socket to open and reports the dialog error "The Selected Port Does Not Exist." This is the same error returned when the destination IP/port cannot be opened because no FINS node-to-IP mapping exists.

3. Root Cause Analysis

Three contributing factors are typically present when this exact symptom appears:

3.1 Cross-Subnet Traversal Without an IP Router Table Entry

The PC at 10.60.6.14 reaches the ETN11 across a router. The ETN11's IP Router Table tells the unit which gateway to use to reach non-local subnets. With the table empty, the unit cannot originate a FINS response back to a node outside its own subnet, so the connection appears valid on the PC side but never completes a bidirectional handshake.

3.2 Misconfigured CX-Programmer Local Node / Workstation Number

If the PC has multiple network adapters (a common situation with VPN, Wi-Fi, and Ethernet on the same laptop), the FINS driver may bind to the wrong adapter. The workstation number on the rightmost tab of the CX-Programmer connection dialog must be unchecked from AUTO and set to the last octet of the PC's IP address (i.e., 14 in this scenario).

3.3 Wrong Network Type for the Physical Path

If the ETN11 is on a Layer-2 segment that does not pass FINS/TCP cleanly, switching CX-Programmer to Ethernet (FINS/UDP) can succeed where FINS/TCP fails. FINS/UDP is the original CS1W-ETN11 path and is the most reliable choice for legacy CS1G-H systems.

4. Network Type Selection in CX-Programmer

Network Type Setting Transport Default Port Recommended For
Ethernet (no suffix) FINS/UDP UDP 9600 CS1G-H with ETN11, mixed-subnet LANs, robust to packet loss
Ethernet FINS/TCP FINS/TCP TCP 9600 Modern CJ2/CJ1M, when a single dedicated socket is preferred
Ethernet (FINS/UDP via ETN_UNIT) FINS/UDP routed through FinsGateway UDP 9600 PC without a direct Ethernet card on the plant LAN
Field note: A working ETN21 on another machine is not proof that the ETN11 path is identical. The ETN21 supports 100 Mbps and uses different default routing. Always configure each unit independently.

5. IP Address Table and IP Router Table Configuration

Open the I/O Table in CX-Programmer, double-click the ETN11 slot, and select the Setup tab. The two routing structures must be filled in.

5.1 IP Address Table (FINS Node ↔ IP Address)

The IP Address Table converts a FINS node number to an IP address. With Conversion = Auto (Static), the ETN11 derives the FINS node from the last octet of the IP address. For example, IP 192.168.1.8 corresponds to FINS node 8.

Index FINS Node No. IP Address Comment
0 14 10.60.6.14 PC engineering workstation
1 8 192.168.1.8 ETN11 itself (matches node switch)
2 1 192.168.1.1 Gateway (if FINS routing is required)

If the unit uses Auto (Static) conversion and the PC is on a different subnet (10.60.6.0/24 vs. 192.168.1.0/24), explicit entries are required for every remote FINS node the unit will be addressed by.

5.2 IP Router Table (Default Gateways)

Each entry specifies a destination IP network and the gateway IP used to reach it. The table supports up to 8 entries.

Index Destination IP Subnet Mask Gateway IP Comment
0 10.60.6.0 255.255.255.0 192.168.1.1 Path to engineering PC subnet
1 0.0.0.0 0.0.0.0 192.168.1.1 Default route (catch-all)

Refer to Section 3-11 (IP Routing) of the W364 manual for the exact dialog and per-firmware constraints. Router Table 1 is mandatory for any traffic leaving the local subnet.

6. Node Address Switch (Rotary Switches) and Unit Number

6.1 Node Address Switches

The CS1W-ETN11 has two BCD rotary switches labeled x16 and x1 on the front of the unit. Together they set the FINS node number from 01 to FE (1 to 254). The switch value is read only at power-up; changes require a power cycle.

6.2 Unit Number

The Unit Number is a separate I/O table word allocation identifier, not a FINS node. It ranges from 0 to 95. Unit number 0 is the default and is acceptable when only one communications unit is mounted. It does not need to match the FINS node. Setting it to a non-zero value is only required if multiple ETN units are mounted and a specific allocation order is needed in the I/O table.

7. FINS/TCP vs FINS/UDP: Why "Selected Port Does Not Exist"

The literal error message is misleading. CX-Programmer raises it when the underlying WinSock call cannot open the destination TCP port 9600. The most common triggers are:

  1. The PC's local FINS node cannot be resolved against any IP (wrong adapter binding).
  2. The remote node cannot be resolved to an IP (IP Address Table empty or wrong conversion mode).
  3. A firewall in the path blocks TCP 9600 while permitting UDP 9600 (which is why OPC on UDP 9600 still works).

Test in this order:

  1. telnet <PLC IP> 9600 from the PC command prompt. If the connection times out, the path blocks TCP. Switch CX-Programmer to FINS/UDP.
  2. If telnet succeeds but CX-Programmer still fails, the issue is FINS-level, not TCP-level. Proceed to the IP Address Table fix.

8. Step-by-Step Resolution Procedure

Step 1 — Verify physical and link layer

  1. Confirm the LINK LED on the ETN11 is lit solid green.
  2. Confirm ping <PLC IP> -t from the PC returns <10 ms with no loss.

Step 2 — Set up the CX-Programmer Local Node

  1. Open CX-Programmer → SettingsCommunications Setup.
  2. Double-click the Local Network Number / Local Node Number entry.
  3. On the rightmost tab, uncheck Auto for Workstation Number.
  4. Enter 14 (last octet of 10.60.6.14).

Step 3 — Configure the Target Connection

  1. In the project tree, right-click the PLC → Change Connection Method.
  2. Select Device (Ethernet) from the Device Type dropdown.
  3. Set Network Type to Ethernet (FINS/UDP) as the first attempt.
  4. Set Target Network Number to the FINS network of the ETN11 (default 1).
  5. Set Target Node Number to the value on the rotary switches (e.g., 8).
  6. Enter the IP address of the ETN11 in the IP Address field.
  7. Click Test — a successful test reports "Connected to PLC."

Step 4 — Populate the IP Address Table

  1. Open I/O Table → double-click the ETN11 slot → SetupIP Address Table tab.
  2. Add a row for the PC node: Node 14, IP 10.60.6.14.
  3. Add a row for the ETN11 itself: Node 8, IP 192.168.1.8.
  4. Click Transfer to PLC and cycle power if prompted.

Step 5 — Populate the IP Router Table

  1. On the IP Router Table tab, add a default route: 0.0.0.0 / 0.0.0.0 / 192.168.1.1.
  2. Add a specific route to the PC subnet: 10.60.6.0 / 255.255.255.0 / 192.168.1.1.
  3. Transfer to the PLC and cycle power.

Step 6 — Go Online

  1. Return to the PLC connection dialog and click Connect (or press Ctrl+W).
  2. Confirm the Status Bar reads Online — Program Mode (or Monitor Mode, depending on selector).

9. Verification

Test Expected Result What It Confirms
ping <PLC IP> <10 ms, 0% loss Layer 3 path is good
telnet <PLC IP> 9600 Blank screen, connection holds TCP 9600 not blocked by firewall
CX-Programmer Test button "Connected" message FINS node resolution working
Online mode upload Program matches PLC Full bidirectional FINS path is healthy
CX-Programmer Force Set/Reset Bit toggles on PLC Write path also works

10. Edge Cases and Field-Proven Caveats

  • Multiple network adapters: Always uncheck AUTO for workstation number. Laptops with Wi-Fi, VPN, and Ethernet will bind to the wrong NIC if AUTO is left on, and CX-Programmer will hang for ~30 seconds before returning the "Selected Port" error.
  • FINS network number mismatch: The ETN11 default network number is 1. If your project tree shows a different number (e.g., 10 for a multi-tier FINS network), the network number in the connection dialog must match the ETN11's FINS Network Number setting on the Setup tab.
  • Windows firewall: Windows Defender Firewall on Windows 10/11 may block FinsGateway and CX-Programmer silently. Add CX-Programmer.exe and FinsGateway.exe to the allowed apps on the relevant profile.
  • Firmware revision: ETN11 units with firmware below v2.0 have smaller routing tables and a different conversion default. Confirm the firmware version in the I/O Table Properties dialog before assuming the table size from the manual applies.
  • Switching hubs vs managed switches: 10Base-T ETN11 units do not autonegotiate. Some managed switches will silently drop the link if the port is hard-set to 100/full. Force the switch port to 10/half or to AUTO with 10 advertised.
  • BOOTP server left enabled: If the unit was originally configured via BOOTP and the BOOTP server is now offline, the unit may revert to its last good IP. Verify the IP after every power cycle, especially when the PLC has been stored.

11. Diagnostic Flow Summary

flowchart TD
    A[Start: Cannot go online with CX-Programmer] --> B{Ping PLC OK?}
    B -- No --> C[Fix Layer 1/2: cable, switch port speed, IP]
    B -- Yes --> D{OPC server works on port 9600?}
    D -- No --> E[Fix FINS path: IP Address Table, unit number]
    D -- Yes --> F{telnet PLC 9600 OK?}
    F -- No --> G[Switch CX-Programmer to FINS/UDP]
    F -- Yes --> H{Workstation number set manually?}
    H -- No --> I[Uncheck AUTO, enter last octet of PC IP]
    H -- Yes --> J{IP Router Table has default route?}
    J -- No --> K[Add 0.0.0.0/0.0.0.0/gateway]
    J -- Yes --> L[Online ✓]

12. Related Standards and References

What does "The Selected Port Does Not Exist" actually mean in CX-Programmer?

It is the message returned when the FINS driver cannot resolve the target node to an IP and open a socket to TCP 9600. The port physically exists, but CX-Programmer's FINS routing table is missing an entry or the wrong network adapter is bound. It is almost always an IP Address Table, IP Router Table, or workstation number issue — not a cable or unit failure.

Should I use FINS/TCP or FINS/UDP with a CS1W-ETN11?

Use FINS/UDP ("Ethernet" without the /TCP suffix) for the CS1W-ETN11. The unit is a 10Base-T card designed around the FINS/UDP path. FINS/TCP is supported but was added later and can be blocked by firewalls in legacy plant networks. If telnet to port 9600 times out, switch the Network Type to FINS/UDP first.

Does the Unit Number need to match the FINS Node Address?

No. The Unit Number (0–95) is an I/O table allocation slot, while the FINS Node (1–254) is set by the rotary switches and used in routing. Leave Unit Number at 0 unless multiple ETN units are mounted. Changing the Unit Number does not change FINS node-to-IP resolution.

Why does OPC work on port 9600 but CX-Programmer does not?

The OPC server typically uses FINS/UDP with its own static routing table and often resides on a server with a fixed IP. CX-Programmer uses the local FinsGateway service, which binds to the active network adapter. With multiple adapters or with AUTO workstation number enabled, the OPC server path is unaffected while CX-Programmer binds to the wrong NIC, producing the "Selected Port" error.

Do I need to cycle power after changing the IP Address Table?

Yes. The ETN11 reads the IP Address Table and IP Router Table into volatile memory at power-up. Changes written from CX-Programmer via "Transfer to PLC" take effect only after a power cycle of the CPU. Some firmware revisions also require a CPU restart rather than a slot reset — use a full power cycle to be safe.

Back to blog