Modbus to OPC UA Server
The gateway as an OPC UA server: every routed tag a variable that SCADA and MES clients browse and subscribe to.
The data flow
A server-style output: nothing is sent anywhere. The gateway holds the present value of every tag routed to it, and clients come and read or subscribe. A tag that goes BAD is served with a bad status code, never with a stale number.
In the editor
OPC UA Server out holds the listen address and port, the advertised host name that goes into the endpoint URL clients are given, the server and namespace names, and the endpoint security: none, Sign & Encrypt with Basic256Sha256, or both, with the certificate and key as files on the device. Clients connect anonymously.
Test it with the Modbus Simulator
You do not need the PLC to try this flow. The Modbus Simulator answers as a Modbus slave on your own PC, with registers that move, so the whole path from polling to the output can be watched before any hardware is involved.
- Start the Simulator and add a slave: Modbus TCP, bind host set to this PC's LAN address (the prefilled one), port
1502, unit ID 1. Add a few holding registers, say40001–40010as FLOAT32 or INT16 in random mode so the values change, and press Start. - In the editor, set the source node's host to that address, port
1502, unit ID 1, and the same addresses and data types. Poll interval1sis fine. - Deploy the design to a device on the same network, or to this very PC: the Edge Gateway Console installs on a laptop as readily as on an edge computer, and the gateway polls the Simulator over the LAN.
- The Simulator's request log shows the gateway's reads arriving: function code 03, the start address and quantity, once per poll interval. Neighbouring registers arrive as one read.
- Open the endpoint (
opc.tcp://<gateway>:4840) in any OPC UA client, UaExpert being the usual free one, browse the namespace and subscribe to a variable: it moves as the Simulator's register does, with a source timestamp from the poll.
Registers in fixed mode make a deadband or a condition easy to exercise: change a value by hand and watch what is, and is not, published. A register set to a value the Simulator refuses (uncheck Fill unmapped and read an address that is not there) shows what a BAD quality looks like at the output. The Simulator's own page has the rest.
From design to device
- Validate. On the design page, Run validation. The editor's rules, the tag document and the runtime binary itself check the design; every issue names its node. Details: Validating a design.
- Install. From the Devices panel download the installer for the device's platform (Windows x64, Linux x64 or Linux ARM64). Windows: extract and run
Edge-Gateway-Console.exefrom an administrator terminal. Linux (Debian, Ubuntu, Raspberry Pi OS):sudo dpkg -ithe .deb, thensudo edge-gateway-console. It shows the device code. Details: Installing on the device. - Device code. Enter it in the Devices panel, choose a trial or one of your purchased licences, and press Download activation bundle: one small zip with the design and a licence bound to that machine, sealed so only that machine can open it. Details: Downloading.
- Bundle. Give the zip to the console (drag it onto the program, pass its path, or put it beside the program and run it again; a USB stick is fine for a device without internet). It opens the bundle with its own code, installs the runtime as a service and starts it. The device never contacts the site. Details: Activation and the licence.
The console then opens the gateway's web view in a browser (on a device without a desktop it prints the address instead) and stays attached with the live view: devices up or down, values as they change, what was published, and the log.
- The live view shows the OPC UA server as listening, with the number of connected clients.
- A client browsing the endpoint finds one folder per device and one variable per tag, with data type, engineering unit and status.
Ctrl-C leaves the gateway running as a service. Run edge-gateway-console again at any time: it shows the service, the licence, every device and destination with what to check, the web view, and the live log. Running covers the data directory, secrets and the diagnostics.