Appearance
Button
A clickable control that writes a value to a tag when pressed.
In Studio
In Studio, double-click Button in the Components category of the Components panel. It is added to the open view, where you can drag it into place.
When to use
Use a Button to command a discrete action — start, stop, reset, acknowledge — rather than to reflect or toggle a persistent on/off state (use Toggle for that).
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| Value | String | (none) | Legacy write target: when the component has no value binding at all, this static field is read directly as the tag path to write. Any normally-authored, bound button uses its binding instead and ignores this field. |
| Label | String | Button | The text shown on the button face. A bound boolean value renders as ON or OFF. |
| Write Value | String | 1 | The value written on press (One Shot and Momentary modes), or the value written when the bound tag currently reads OFF (Toggle mode). |
| Release Value | String | (none) | The value written on release (Momentary mode only), or the value written when the bound tag currently reads ON (Toggle mode). Leaving this blank is what makes an unset-mode button infer One Shot instead of Momentary — see the mode note below. |
| Enabled | true, false | true | When false, the button makes no write and runs no event action, and its face greys out. Bindable. A bound value that cannot be trusted also disables it — fail closed: a binding that has not resolved, is loading or errored, or reads with any quality other than Good (Stale, Bad or Uncertain). Bind it to the tag or expression itself rather than to another component's property, which shows that component's static default until its own binding resolves. |
| Requires Signature | false, true | false | When true, the write is deferred to the electronic-signature dialog instead of being sent immediately; the operator must sign before the value is written. This is a component-level floor on top of whatever the bound tag itself already requires. |
| Long Press (ms) | Number | 1200 | Same contract as Label's Long Press (ms) — how long a press must be held before the long-press action fires; non-positive falls back to 1200 ms. |
| Heartbeat Tag | String | (none) | Hold-to-jog. A tag the button writes true/false/true... every Heartbeat (ms) while a momentary press (one with a Release Value) is held, so the PLC can stop the jog if the heartbeat stops. It stops before the release write and on its first failed write. Accepts {view.params.X} and {page.params.X}; if the path cannot be resolved the button refuses. Cannot be combined with a confirmation or a signature. Preview never writes it. Blank = no heartbeat. |
| Heartbeat (ms) | Number | 100 | How often the heartbeat tag toggles while the button is held, in milliseconds. Default 100, clamped to 50-5000. |
Binding
Click Bind… on the Value property and bind it to a tag or an expression to drive the live value.
To let an operator change the tag from this component, tick Bidirectional (read-write) on the binding. Without it the component only displays the value.
Writes only on interaction (press/release), not continuously. See the Interaction mode section below for how Write Value and Release Value combine.
Confirm before acting
Set confirm to ask the operator before the button acts. A plain message (e.g. Start Pump 3?) turns it on; the full form is an object: enabled, display (popover, the default, anchored to the button as in Ignition, or dialog, a centred modal), title, text ( for a new line), confirmLabel (default OK), cancelLabel (default Cancel) and style (default, warning or danger). Every member can be bound, as confirm.text and so on. An Ignition-style {enabled, text} object works as-is. Cancel has the focus, and Enter, Escape or a click outside cancels. The button acts only on Confirm, and only if it is still enabled at that moment. A momentary button (one with a Release Value) cannot pass through a confirmation, so with a confirm set it refuses to operate and says why in its tooltip.
Interaction mode
A button's press/release sequencing (One Shot / Momentary / Toggle) is not a schema property — it has no row in the Properties panel. It is inferred from whether Release Value is blank:
- One Shot — Release Value is blank. Press writes Write Value; there is no release write.
- Momentary — Release Value is set. Press writes Write Value; release writes Release Value.
- Toggle — set by the underlying
modefield, which is not exposed as a row in the Properties panel in this version. Press writes Release Value if the bound tag currently reads ON, otherwise Write Value; the button reads the tag's own state rather than tracking its own.