AutomationView continuously analyzes your programs and catches problems before they reach the shop floor.
As you write code or edit Sequence diagrams, AutomationView runs real-time structural and logical validation. Issues are reported instantly as inline warnings and errors - no need to compile or run to find problems.
Tip: Use F10 (Step) during a simulation to advance one scan cycle at a time. This makes it much easier to pinpoint exactly where a diagnostic issue occurs in your logic.
AutomationView runs twelve structural validators over every Sequence, in addition to parser, simulation, type, and machine diagnostics. The structural checks are:
The Sequence (Python class) name is checked for validity. An invalid name prevents the Sequence from loading.
Every Sequence must declare exactly one valid initial step. A missing or incorrect initial step is reported as an error.
Two or more steps sharing the same name are flagged. Because step names are how the rest of the Sequence refers to a step, duplicates cause ambiguous references.
A step that has no outgoing transition cannot pass control forward and the Sequence stalls there permanently. AutomationView flags each such step so you can add the missing transition before running.
Transitions are checked to ensure they point to steps that actually exist. A reference to a non-existent step name is reported as an error.
Transition condition expressions are validated for correct syntax. Syntax problems found while a simulation is running are also surfaced as simulation diagnostics.
Action target names are checked for validity. An unrecognized action name is flagged before it can cause a silent failure at runtime.
Divergences are checked for duplicate branches. Two branches with identical conditions would make one of them unreachable.
Every divergence (a split into parallel or alternative branches) must have a matching convergence (a join that reunites those branches). AutomationView checks that the number of branches opening a divergence equals the number closing it. A mismatch means the Sequence structure is malformed.
Branches of a divergence must not cross each other. If two branches intersect in an invalid way - for example, one branch's transition skips across into another branch's path - AutomationView reports the crossing so you can untangle the layout.
A step or transition that loops directly back onto itself without any intervening steps creates an infinite micro-cycle that can lock up execution. AutomationView detects and reports direct self-loops separately from normal backward arcs that form valid loops in the Sequence.
A step that no execution path can ever reach is dead code. It wastes resources and often signals a wiring mistake - a missing transition or a branch that was never connected. AutomationView identifies every step that is structurally cut off from the rest of the Sequence.
Beyond the twelve structural validators, AutomationView reports diagnostics from several other sources:
.machine configurations, labeled "AutomationView (Machine)".Vendor plugins (such as Rockwell and Siemens) add their own export-time diagnostics during translation and export. Those are separate from the structural validators above.
| Level | Meaning |
|---|---|
| Error | Critical issue that will prevent correct execution |
| Warning | Potential problem that may cause unexpected behavior |
| Info | Suggestion or structural hint |
Errors should be resolved before you run a simulation or generate code. Note that a Sequence that fails to parse never loads into the simulation engine at all. Warnings and info items are advisory but should not be ignored.
Every diagnostic that points to a specific step or transition includes a shortcut to jump straight to the offending element in the visual editor. You do not need to scroll through your diagram looking for it.
The visual editor scrolls to and highlights the step or transition that triggered the error or warning. If the element is in a different file, AutomationView opens that file first.
Some diagnostics offer a Quick Fix action. When you apply the Quick Fix from the Problems panel or from an inline annotation, AutomationView also navigates to the affected element so you can confirm the fix in context.
The reveal action works for both structural diagnostics (listed above) and simulation diagnostics that identify a specific step or transition at runtime.