Smart Screen Switching: Boolean UI Trigger, Not Screen ID

James Nishida5 min read
HMI ProgrammingOther ManufacturerTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

The target screen opens on a program condition after a Boolean UI variable is connected to the control logic and assigned to a transition defined as “from any screen.” In Logic 3.27 and later, this global transition replaces duplicate transitions on every source screen.

Navigation Approach Comparison

Choose the transition scope before creating multiple actions. The software version and required navigation coverage decide the configuration.

Approach Application Configuration burden Primary risk
Transition from any screen Logic 3.27 or later One transition on the target screen Multiple transitions may respond to the same Boolean trigger if it is reused
Transition on every source screen Projects without the global transition feature One transition per source screen A missing source-screen transition creates a navigation dead end
Write a screen number to a service variable No such mechanism is identified for this configuration Undefined Searching for an unsupported screen-ID interface delays commissioning

Use the global approach when the project is running Logic 3.27 or later. Version 3.27 introduced the “from any screen” transition, and the configuration was specifically discussed with Logic 3.27.0480. For older project behavior, define the same target transition from each possible source screen.

Boolean Trigger Mechanism

The control program does not command a screen number directly. It drives a UI variable whose data type is Boolean. Smart evaluates that variable as the condition for a configured screen transition.

A value of 1 initiates the transition. The complete signal path is:

  1. Create a UI variable and configure it as Boolean.
  2. Place the variable in the logic workspace.
  3. Connect it to the Boolean output of the block that represents the navigation condition.
  4. In Smart, assign that variable to a transition leading to the required target screen.

The transition definition supplies the destination; the Boolean variable supplies the event. A separate UI variable for each destination keeps the logic deterministic. Reusing one trigger for several destinations can create competing transitions, particularly when their scopes overlap.

Global Transition Configuration

Before anything else, confirm the installed Logic version. Do not move on until the project environment exposes a transition with the scope “from any screen.”

  1. Create the trigger. Add one UI variable in Logic and set its type to Boolean. Confirm that the logic editor accepts a connection from the intended block output without a type mismatch.
  2. Connect the condition. Attach the UI variable to the output that becomes true when navigation is required. Confirm online, in simulation, or through available variable monitoring that the value changes from 0 to 1 when the condition occurs.
  3. Open the destination screen. In Smart, select the screen that must appear. Create a transition scoped “from any screen,” then select the Boolean UI variable as its condition.
  4. Check transition ownership. Search the project’s transitions for other actions using the same UI variable. Remove unintended duplicates or assign separate triggers. Confirm that one rising command maps to one destination.
  5. Build the project. Compile the Logic and Smart configuration. Do not move on until the build completes and the UI variable remains Boolean at both ends of the connection.
  6. Download and test. Start from each screen that operators can reach, activate the logic condition, and confirm that the same destination opens.

If the “from any screen” option is absent, use the per-screen method: create the transition to the same destination on every possible source screen and bind each transition to the Boolean UI variable. Build a screen inventory first so no reachable screen is omitted.

Trigger-State Diagnostics

A Boolean transition command must behave as an event-producing condition, not as a permanently asserted mode. If the variable stays at 1, the transition may be evaluated repeatedly or may immediately return the interface to the target after an operator leaves it. Shape the program condition so it clears after the request has been acted upon.

Symptom Check Correction
No screen change Monitor the UI variable and verify that it reaches 1 Correct the block connection or Boolean type before changing Smart
Works from some screens only Inspect transition scope and the project version Use “from any screen,” or add the missing per-screen transitions
Wrong destination opens Find every transition bound to the same variable Give each destination its own Boolean UI trigger
Target reopens after manual navigation Check whether the variable remains 1 Reset or otherwise clear the program condition after the request
Editor permits several transitions on one variable Review transition scope and destination overlap Treat editor permission as configuration freedom, not deterministic arbitration

Diagnose the signal path in commissioning order: logic condition, UI variable state, transition binding, transition scope, then target screen. Changing several layers at once hides the actual fault.

Version and Project-Migration Pitfalls

A project opened in a newer Logic release can retain configuration inherited from an older template. Logic 3.27 provides global screen transitions, but that does not automatically convert older per-screen navigation. Inspect the actual transition list after migration.

Memory usage can also complicate a Smart build without being caused by the navigation trigger. Early Logic 3.25 projects had a journal-related custom-font problem: text objects could be treated as images, consuming more memory. One affected project contained <custom_fonts>true</custom_fonts> even though custom fonts were not intended. Its text objects also contained <fontcolor>#00000B</fontcolor> instead of <fontcolor>black</fontcolor>. Correcting the font-color entry and changing the custom-font flag to false stopped the flag from returning when Smart reopened.

Treat those exact XML corrections as migration diagnostics for a project carrying the same entries, not as a routine screen-transition step. If EEPROM capacity is the limiting resource, reduce the journal depth and rebuild, then compare the reported image size. Navigation logic, journal retention, and font rendering consume resources through different mechanisms and require separate checks.

Commissioning Verification

  1. Force or generate the real program condition and confirm that the Boolean UI variable changes to 1.
  2. Repeat the test from every operator-reachable source screen. Confirm that each test opens the specified destination.
  3. Clear the condition and navigate away manually. Confirm that the target does not reopen without a new command.
  4. Activate other screen triggers individually. Confirm that no shared variable selects an unintended destination.
  5. Restart the application or controller as permitted by the commissioning plan, then repeat the navigation test to confirm that the saved configuration matches the downloaded project.

FAQ

Can I open a Smart screen directly from the control program?

Yes. Drive a Boolean UI variable from the required logic condition and assign that variable to a transition on the destination screen. A value of 1 initiates the transition.

Can I use one Smart transition from every screen?

Yes, with Logic 3.27 or later. Create the transition on the target screen, select the “from any screen” scope, and bind the Boolean UI variable.

Does one Boolean UI variable support multiple screen transitions?

The editor may allow several transitions, but overlapping actions make the destination ambiguous. Assign one Boolean UI variable per destination and verify that only one transition responds to each command.

Does the trigger need to return to zero after switching screens?

Yes for reliable event behavior. After the destination opens, clear the program condition, navigate away, and confirm that the screen does not reopen until the variable receives a new 1 command.

Back to blog