Skip to content

Signal Binding

A model brings its own signals; a machine brings the PLC’s. Binding is the act of connecting the two: the slot Forward of a conveyor is told which PLC tag drives it, and from that moment the real controller moves the model.

A slot is the fixed connection point a component declares — Forward, TargetSpeed, SensorOccupied, CurrentPosition. Each slot has a fixed direction and a fixed value type, both declared by the component and not changeable from the interface:

  • Command slots receive values from the PLC. They are what an interface writes.
  • Feedback slots publish values from the simulation back to the interface.

There is no separate binding panel. Every declared slot appears as one row, on two surfaces that always show the same slots and the same states:

  • In the Property Inspector, inline in the section of the component that owns the slot.
  • In the popover that opens from a component’s signal badge in the 3D scene.

A row reads left to right: the slot name, its current assignment, the link button, and the linked signal. An unbound row simply says not linked.

The inspector rows are always available. Clicking a badge in the 3D scene only opens the popover while Signal linking is switched on — the toggle in the tool strip, available in the HMI, Planner, DES and Editor workspaces. It is remembered across reloads.

The badge popover of a conveyor drive with signal linking on: the node path in the title bar, the PLC OUTPUTS rows Speed, Acceleration, Forward and Backward and the PLC INPUTS rows IsAtPosition, IsAtSpeed and IsDriving — all of them not linked except Forward, which carries the green chip of the signal ExitConveyorStart

  1. Switch Signal linking on if you want to work from the 3D scene.
  2. Select the component. Its slot rows appear in the Property Inspector; the badge popover shows the same rows.
  3. Find the command or feedback slot you want to drive.
  4. Either use the link button and pick a signal from the search overlay, or hold Shift and drag a signal chip onto the row.
  5. Read the status of the row. No status token, or live, means the source is connected; pending means the saved signal is not available right now.

To replace a binding, drop another compatible signal on the same row. To remove one, use the unlink button on the row. Unbind all in the component’s section removes every link of that component; it asks once and executes on the second click.

The picker offers two groups: CONNECT (live) — the signals of the connected interfaces — and Model signals, the signals stored in the model itself. Auto-assign proposes only confident matches and never touches a slot it cannot connect.

Signal chips are dragged with Shift held down. A short Shift-click without moving is not a drag and changes nothing.

While a drag is running, only the drop targets that would actually accept the signal are highlighted, and the pointer is pulled to the nearest one. Hovering a component in the 3D scene opens its popover automatically after a moment, so the drop can land directly on a slot row. Escape cancels a drag without dropping.

A drop is refused for one of four reasons, and the row states which:

ReasonMeaning
UnavailableThe component declares the slot but provides no runtime contract for it. The row is dimmed and gives the reason
No providerA live signal without a provider identity
TypeBool goes to bool, int to int, float to float. An int signal is accepted by a float slot — real controllers address setpoints as integers — but a float signal on an int slot is refused
DirectionA PLC output binds only to a command slot, a PLC input only to a feedback slot

The same rule decides the drag highlight, the drop, and a click in the picker, so what the picker offers is exactly what a drag would accept.

Section titled “The first link changes who drives the model”

Claiming a slot puts that part of the model under live control and stops its internal behaviour for that slot. In a demo model that is immediately visible: the built-in motion sequence and recorded playback stop as soon as one of their drives is live-controlled. The viewer says so once, the first time you bind something.

That is the intended effect — the point of binding is that the controller, not the model, decides. Restoring saved bindings when a model loads does not raise the notice again.

Force holds a signal at a fixed value regardless of what is written to it — the fastest way to test a reaction without a running controller. It applies to real signals stored in the model, so a slot that has no model signal behind it cannot be forced. To force such a value, add and wire a model signal first, then force that.

Forced signals are marked as forced wherever they are shown, and releasing the force returns the signal to normal operation.

A binding is stored with the component, the slot, the signal name, the interface and the direction. Runtime values, connection state and forced values are not part of it — they are properties of the moment, not of the model.

Linking a slot does not modify the model’s own signals: an empty slot stays empty, and binding a model signal adds a relay rather than rewriting what the document declares.

SymptomWhat it means
Pending — waiting for CONNECTThe saved interface or signal is not available. Start or reconnect the interface and check that it still exposes that signal
ConflictTwo providers offer the same signal, or two feedback slots publish to the same one. Choose an unambiguous provider or a different target
UnavailableThe component does not implement the command or feedback this slot would need. The row names the missing capability
A signal cannot be droppedThe row tooltip quotes the exact reason — type, direction, missing provider or an unavailable slot
Clicking a part in 3D does nothingSignal linking is switched off. Turn it on in the tool strip
A slot cannot be forcedExpected — the slot has no model signal behind it
A command stops after a disconnectThe component neutralises a lost command after a short hold. Reconnect the provider or remove the stale binding. Feedback bindings are never neutralised

The bindings overview panel lists every link of the model in one table, jumps to any of them in the 3D scene and unlinks with one click. It is the right place to check the result of a large binding pass, and the place to repair a link whose component has moved.