PLC connected via Moxa NAT causing OPC issues

We are trying to connect to a micrologix 1500 via a Moxa NAT. We have 4 machines that all use the same hardcoded IP from the manufacturer, we use a Moxa NAT to translate to our own desired IP address. I know that the 1500 has limited support within Ignition, thats not the issue, it seems that connecting via the NAT can block the OPC-UA server. I've experienced this both in production and on my local computer.
The logs show as follows:

INFO   | jvm 1    | 2026/04/06 10:07:57 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:07:57.679]: Error getting value from bytes=[0, 0] 
INFO   | jvm 1    | 2026/04/06 10:07:57 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:07:57.679]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:07:57 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:07:57.679]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:07:57 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:07:57.679]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.060]: onWatchdogTimerElapsed() subscription-name=tag-group-default_ajax, connection-name=Ignition OPC-UA Server, subscription-id=15590
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.060]: onWatchdogTimerElapsed() subscription-name=tag-group-default_spo, connection-name=Ignition OPC-UA Server, subscription-id=15591
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.060]: onWatchdogTimerElapsed() subscription-name=tag-group-default_asrs, connection-name=Ignition OPC-UA Server, subscription-id=15592
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_huntersand, connection-name=Ignition OPC-UA Server, subscription-id=15593
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_spo blast machines, connection-name=Ignition OPC-UA Server, subscription-id=15594
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_g10, connection-name=Ignition OPC-UA Server, subscription-id=15597
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_huntermolds, connection-name=Ignition OPC-UA Server, subscription-id=15595
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_ajaxautopower-leased, connection-name=Ignition OPC-UA Server, subscription-id=15598
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_hunterutil, connection-name=Ignition OPC-UA Server, subscription-id=15599
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_grinding, connection-name=Ignition OPC-UA Server, subscription-id=15596
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.062]: onWatchdogTimerElapsed() subscription-name=tag-group-default_h10, connection-name=Ignition OPC-UA Server, subscription-id=15600
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.064]: onWatchdogTimerElapsed() subscription-name=tag-group-default_spo crane, connection-name=Ignition OPC-UA Server, subscription-id=15602
INFO   | jvm 1    | 2026/04/06 10:07:58 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:07:58.064]: onWatchdogTimerElapsed() subscription-name=tag-group-default_default, connection-name=Ignition OPC-UA Server, subscription-id=15601
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.707]: Error getting value from bytes=[0, 0] 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.707]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.707]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.707]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.747]: Error getting value from bytes=[0, 0] 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.747]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.747]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:00 | W [c.i.x.d.a.t.ABMicroLogixTransport] [10:08:00.747]: Error getting value from bytes=null 
INFO   | jvm 1    | 2026/04/06 10:08:01 | W [c.i.i.g.o.c.c.OpcUaSubscriptionManager] [10:08:01.063]: onWatchdogTimerElapsed() subscription-name=tag-group-default_5sec, connection-name=Ignition OPC-UA Server, subscription-id=15589
INFO   | jvm 1    | 2026/04/06 10:08:01 | E [c.i.i.g.o.s.a.OpcUa           ] [10:08:01.605]: Uncaught Exception on OpcUa ExecutorService, thread='opc-ua-executor-2129' 
INFO   | jvm 1    | 2026/04/06 10:08:01 | java.lang.NullPointerException: null

When I disabled the OPC device connection, regular OPC connectivity resumed.

Does anyone have experience with Moxa NAT-102 V1.0.0?

Do you have full wrapper.log files? What version of Ignition is this?

this is 8.3.4
wrapper.log (5.2 MB)

Huh, weird one. I don't know what's going on. You'll probably have to work with support to diagnose online and maybe get some thread dumps and turn on other loggers while it's happening.

1 Like

Gotcha. Thanks for taking a look.

Are you sure the NAT is setup properly? If i'm reading your post correctly, you're losing access to the Ignition OPC server when you have one of the micrologix device connections enabled? That sounds like you've got your NAT setup wrong and you're somehow routing OPC connections back to Ignition rather than to the machine's OPC server.

I'm not sure if the NAT is setup correctly, though I'm leaning towards no. I can't access the NAT right now until IT comes back to office next week. Its an intermittent issue, I have the device connected right now with no issue. Before when I experienced it I just did a reboot of ignition and that solved it. On my development server I noticed that I could just restart that device connection to solve the issue instead of a full server reboot. It also should be noted that each time I've experienced this it has been shortly after a hardware reboot.

Weird.