Configuring CJ1M-ETN21 and NS8 HMI Remote Access over WAN

James Nishida14 min read
Industrial NetworkingOmronTutorial / How-to
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

Configuring CJ1M-ETN21 and NS8 HMI Remote Access over WAN

Programming an Omron CJ1M PLC and an NS-series HMI from across the public Internet is one of the most common service-engineering tasks in machine automation, and it is also one of the most common sources of late-night support calls. The combination of a CJ1M-CPU12 with a CJ1W-ETN21 Ethernet unit and an NS8-TV01B-V2 HMI is robust on the LAN but exposes two fundamentally different remote-access behaviors: the ETN21 was specifically designed to remember remote FINS nodes, while the NS HMI was not. This article walks through the complete commissioning procedure for both devices, including FINS/UDP port 9600 forwarding, default-gateway programming, routing-table entries, and the VPN-based workarounds required when the operator's home IP changes nightly.

1. Overview

The two devices involved communicate using Omron's FINS (Factory Interface Network Service) protocol over UDP. By factory default, FINS uses UDP port 9600 for both command and response traffic. The ETN21 unit adds FINS-to-IP address translation and supports a feature called Auto Dynamic (AUTO:DYNAMIC) routing, which lets the PLC remember the IP address of every remote node it has recently spoken to. The NS HMI, on the other hand, behaves like the older ETN11 unit: it cannot resolve a return path to a remote computer automatically, so the destination IP must be programmed into the HMI project before the connection is attempted.

Two practical paths exist for remote access:

  1. Port forwarding on the plant router: Direct incoming TCP/UDP on a public port to the PLC or HMI's private LAN address. Suitable when the remote operator has a static IP or a stable dynamic DNS hostname.
  2. VPN termination on the plant router: The remote operator joins the plant LAN as if physically present. Avoids every FINS routing pitfall but requires a router that supports VPN pass-through or termination.

2. Prerequisites

Before configuration, confirm that the following hardware, software, and information are available.

Category Item Notes
Hardware CJ1M-CPU12 CPU unit Any CJ1M CPU with a CJ1W-ETN21 mounted to the right of the CPU.
Hardware CJ1W-ETN21 Ethernet unit Provides the FINS/UDP socket and supports AUTO:DYNAMIC routing.
Hardware NS8-TV01B-V2 HMI 8.4-inch TFT, built-in 10/100Base-T Ethernet.
Software CX-Programmer (CX-One) Used to set the ETN21's IP address, default gateway, and FINS node table.
Software CX-Designer Used to edit the NS project and configure the remote IP for screen-transfer FINS.
Network Static public IP or DDNS hostname on the plant router Strictly required for port-forwarded access.
Network Router with port-forwarding and FQDN or static IP capability e.g. consumer routers or industrial routers.
Always photograph the existing PLC and router configurations before changing anything. A wrong default gateway programmed into the ETN21 will lock the PLC off the LAN, and the only recovery on a CJ1M is to reprogram the unit through its serial port or to perform an IP-address table reset.

3. CJ1W-ETN21 Remote Configuration

The CJ1W-ETN21 is the easy half of the job because it implements AUTO:DYNAMIC routing. Once UDP 9600 is forwarded by the plant router and the default gateway is set on the unit, CX-Programmer can reach the PLC from any remote IP without further table entries.

3.1 IP Address and Default Gateway

Open CX-Programmer and connect to the ETN21 with a USB or Ethernet cable. Expand IO Table > Built-in Port / Ethernet and double-click the ETN21. In the TCP/IP and Link tabs, program the following:

Parameter Example value Description
IP Address 192.168.1.50 Static LAN address of the ETN21.
Subnet Mask 255.255.255.0 Matches the LAN.
Default Gateway 192.168.1.1 The LAN-side IP of the plant router. This is mandatory for any WAN-side FINS traffic.
FINS UDP Port 9600 Default. Only change if a conflict exists.
FINS Node Number 10 (example) Must be unique on the LAN; defaults to the last byte of the IP if AUTO is selected.

Transfer the new settings to the PLC and cycle power to the ETN21 only (do not power-cycle the entire rack or you will lose the rest of the I/O mapping).

3.2 AUTO:DYNAMIC Routing Mode

In the ETN21's FINS/UDP setup screen, set Routing Table Method to AUTO (DYNAMIC). This is the default, but the user must verify it because the older ETN11 forced AUTO (STATIC) only. With AUTO:DYNAMIC, when the PLC receives a FINS frame from an unknown remote IP, it automatically adds that IP to its internal conversion table for the lifetime of the unit. The next time you connect from the same home IP, the route already exists.

If the home operator reboots their router and gets a new public IP, the AUTO:DYNAMIC table still resolves the new address because it learns by IP, not by hostname. Static entries are not required for the PLC side.

3.3 Plant Router Port Forward

Forward UDP 9600 (default FINS) to the ETN21's LAN IP. The rule on a typical Linksys-style consumer router is:

Field Value
Service / Name Omron-FINS
Protocol UDP
External Port 9600
Internal Port 9600
Internal IP 192.168.1.50
Status Enabled

If the router uses a non-default external port (e.g. 49600) and NATs to internal 9600, configure the same external-port number in CX-Programmer's Network > Connect via Hub dialog so the FINS node table in CX-Programmer matches the public listener.

3.4 CX-Programmer Remote Connection

From the remote PC, run CX-Programmer. Choose File > New with the PLC type set to CJ1M, then choose PLC > Auto Online > Ethernet. Type the plant's public IP or DDNS hostname and click Search. CX-Programmer sends a FINS command packet to UDP 9600; the ETN21 receives it, learns the remote IP into its conversion table, and replies. The PLC appears in the online list and the project transfers normally.

4. NS8 HMI Remote Configuration

The NS8-TV01B-V2 is the harder half of the job. The NS series implements a subset of the FINS stack that does not include AUTO:DYNAMIC conversion. The HMI cannot learn the remote IP on its own, and it cannot respond to a FINS command that arrived from an IP it has never seen.

4.1 Why Port-Forwarding Alone Is Not Enough

When the operator at home opens CX-Designer and connects to the NS's public IP on its HTTP port, the request reaches the NS, but the NS has no entry in its destination table for the home IP. The NS receives the screen-transfer request on its HTTP server (default TCP 80), but for any subsequent FINS-level commands (read/write tags, transfer project) the NS must know which IP to send replies to. Because the HMI's routing table is only AUTO:STATIC, those replies never reach the operator.

Forwarding port 80 (or any custom TCP port above 49152 as described in the NS manual) to the NS lets the initial HTTP request through. The FINS-level conversation after that still requires either a pre-programmed remote IP or a VPN that puts the remote PC on the same subnet as the HMI.

4.2 Programming the Remote IP into the NS

If the operator's home IP is static, the workaround is straightforward:

  1. Open the NS project in CX-Designer on the plant PC.
  2. Select PT - Network Settings and click the FINS tab.
  3. Set Network Address (IP) to the operator's public IP address (e.g. 203.0.113.45).
  4. Set the Subnet Mask and FINS Node Number for the remote side.
  5. Transfer the project via CF card or the existing LAN.

The HMI now knows how to reply to that one specific remote IP. If the operator later changes location, the project must be updated and reloaded by a technician on site. This is the reason the NS manual recommends ports above 49152 - they keep the dynamic port range on the HMI side free of operator conflicts - but it does not solve the routing limitation by itself.

4.3 Practical Limits of the IP-Programming Workaround

  • The home operator must have a static public IP from their ISP, or DDNS that resolves to the same IP for the life of the project.
  • If the ISP hands out a new IP after a router reboot (common with CGNAT), the HMI will not respond until someone reloads the project.
  • Multiple remote operators (office engineer, OEM support, second-shift maintenance) require multiple programmed IP entries or a separate VPN.

5. ETN21 vs ETN11 vs NS Routing Behavior

Behavior CJ1W-ETN21 CJ1W-ETN11 NS8 HMI
FINS/UDP port (default) 9600 9600 9600
AUTO:DYNAMIC FINS-to-IP Yes No No
AUTO:STATIC (programmed remote IPs only) Optional fallback Yes (only) Yes (only)
Built-in HTTP server / screen-transfer Web status only Web status only Yes (port 80 default)
Return-path resolution for unknown remote IPs Learned at runtime Must be programmed Must be programmed

The clean engineering conclusion is that the ETN21 was specifically built to solve the "remote programmer on a changing IP" problem, while the NS HMI was not. When a plant has several NS panels and one or more PLCs, the standard support topology in the field is to use one PLC with two ETN21 cards: one on the WAN-facing router segment, the other on the local machine network with all NS panels. All remote programming traffic (PLC and HMI) flows through the WAN-side ETN21, which converts the FINS node numbers to the appropriate machine IP.

6. VPN-Based Workaround

The simplest long-term solution for remote programming of both the CJ1M and the NS is a VPN that gives the remote PC a routable address on the plant LAN. Once the VPN tunnel is up, neither FINS routing nor port forwarding needs to be reconfigured for changes in the operator's home IP.

6.1 VPN Options

  • Plant router with built-in VPN: Many industrial routers (and most consumer routers after DD-WRT/OpenWrt) support IPsec or OpenVPN. The VPN terminates on the router, putting the remote PC on the plant subnet.
  • Windows built-in VPN client: Suitable for built-in protocols such as PPTP or L2TP/IPsec. Performance is adequate for CX-Programmer and CX-Designer traffic, which is low-bandwidth.
  • Third-party VPN client: OpenVPN GUI, WireGuard, GlobalProtect, or similar. Required when the plant router supports modern protocols.

6.2 Subnet-Mismatch Pitfall

The most common VPN failure is that the VPN hands out addresses on a different subnet than the PLC. For example, the plant LAN is 192.168.1.0/24 with the PLC at 192.168.1.50, but the VPN pool is 192.168.5.0/24. The remote PC can ping the VPN gateway but cannot reach the PLC because the gateway does not bridge the two pools. Verify in the router's VPN settings that the VPN tunnel's pool is either the same subnet as the plant LAN or that the PLC's default gateway has a static route to the VPN pool.

6.3 Remote-Desktop Approach

If the plant already has a Windows PC on the LAN (a SCADA node, an engineering station), the simplest secure configuration is:

  1. VPN or RDP into the engineering station on the plant LAN.
  2. From that station, run CX-Programmer and CX-Designer locally against the PLC and HMI.

This bypasses all FINS routing questions because the traffic stays inside the plant LAN. Microsoft's built-in Remote Desktop Connection handles this well, and Chrome Remote Desktop offers a quick no-VPN alternative if the plant PC has Chrome installed and a Google account signed in. Both options put the operator on the same subnet as the PLC from the device's point of view.

7. Step-by-Step Commissioning Procedure

  1. Confirm LAN functionality first. From the plant PC, open CX-Programmer and confirm an online connection to 192.168.1.50 (UDP 9600). Confirm CX-Designer connects to the NS at 192.168.1.60 (TCP 80) and that a small test screen transfers cleanly. Do not proceed until LAN-only communication works in both tools.
  2. Set the ETN21 default gateway to the LAN-side IP of the plant router (typically 192.168.1.1).
  3. Verify AUTO:DYNAMIC is selected in the ETN21's routing table method.
  4. Confirm a static public IP or DDNS hostname on the plant router. Write it down.
  5. Forward UDP 9600 to 192.168.1.50 on the plant router. Both directions (UDP is two-way); no special NAT loopback rules are needed unless the same plant PC must also reach the PLC externally.
  6. Forward TCP 80 (or the configured NS port) to 192.168.1.60 for NS screen transfer.
  7. From home, test the PLC first. Open CX-Programmer, enter the public IP, attempt Auto Online. If the PLC appears, AUTO:DYNAMIC has populated the route.
  8. For the NS, choose one of:
    • Program the home public IP into the NS project and re-transfer the project, or
    • Establish a VPN to the plant router and treat the NS as if it were on the LAN.
  9. Verify each leg using the procedure in section 8.

8. Verification

After every configuration change, run the following matrix before declaring the system operational.

Check Tool Expected result
PLC online from LAN CX-Programmer, Auto Online PLC appears within ~2 s
PLC online from WAN CX-Programmer, public IP PLC appears within ~2 s after router forwards the packet
NS project upload from LAN CX-Designer, Transfer > To PT Progress bar reaches 100%
NS HTTP page from WAN Browser to http://public-ip:port/ NS status page or login screen appears
NS project transfer from WAN CX-Designer, public IP Transfer completes (only if NS has the remote IP programmed, or via VPN)
Bidirectional ping through VPN Ping from remote PC to PLC and NS Both reply, < 50 ms LAN-equivalent latency
ETN21 routing table after WAN test ETN21 web status page / CX-Programmer diagnostics Remote IP appears under "Recently Connected Nodes"

9. Troubleshooting Matrix

Symptom Likely cause Fix
CX-Programmer times out connecting from home; LAN works fine UDP 9600 not forwarded, or router blocking unsolicited inbound Add explicit UDP 9600 forward rule on router; test with nc -u <public-ip> 9600 from a Linux/Mac shell
Connection times out even with port forward ETN21 default gateway is blank or wrong Program the LAN IP of the router into the ETN21 default-gateway field
Connection works once after reboot, fails the next day ISP rotated public IP, or DDNS not updating Confirm DDNS client is alive on router; or move to VPN
NS HTTP page loads from home but CX-Designer cannot read/write tags NS has no FINS route to the home IP Program remote IP into NS project (static home IP) or use VPN
VPN connects but cannot ping PLC VPN pool subnet differs from plant subnet; no route Reconfigure VPN pool to match LAN, or add static route on PLC/gateway
One-way traffic only (PLC sees commands but HMI does not reply) Firewall on the plant side blocks the FINS return path Allow UDP 9600 outbound from the PLC/HMI LAN to the public/VPN pool
ETN21 web status page inaccessible from LAN after parameter write Default gateway overwrote routing in a cycle Cycle power to the ETN21 only; re-confirm IP and gateway
NS project downloads very slowly from home Routing through PLC serial port (the "serial fallback" approach) Replace serial fallback with VPN or remote-desktop-to-LAN-PC; expect 10x to 30x speedup

10. Field-Engineering Notes

  • Always test LAN before WAN. Every WAN-only failure I have seen in the field turned out to be a misconfigured LAN parameter that the LAN test would have caught.
  • Document the public IP or DDNS hostname in the customer site file. Operators rotate, and the next engineer will not have the URL handy.
  • Prefer VPN over port forwarding if the plant IT department is willing. Port forwarding exposes UDP 9600 to the entire public Internet, which is a security exposure even if the PLC behind it is read-only.
  • Use a CF card to reload NS projects on site. Omron supports CF-based screen transfer specifically because remote NS programming through an ETN11-style serial fallback is unreliable. Even on a healthy VPN it can take an hour for a medium-sized project.
  • When in doubt, run an industrial 4G/LTE router with its own VPN at the customer site. It eliminates the customer's IT approval cycle and is the de facto standard for OEMs doing remote service today.

FAQ

What port does the CJ1W-ETN21 use for FINS over Ethernet?

The default FINS/UDP port is 9600 on both the ETN21 and the NS HMI. The same port number is used for both commands and replies, and the PLC's default-gateway setting must point at the LAN IP of the plant router for the response packets to be accepted.

Why can I program the CJ1W-ETN21 remotely with no extra setup, but not the NS HMI?

The ETN21 supports AUTO:DYNAMIC FINS-to-IP conversion, so it learns and remembers each remote IP at runtime. The NS HMI implements AUTO:STATIC only - the operator's IP must be programmed into the NS project before the connection is attempted. This is the root cause of nearly every "NS works on LAN but not from home" incident.

Do I need to put the router's WAN IP in the FINS routing table, or the LAN IP?

The router's LAN-side IP goes in the ETN21's default-gateway field. The public/WAN IP is what you type into CX-Programmer on the remote PC; the router performs the NAT between the two. Never enter the public IP into the PLC's settings - the PLC only knows about private subnets.

Can I forward a non-standard external port to UDP 9600 on the router?

Yes. Many security policies recommend external ports above 1024 (and the NS HMI manual recommends above 49152 for its own port). Set the same external port number in CX-Programmer's network settings so the FINS node table matches the listener on the router.

Is a VPN really required, or is port forwarding good enough?

Port forwarding is sufficient for a single PLC with a static remote operator, but it requires a static remote IP and exposes FINS/UDP to the public Internet. A VPN hides both devices behind the tunnel, supports changing remote IPs, and removes the NS's routing-table problem entirely - which is why VPN is the recommended long-term solution.

What is the fastest way to update an NS screen remotely when network speed is poor?

Use a CF card on site. Omron supports loading NS projects from CF for exactly this reason - serial-based screen transfer through the PLC can take an hour for a medium project, while CF transfer is typically under two minutes.

Back to blog