Ignition OPC UA Server Redundancy (Modbus TCP)

It wasn't quite as easy as the last change, but relatively easy. Utterly untested, feedback welcome:

BETA for Ignition 8.1: v1.1.4.231931604

Some notes:

  • When active, the driver alternates between the live connections on a per-batch basis. For this driver, a "batch" is a memory area subset of a single system.opc.readValues() request, system.opc.writeValues() request, or subscription poll. (Coils with coils, discrete inputs with discretes, et cetera.) This is effectively load-balancing between the connections, though not deliberately so. (Batch sizes vary and are not considered in the toggling.)

  • When a single connection breakage occurs, the batches that were queued to the now-broken connection will fail. For subscriptions, bad quality will appear for one subscription cycle. Non-subscription reads and any writes should be monitored for error results and retried.

  • Only available for Modbus TCP, not any form of RTU.

  • Device status will include "Degraded" or "Recovering" if the two connection states differ.

I probably won't have a chance to properly test this until next week. I thought y'all might like this preview.

1 Like