Command Bindings
Bind a command on an asset to an OPC UA node, an OPC UA method or a Modbus register on one of the site's connectors.
A command binding tells Fleetera where on the equipment a command acts: which connector carries it, and which address on that connector. Without a binding, Fleetera knows what the command is but not where to send it, and the command shows Not bound.
Command bindings work in the opposite direction to variable bindings: a variable binding reads data from the equipment, a command binding writes to it or calls a method on it.
Binding a command
- Open the asset, then its Commands section.
- On the command's row, select Bind. For a command that already has a binding, select Edit binding.
- Choose the connector and enter the address, as described below.
- Select Save Binding, or Update Binding when you edit one.
From Coverage, the fix link on a Not bound command opens the same dialog on the asset's page.
Operators and admins can bind commands. A viewer sees the bindings but not the Bind or Edit binding actions.
Each command on an asset has one binding. Editing it changes that binding in place. If the answer to an update is lost, for example because the connection dropped, the dialog says the update could not be confirmed and may have been saved; reload the page before you edit again.
The binding dialog
The dialog is titled Configure Command Binding for a new binding and Edit Command Binding for an existing one.
| Field | Shown for | Description |
|---|---|---|
| Connector | Always | Every connector at the asset's site, with its protocol. |
| Action Type | OPC UA | Value Write or Method Call. Defaults to the command's type. A Modbus binding is always a value write. |
| Target Node or Method Address | OPC UA | The OPC UA node IDs, see below. |
| Target Register | Modbus | The register, its value type, and for a holding register the scale and offset, see below. |
Command bindings work with OPC UA and Modbus connectors. If you choose a connector of another protocol, the dialog explains that it cannot carry commands, and the binding cannot be saved.
OPC UA addresses
OPC UA node IDs have the form ns=<namespace>;<type>=<identifier>, where the type is s (string), i (numeric), g (GUID) or b (byte string). Each node ID field shows the ns= prefix for you: type the rest, for example 2;s=Plant.CurtailSetpoint. A check mark shows when the format is valid. Otherwise the field says what is missing, and the binding cannot be saved.
Value Write
| Field | Description | Example |
|---|---|---|
| OPC UA NodeId | The node the value is written to, and read back from after the write | 2;s=Plant.CurtailSetpoint |
Method Call
| Field | Description | Example |
|---|---|---|
| Object NodeId | The object the method belongs to | 2;s=Motor1 |
| Method NodeId | The method to call | 2;s=Motor1.Reset |
| Object Instance NodeId | The object the method is called on | 2;s=Motor1 |
All three must be valid before the binding can be saved. A method call runs only methods that take no input arguments, and only through a gateway that reports it can run method calls. See Method Call.
Modbus addresses
For a Modbus connector the dialog shows a Target Register section:
| Field | Description | Example |
|---|---|---|
| Register | The register or coil address, a whole number from 0 to 65535 | 40012 |
| Value Type | UInt16 (holding register) writes one holding register. Bool (coil) writes one coil. | UInt16 (holding register) |
| Scale | Holding register only. Relates the raw register value to engineering units. Defaults to 1. | 10 |
| Offset | Holding register only. Added after scaling, in engineering units. Defaults to 0. | 0 |
Scale and offset
Many devices store a setpoint as a whole number in a different unit from the one you work in: a register that holds power in tens of kilowatts, for example. Scale and offset tell Fleetera how to convert:
engineering value = raw × scale + offsetEnter the scale as the device's register map states it. For a register that holds tens of kilowatts, enter 10, not 0.1. When you send the command, you enter the value in engineering units and Fleetera converts it to the raw value before it writes, by subtracting the offset and then dividing by the scale: with scale 10, a setpoint of 1500 kW is written as 150. If the value does not divide evenly, Fleetera rounds to the nearest whole raw value. If the converted value does not fit in the register, Fleetera refuses the command and sends nothing.
The read-back is converted the same way, so the record compares the value you asked for with the value the device holds, both in engineering units.
Leave scale at 1 and offset at 0 when the register already holds engineering units. Scale cannot be 0. The dialog hides both fields for a coil and for OPC UA bindings, which Fleetera writes without conversion.
Coils need a boolean parameter
A coil holds on or off, so the command must send a boolean. When you choose Bool (coil) for a command whose parameters schema declares no boolean parameter, the dialog warns you. For a command named Set Power Limit, the warning reads:
This binding writes a coil, but Set Power Limit declares no boolean parameter. The write will be refused. Change the command's parameter type to boolean, or pick a register type.
You can still save the binding, but every send of the command is refused until the command declares a boolean parameter, or until you bind it to a holding register instead.
A saved binding is not yet a working path
Saving a binding stores an address. It does not prove that the command can reach the equipment. Before a command is sent, Fleetera also checks that:
- a gateway manages the asset, and that gateway runs the connector the command is bound to;
- the gateway is online and is not under local control, and neither is the site;
- the connector's protocol can carry the action, and the gateway's runtime reports it can run it.
Coverage shows the result of these checks for every command, with the link that fixes each gap. A command bound to a connector its gateway does not run shows Not bound, with a sentence saying so.
Removing a binding
Open the binding dialog and select Remove, then confirm. The command shows Not bound and cannot be sent until it is bound again.
Relationship to variable bindings
| Variable bindings | Command bindings | |
|---|---|---|
| Direction | Equipment to cloud (read) | Cloud to equipment (write or call) |
| Purpose | Collect telemetry | Send commands to equipment |
| Configured on | Variables | Commands on an asset |
| Address | The point to read | The point to write, or the method to call |