Skip to content

Configuring Interfaces

An interface is one configured connection to one endpoint: an OPC UA server, an S7 PLC, an MQTT broker, a robot controller. Each enabled interface runs independently, reconnects on its own and can be changed while the gateway keeps running.

A signal maps a protocol address to a name, a direction and a type. Signal names are the contract with the 3D model — the viewer binds by name, so a signal called Conveyor1_Running in the gateway meets the component that expects Conveyor1_Running in the model.

Everything on this page is configured in the CONNECT panel of realvirtual WEB. The same operations exist as a REST API if you prefer to script them.

  1. Open the CONNECT panel and add an interface.
  2. Pick the type. The dialog then asks only for the parameters that type actually needs — see supported protocols.
  3. Save.

The interface dialog of an MQTT broker connection: enable, write gate, broker URL and update cycle

The gateway starts the interface immediately. There is no restart, and other interfaces are not touched.

StateMeaning
ConnectedThe connection is up and signals are being exchanged
ConnectingA connection attempt is running
ErrorThe last attempt failed; the reason is on the card. Reconnect follows a growing backoff of 1, 2, 4, 8, 15 and 30 seconds

For the listener-style interfaces — Modbus server, shared memory — Connected means the gateway is published and accepting attachments, not that a particular remote client is currently attached.

Update cycle sets how often a polling interface reads its signals, in milliseconds. Event-driven protocols — MQTT, ctrlX, Keba, and TwinCAT in notification mode — deliver changes when they happen and use the cycle only as a keep-alive.

Values reach the browser on a fixed 10 ms tick, and only what changed is sent.

Signals reach a configuration in three ways, depending on what the controller offers:

For protocols that can be browsed — OPC UA, MQTT, ctrlX, TwinCAT, EtherNet/IP, Keba, Festo — the Browse button runs a discovery on the live connection and lists what it finds. Select the signals you want, assign the direction, and bind. The bound signals are registered immediately and persisted to the interface.

Discovery always runs on a separate short-lived connection, so browsing never disturbs the running exchange.

A tag table exported from the engineering tool is imported in the browser and pushed to the gateway. This is the usual path for a Siemens process image and for controllers with hundreds of tags.

For protocols without a browse mechanism — S7, Modbus client and server, FANUC, Denso, ABB RobotStudio — signals are entered by hand. The dialog knows what each protocol expects: it shows the right address label, examples and data types, and it validates the address with the same parser the interface itself uses at connect time.

Where the address already implies a direction — an S7 area letter, a FANUC signal prefix — the dialog prefills it.

Direction follows the PLC convention, exactly as in Unity. It is expressed from the controller’s point of view, not the browser’s:

TypeWho writesWho readsTypical use
PLCInputBool / Int / Floatrealvirtual (viewer, simulation)the PLCSensor state, part present, axis feedback
PLCOutputBool / Int / Floatthe PLCrealvirtual (viewer)Motor on, valve command, setpoint, lamp

Read it as the PLC’s terminal strip: a PLC input is something the field — here: the digital twin — supplies. A PLC output is something the PLC drives and the twin shows.

Both directions in one list: inputs written by realvirtual above, outputs written by the PLC below

The value chip carries the direction and the current value, so a frozen signal is visible without opening anything.

Every interface has an Allow web to PLC switch, and it is off by default.

While it is off, values written from the browser are accepted into the gateway and visible in the HMI, but they are not passed on to the real controller. This makes a monitoring installation safe by construction: an operator can click anything in the HMI without reaching the machine.

Turn it on deliberately, per interface, when the HMI is supposed to command the machine.

Configuration changes are applied by hot-reload: the affected interface restarts with the new configuration while everything else keeps running.

Renamed or deleted signals disappear from the signal list and from the browser stream right away — an old name never lingers until the next gateway restart. A removal triggers one full resynchronisation so every connected browser agrees on the new set.

Signals the gateway knows it can never decode are reported per interface and shown as a badge on the interface card:

IssueMeaning
Address parse errorThe address could not be understood. The signal stays registered but never updates
Out of boundsThe address points outside the received data — typically a process image that is shorter than the tag table expects. It clears by itself once the payload fits

A profile is a named snapshot of all interfaces and bridges, including per-signal historian recording. Profiles live in the viewer’s CONNECT settings: until the live configuration is saved there, the selector shows unsaved live configuration; Save turns it into a named profile. Switching — in the settings or from the tray menu — hot-reloads the interfaces without restarting the gateway.

A profile can be bound to a model. When that model becomes active, its profile activates with it, so a model always runs with the configuration it belongs to. Use profiles for a gateway that serves more than one machine or that alternates between a real controller and a simulation.

Two mechanisms move values without a PLC in the loop:

  • Mirroring copies all signals of a source interface into an output interface — MQTT or shared memory — keeping the names. Use it to republish a PLC’s signals to an MQTT broker.
  • Mapping connects one signal to one signal of any other interface, with an explicit rule for type conversion. Feedback loops are detected and broken.

Bridging one signal into another interface, with optional type coercion