Multiple Dialogs

We have a diagnostics page for the axes on our HMI/visualization. I would like a dialog window to open when I click on an axis, displaying the jog buttons for that specific axis so that I can jog the axis from there.

I currently see two possible approaches.

1. Only one jog dialog can be open at a time

If I want to jog a different axis, I must first close the current dialog window and then click on the next axis. The advantage is that I only need a single dialog in the project and can simply switch its content using LoadContentInDialog. However, I would still need separate content with jog buttons for each axis.

2. Modeless dialogs

The dialogs are modeless, and whenever an axis is clicked, its own jog window opens. This allows multiple jog dialogs for different axes to be open simultaneously, meaning several axes can be displayed and operated at the same time. The disadvantage is that I need a separate dialog, including its content, for every axis. I actually prefer this approach, but it would require creating a very large number of dialogs for a project.

Does anyone have a better solution for implementing something like this while keeping the engineering effort to a reasonable level?

Hi @Stefan_Ruttimann

not sure if my solution works with your layout and source values/ widgets but I put together a quick example how I would approach this.

The end result looks like this.

2026-09-04_09-25-09

and the basic thought was

  1. Click the GroupBox (Axis) and assign a number to a session variable (AxisSel)
  2. Open DialogboxAtTarget
  3. The up/down (jog) button changes a session variable (AxisPos)
  4. Session variable is bound to each axis position variable (Axis1-4) via a list binding with the selector being the session variable assigned as (AxisSel)

I did all this locally with session variables so here is the general workflow.

<Binding mode="twoWay">
	<Source xsi:type="listElement">
		<Selector xsi:type="session" refId="AxisSel" attribute="value" />
		<be:List xmlns:be="http://www.br-automation.com/iat2015/bindingListEmbedded/engineering/v2" xsi:type="be:session" attribute="value">				
			<bt:Element index="1" refId="Axis1" />
			<bt:Element index="2" refId="Axis2" />
			<bt:Element index="3" refId="Axis3" />
			<bt:Element index="4" refId="Axis4" />
		</be:List>
	</Source>
	<Target xsi:type="session" refId="AxisPos" attribute="value" />
</Binding>				
<Binding mode="twoWay">
	<Source xsi:type="session" refId="Axis1" attribute="value" />
	<Target xsi:type="brease" contentRefId="HD_LS1_contentService3" widgetRefId="NumericOutput1" attribute="value" />
</Binding>
<Binding mode="twoWay">
	<Source xsi:type="session" refId="Axis2" attribute="value" />
	<Target xsi:type="brease" contentRefId="HD_LS1_contentService3" widgetRefId="NumericOutput2" attribute="value" />
</Binding>
<Binding mode="twoWay">
	<Source xsi:type="session" refId="Axis3" attribute="value" />
	<Target xsi:type="brease" contentRefId="HD_LS1_contentService3" widgetRefId="NumericOutput3" attribute="value" />
</Binding>
<Binding mode="twoWay">
	<Source xsi:type="session" refId="Axis4" attribute="value" />
	<Target xsi:type="brease" contentRefId="HD_LS1_contentService3" widgetRefId="NumericOutput4" attribute="value" />
</Binding>

The dialog opens at target = origin and is set to autoClose so it closes when another “axis” is selected. I’ll admit that you have to click the new “axis” twice.

This eventbinding repeats for all “axis” and only the assigned number changes.

Again not sure if this can work in your structure and setup but you wanted ideas, here is one.

Take care!